diff --git a/KiCS.cabal b/KiCS.cabal
--- a/KiCS.cabal
+++ b/KiCS.cabal
@@ -1,5 +1,5 @@
 Name:          KiCS
-Version:       0.8.7
+Version:       0.8.8
 Cabal-Version: >= 1.6
 Author:        Bernd Braßel
 Maintainer:    Bernd Braßel
@@ -7,14 +7,22 @@
 License:       OtherLicense
 License-File:  LICENSE
 Category:      Compiler
-build-type:    Simple
+build-type:    Custom
 Synopsis:      A compiler from Curry to Haskell
 Description:   This package builds the Curry to Haskell compiler "kics".
-               Note, that you need a functional curry module
-               "Prelude.curry" to get started.
-               The standard version of that file is contained
-               in the package KiCS-libraries.
+               This package also includes many Curry libraries.
+               Have a look at the list of modules "Curry.Module.*"
 Stability:     experimental
+extra-source-files: 
+   src/lib/Curry/Module/*.hs.include
+Data-Dir:      src/lib/Curry/Module/.curry
+Data-Files:    *.fcy
+               *.fint
+               *.efc
+               *.acy
+               *.uacy
+               *.cy
+
                
 Executable kics
   main-is:        kics.hs
@@ -27,29 +35,83 @@
     old-time,
     directory,
     containers,
+    ghc-paths,
+    process,
     curry-base >= 0.2.5,
-    curry-frontend >= 0.2.5
-
-Library
-  hs-source-dirs: src
-  Build-Depends:  
-    syb
-  Exposed-Modules:
-    Curry.RunTimeSystem.Store,
-    Curry.RunTimeSystem.BaseCurry,
-    Curry.RunTimeSystem
+    curry-frontend >= 0.2.6
+  Other-Modules:
     Curry.Compiler.Config
     Curry.Compiler.CurryToHaskell
     Curry.Compiler.SafeCalls
     Curry.Compiler.Names
     Curry.Compiler.ShowFlatCurry
-  Other-Modules:
     Curry.Compiler.KicsSubdir
     Curry.Compiler.FunctionalProg
     Curry.Compiler.ShowFunctionalProg
     Curry.Compiler.PreTrans
     Curry.Compiler.Simplification
     Curry.Compiler.Brace
+
+Library
+  hs-source-dirs: src, src/lib
+  Build-Depends:  
+    base == 4.1.*,
+    haskell98,
+    directory,
+    old-time,
+    syb,
+    network,
+    process,
+    unix,
+    random
+  Exposed-Modules:
+    Curry.Files.KiCSPath
+    Curry.RunTimeSystem
+
+    Curry.Module.Prelude
+    Curry.Module.Interactive
+    Curry.Module.Char
+    Curry.Module.Dequeue
+    Curry.Module.Directory
+    Curry.Module.FileGoodies
+    Curry.Module.FiniteMap
+    Curry.Module.Float
+    Curry.Module.Global
+    Curry.Module.GraphInductive
+    Curry.Module.Integer
+    Curry.Module.IO
+    Curry.Module.IOExts
+    Curry.Module.List
+    Curry.Module.CSV
+    Curry.Module.Maybe
+    Curry.Module.AnsiCodes
+    Curry.Module.Array
+    Curry.Module.Parser
+    Curry.Module.Pretty
+    Curry.Module.Random
+    Curry.Module.RandomExternal
+    Curry.Module.RedBlackTree
+    Curry.Module.SetRBT
+    Curry.Module.Socket
+    Curry.Module.Sort
+    Curry.Module.StyledText
+    Curry.Module.System
+    Curry.Module.TableRBT
+    Curry.Module.Time
+    Curry.Module.ReadShowTerm
+    Curry.Module.Meta
+    Curry.Module.Read
+    Curry.Module.EasyCheck
+    Curry.Module.Assertion
+    Curry.Module.Traversal
+    Curry.Module.PropertyFile
+    Curry.Module.Unsafe
+
+  Other-Modules:
+    Paths_KiCS
+    Curry.RunTimeSystem.Store
+    Curry.RunTimeSystem.BaseCurry
+
 
 
 
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,70 @@
+module Main where
+
+import System.FilePath
+
 import Distribution.Simple
-main = defaultMain
+import Distribution.Simple.Setup as SS
+import Distribution.Simple.Program
+import Distribution.Simple.LocalBuildInfo
+import Distribution.Simple.PreProcess
+import Distribution.PackageDescription 
+import Distribution.Verbosity
+
+import Curry.Files.CymakePath
+import Curry.Files.KiCSPath
+
+kics :: Program
+kics = simpleProgram "kics"
+
+cymake :: IO Program
+cymake = do
+  call <- getCymake
+  return (simpleProgram (takeBaseName call))
+            {programFindLocation = \_-> return (Just call)}
+
+main :: IO ()
+main = do
+  cymakeProg <- cymake
+  defaultMainWithHooks simpleUserHooks
+    {hookedPrograms=kics:cymakeProg:hookedPrograms simpleUserHooks
+    ,postConf=myPostConf
+    ,hookedPreProcessors=[("curry",mkModule)]
+    }
+
+unflag = fromFlagOrDefault silent
+
+requireProg :: SS.Flag Verbosity -> LocalBuildInfo -> IO Program -> IO ()
+requireProg verb lbi prog = do
+  p <- prog
+  requireProgram (unflag verb) p AnyVersion (withPrograms lbi)
+  return ()
+ 
+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 (configVerbosity confFlags) lbi
+  require (return kics)
+  require cymake
+  postConf simpleUserHooks args confFlags descrs lbi
+
+mkModule :: BuildInfo -> LocalBuildInfo -> PreProcessor
+mkModule buildInfo lbi = PreProcessor
+  {platformIndependent = True
+  ,runPreProcessor     = mkSimplePreProcessor (runKics lbi)}
+
+runKics :: LocalBuildInfo -> FilePath -> FilePath -> Verbosity -> IO ()
+runKics lbi infile outfile verb = do
+  let call    = callProg deafening{-verb-} lbi
+      datadir = takeDirectory infile
+   -- nomake not supported
+  mapM (\ format -> call cymake ["-e",'-':'-':format,"-i"++datadir,infile]) 
+       ["flat","extended-flat","acy","uacy","parse-only"] 
+  call (return kics) ["-nomake",--"-userlibpath","src/lib/Curry/Module/",
+                      "-o",outfile,infile]
+
+
+
diff --git a/dist/build/Curry/Module/AnsiCodes.hs b/dist/build/Curry/Module/AnsiCodes.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/AnsiCodes.hs
@@ -0,0 +1,233 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.AnsiCodes (module Curry.Module.AnsiCodes) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Char
+import Curry.Module.List
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_esc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_esc st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_cmd :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_cmd x1 st = (Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_esc(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('['))(Curry.Module.Prelude.List))(x1)(st))
+
+
+
+c_cursorPos :: (Curry t0,Curry t1) => t0 -> t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_cursorPos x1 x2 st = Curry.Module.AnsiCodes.c_cmd(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x1)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(';'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('H'))(Curry.Module.Prelude.List))(st))(st))(st))(st)
+
+
+
+c_cursorHome :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_cursorHome st = Curry.Module.AnsiCodes.c_cmd((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('H'))(Curry.Module.Prelude.List))(st)
+
+
+
+c_moveCursor :: (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_moveCursor x1 x2 st = Curry.Module.AnsiCodes.c_cmd(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))(x1)(st))(st)
+
+
+
+c_cursorUp :: 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_cursorUp st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_moveCursor((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('A'))(Curry.Module.Prelude.List)))
+
+
+
+c_cursorDown :: 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_cursorDown st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_moveCursor((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('B'))(Curry.Module.Prelude.List)))
+
+
+
+c_cursorFwd :: 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_cursorFwd st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_moveCursor((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('C'))(Curry.Module.Prelude.List)))
+
+
+
+c_cursorBack :: 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_cursorBack st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_moveCursor((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('D'))(Curry.Module.Prelude.List)))
+
+
+
+c_saveCursor :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_saveCursor st = Curry.Module.AnsiCodes.c_cmd((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))(Curry.Module.Prelude.List))(st)
+
+
+
+c_restoreCursor :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_restoreCursor st = Curry.Module.AnsiCodes.c_cmd((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))(Curry.Module.Prelude.List))(st)
+
+
+
+c_clear :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_clear st = Curry.Module.AnsiCodes.c_cmd((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('2'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('J'))(Curry.Module.Prelude.List)))(st)
+
+
+
+c_eraseLine :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_eraseLine st = Curry.Module.AnsiCodes.c_cmd((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('K'))(Curry.Module.Prelude.List))(st)
+
+
+
+c_mode :: (Curry t0) => t0 -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_mode x1 x2 st = let {x3 = Curry.Module.AnsiCodes.c_cmd((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('0'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))(Curry.Module.Prelude.List)))(st)} in Curry.Module.AnsiCodes.c_cmd(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x1)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(x2)(Curry.Module.AnsiCodes.c_mode_case_3(x2)(x3)(Curry.Module.Prelude.c_apply(Curry.Module.AnsiCodes.c_isSuffixOf(x3)(st))(x2)(st))(st))(st))(st))(st))(st)
+
+
+
+c_isSuffixOf :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_isSuffixOf x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.List.c_isPrefixOf(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x1)(st))))(Curry.Module.Prelude.c_reverse(st))(st)
+
+
+
+c_bold :: 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_bold st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)))
+
+
+
+c_underline :: 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_underline st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))
+
+
+
+c_revColors :: 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_revColors st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))
+
+
+
+c_concealed :: 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_concealed st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))
+
+
+
+c_black :: 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_black st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))
+
+
+
+c_red :: 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_red st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))
+
+
+
+c_green :: 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_green st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_yellow :: 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_yellow st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_blue :: 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_blue st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_magenta :: 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_magenta st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_cyan :: 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_cyan st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_white :: 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_white st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_bgBlack :: 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_bgBlack st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_bgRed :: 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_bgRed st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_bgGreen :: 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_bgGreen st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(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))))))))
+
+
+
+c_bgYellow :: 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_bgYellow st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(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))))))))
+
+
+
+c_bgBlue :: 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_bgBlue st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_bgMagenta :: 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_bgMagenta st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_bgCyan :: 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_bgCyan st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_bgWhite :: 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_bgWhite st = Curry.Module.Prelude.pf(Curry.Module.AnsiCodes.c_mode(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))
+
+
+
+c_ansiLength :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ansiLength x1 st = Curry.Module.AnsiCodes.c_ansiLength'46aux'4695(x1)(Curry.Module.Prelude.c_length(x1)(st))(st)
+
+
+
+c_ansiLength'46aux'4695 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ansiLength'46aux'4695 x1@Curry.Module.Prelude.List x2 st = x2
+c_ansiLength'46aux'4695 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.AnsiCodes.c_ansiLength'46aux'4695_case_2(x2)(x3)(x4)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.AnsiCodes.c_esc(st))(st))(Curry.Module.Char.c_isDigit(Curry.Module.Prelude.op_33_33(x4)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(st)
+c_ansiLength'46aux'4695 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AnsiCodes.c_ansiLength'46aux'4695(x)(x2)(st))(i)(xs)(st)
+c_ansiLength'46aux'4695 x x2 st = Curry.RunTimeSystem.patternFail("AnsiCodes.ansiLength.aux.95")(x)
+
+
+
+c_ansiLength'46aux'4695_case_2 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.AnsiCodes.c_ansiLength'46aux'4695(Curry.Module.Prelude.c_tail(Curry.Module.Prelude.c_tail(Curry.Module.Prelude.c_tail(Curry.Module.Prelude.c_tail(x4)(st))(st))(st))(st))(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(st))(st)
+c_ansiLength'46aux'4695_case_2 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.AnsiCodes.c_ansiLength'46aux'4695_case_1(x2)(x3)(x4)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.AnsiCodes.c_esc(st))(st))(st)
+c_ansiLength'46aux'4695_case_2 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AnsiCodes.c_ansiLength'46aux'4695_case_2(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_ansiLength'46aux'4695_case_2 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("AnsiCodes.ansiLength.aux.95_case_2")(x)
+
+
+
+c_ansiLength'46aux'4695_case_1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.AnsiCodes.c_ansiLength'46aux'4695(Curry.Module.Prelude.c_tail(Curry.Module.Prelude.c_tail(Curry.Module.Prelude.c_tail(x4)(st))(st))(st))(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(st))(st)
+c_ansiLength'46aux'4695_case_1 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.AnsiCodes.c_ansiLength'46aux'4695_case_0(x2)(x4)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_ansiLength'46aux'4695_case_1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AnsiCodes.c_ansiLength'46aux'4695_case_1(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_ansiLength'46aux'4695_case_1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("AnsiCodes.ansiLength.aux.95_case_1")(x)
+
+
+
+c_ansiLength'46aux'4695_case_0 x2 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.AnsiCodes.c_ansiLength'46aux'4695(x4)(x2)(st)
+c_ansiLength'46aux'4695_case_0 x2 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AnsiCodes.c_ansiLength'46aux'4695_case_0(x2)(x4)(x)(st))(i)(xs)(st)
+c_ansiLength'46aux'4695_case_0 x2 x4 x st = Curry.RunTimeSystem.patternFail("AnsiCodes.ansiLength.aux.95_case_0")(x)
+
+
+
+c_mode_case_3 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.List
+c_mode_case_3 x2 x3 x4@Curry.Module.Prelude.C_False st = x3
+c_mode_case_3 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AnsiCodes.c_mode_case_3(x2)(x3)(x)(st))(i)(xs)(st)
+c_mode_case_3 x2 x3 x st = Curry.RunTimeSystem.patternFail("AnsiCodes.mode_case_3")(x)
+
+
diff --git a/dist/build/Curry/Module/Array.hs b/dist/build/Curry/Module/Array.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Array.hs
@@ -0,0 +1,452 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Array (module Curry.Module.Array) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Integer
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+data C_Array t0 = C_Array (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t0)) (Curry.Module.Array.C_Entry t0)
+  | C_ArrayFail Curry.RunTimeSystem.C_Exceptions
+  | C_ArrayOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Array.C_Array t0))
+
+data C_Entry t0 = C_Entry t0 (Curry.Module.Array.C_Entry t0) (Curry.Module.Array.C_Entry t0)
+  | C_Empty
+  | C_EntryFail Curry.RunTimeSystem.C_Exceptions
+  | C_EntryOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Array.C_Entry t0))
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.Array.C_Array t0) where
+  nf f (Curry.Module.Array.C_Array x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Array.C_Array(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Array.C_Array x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Array.C_Array(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Array.C_ArrayOr(Curry.RunTimeSystem.mkRef(r)(2)(i))([Curry.Module.Array.C_Array(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(2)
+
+  failed  = Curry.Module.Array.C_ArrayFail
+
+  branching  = Curry.Module.Array.C_ArrayOr
+
+  consKind (Curry.Module.Array.C_ArrayOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Array.C_ArrayFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Array.C_ArrayFail x) = x
+
+  orRef (Curry.Module.Array.C_ArrayOr x _) = x
+
+  branches (Curry.Module.Array.C_ArrayOr _ x) = x
+
+
+
+
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.Array.C_Entry t0) where
+  nf f (Curry.Module.Array.C_Entry x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.Array.C_Entry(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Array.C_Entry x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.Array.C_Entry(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.Array.C_EntryOr(Curry.RunTimeSystem.mkRef(r)(3)(i))([Curry.Module.Array.C_Entry(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Array.C_Empty]))(3)
+
+  failed  = Curry.Module.Array.C_EntryFail
+
+  branching  = Curry.Module.Array.C_EntryOr
+
+  consKind (Curry.Module.Array.C_EntryOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Array.C_EntryFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Array.C_EntryFail x) = x
+
+  orRef (Curry.Module.Array.C_EntryOr x _) = x
+
+  branches (Curry.Module.Array.C_EntryOr _ x) = x
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.Array.C_Array t0) where
+  strEq (Curry.Module.Array.C_Array x1 x2) (Curry.Module.Array.C_Array y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Array.C_Array x1 x2) (Curry.Module.Array.C_Array y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Array.C_Array x1 x2) st = Curry.Module.Array.C_Array(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+
+  foldCurry f c (Curry.Module.Array.C_Array x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+
+  typeName _ = "Array"
+
+  showQ d (Curry.Module.Array.C_Array x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Array.Array "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ _ (Curry.Module.Array.C_ArrayOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.Array.C_Entry t0) where
+  strEq (Curry.Module.Array.C_Entry x1 x2 x3) (Curry.Module.Array.C_Entry 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.Array.C_Empty Curry.Module.Array.C_Empty st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Array.C_Entry x1 x2 x3) (Curry.Module.Array.C_Entry 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.Array.C_Empty Curry.Module.Array.C_Empty st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Array.C_Entry x1 x2 x3) st = Curry.Module.Array.C_Entry(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+  propagate f Curry.Module.Array.C_Empty st = Curry.Module.Array.C_Empty
+
+  foldCurry f c (Curry.Module.Array.C_Entry x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+  foldCurry f c Curry.Module.Array.C_Empty st = c
+
+  typeName _ = "Entry"
+
+  showQ d (Curry.Module.Array.C_Entry x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Array.Entry "))((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.Array.C_Empty = Prelude.showString("Array.Empty")
+  showQ _ (Curry.Module.Array.C_EntryOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.Array.C_Array t0) where
+  showsPrec d (Curry.Module.Array.C_Array x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Array "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec _ (Curry.Module.Array.C_ArrayOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.Array.C_Entry t0) where
+  showsPrec d (Curry.Module.Array.C_Entry x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Entry "))((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.Array.C_Empty = Prelude.showString("Empty")
+  showsPrec _ (Curry.Module.Array.C_EntryOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.Array.C_Array t0) where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Array.C_Array(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Array")("Array")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r)
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.Array.C_Entry t0) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Array.C_Entry(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Array")("Entry")(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.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Array.C_Empty)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Array")("Empty")(r)])(r))
+
+
+
+
+
+c_emptyErrorArray :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t0
+c_emptyErrorArray st = Curry.Module.Array.c_emptyDefaultArray(Curry.Module.Prelude.pf(Curry.Module.Array.c_errorArray))(st)
+
+
+
+c_errorArray :: (Curry t0) => Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t0
+c_errorArray x1 st = Curry.Module.Prelude.c_error(Curry.Module.Prelude.op_43_43((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('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((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('i'))((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('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x1)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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('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.List)))))))))))))))))(st))(st))(st)
+
+
+
+c_emptyDefaultArray :: (Curry t0) => (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t0
+c_emptyDefaultArray x1 st = Curry.Module.Array.C_Array(x1)(Curry.Module.Array.C_Empty)
+
+
+
+op_47_47 :: (Curry t0) => (Curry.Module.Array.C_Array t0) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t0
+op_47_47 x1@(Curry.Module.Array.C_Array x3 x4) x2 st = Curry.Module.Array.C_Array(x3)(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Array.c_'47'47'46_'35lambda2(x3)))(x4)(x2)(st))
+op_47_47 (Curry.Module.Array.C_ArrayOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.op_47_47(x)(x2)(st))(i)(xs)(st)
+op_47_47 x x2 st = Curry.RunTimeSystem.patternFail("Array.//")(x)
+
+
+
+c_'47'47'46_'35lambda2 :: (Curry t72) => (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t72)) -> (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t72) -> (Curry.Module.Array.C_Entry t72) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Entry t72
+c_'47'47'46_'35lambda2 x1 x2@(Curry.Module.Prelude.T2 x4 x5) x3 st = Curry.Module.Array.c_at(Curry.Module.Prelude.c_apply(x1)(x4)(st))(x3)(x4)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(x5)))(st)
+c_'47'47'46_'35lambda2 x1 (Curry.Module.Prelude.T2Or i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_'47'47'46_'35lambda2(x1)(x)(x3)(st))(i)(xs)(st)
+c_'47'47'46_'35lambda2 x1 x x3 st = Curry.RunTimeSystem.patternFail("Array.//._#lambda2")(x)
+
+
+
+c_update :: (Curry t0) => (Curry.Module.Array.C_Array t0) -> Curry.Module.Prelude.C_Int -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t0
+c_update x1@(Curry.Module.Array.C_Array x4 x5) x2 x3 st = Curry.Module.Array.C_Array(x4)(Curry.Module.Array.c_at(Curry.Module.Prelude.c_apply(x4)(x2)(st))(x5)(x2)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(x3)))(st))
+c_update (Curry.Module.Array.C_ArrayOr i xs) x2 x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_update(x)(x2)(x3)(st))(i)(xs)(st)
+c_update x x2 x3 st = Curry.RunTimeSystem.patternFail("Array.update")(x)
+
+
+
+c_applyAt :: (Curry t0) => (Curry.Module.Array.C_Array t0) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t0
+c_applyAt x1@(Curry.Module.Array.C_Array x4 x5) x2 x3 st = Curry.Module.Array.C_Array(x4)(Curry.Module.Array.c_at(Curry.Module.Prelude.c_apply(x4)(x2)(st))(x5)(x2)(x3)(st))
+c_applyAt (Curry.Module.Array.C_ArrayOr i xs) x2 x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_applyAt(x)(x2)(x3)(st))(i)(xs)(st)
+c_applyAt x x2 x3 st = Curry.RunTimeSystem.patternFail("Array.applyAt")(x)
+
+
+
+c_at :: (Curry t0) => t0 -> (Curry.Module.Array.C_Entry t0) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Entry t0
+c_at x1 x2@Curry.Module.Array.C_Empty x3 x4 st = Curry.Module.Array.c_at_case_14(x1)(x3)(x4)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_at x1 x2@(Curry.Module.Array.C_Entry x5 x6 x7) x3 x4 st = Curry.Module.Array.c_at_case_11(x1)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_at x1 (Curry.Module.Array.C_EntryOr i xs) x3 x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_at(x1)(x)(x3)(x4)(st))(i)(xs)(st)
+c_at x1 x x3 x4 st = Curry.RunTimeSystem.patternFail("Array.at")(x)
+
+
+
+op_33 :: (Curry t0) => (Curry.Module.Array.C_Array t0) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t0
+op_33 x1@(Curry.Module.Array.C_Array x3 x4) x2 st = Curry.Module.Array.c_from(Curry.Module.Prelude.c_apply(x3)(x2)(st))(x4)(x2)(st)
+op_33 (Curry.Module.Array.C_ArrayOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.op_33(x)(x2)(st))(i)(xs)(st)
+op_33 x x2 st = Curry.RunTimeSystem.patternFail("Array.!")(x)
+
+
+
+c_from :: (Curry t0) => t0 -> (Curry.Module.Array.C_Entry t0) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t0
+c_from x1 x2@Curry.Module.Array.C_Empty x3 st = x1
+c_from x1 x2@(Curry.Module.Array.C_Entry x4 x5 x6) x3 st = Curry.Module.Array.c_from_case_8(x1)(x3)(x4)(x5)(x6)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_from x1 (Curry.Module.Array.C_EntryOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_from(x1)(x)(x3)(st))(i)(xs)(st)
+c_from x1 x x3 st = Curry.RunTimeSystem.patternFail("Array.from")(x)
+
+
+
+c_split :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List t0)
+c_split x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_split x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Array.c_split_case_5(x2)(x3)(st)
+c_split (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_split(x)(st))(i)(xs)(st)
+c_split x st = Curry.RunTimeSystem.patternFail("Array.split")(x)
+
+
+
+c_split'46_'35selFP3'35xs :: (Curry t126) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t126) (Curry.Module.Prelude.List t126)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t126
+c_split'46_'35selFP3'35xs x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_split'46_'35selFP3'35xs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_split'46_'35selFP3'35xs(x)(st))(i)(xs)(st)
+c_split'46_'35selFP3'35xs x st = Curry.RunTimeSystem.patternFail("Array.split._#selFP3#xs")(x)
+
+
+
+c_split'46_'35selFP4'35ys :: (Curry t126) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t126) (Curry.Module.Prelude.List t126)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t126
+c_split'46_'35selFP4'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_split'46_'35selFP4'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_split'46_'35selFP4'35ys(x)(st))(i)(xs)(st)
+c_split'46_'35selFP4'35ys x st = Curry.RunTimeSystem.patternFail("Array.split._#selFP4#ys")(x)
+
+
+
+c_listToDefaultArray :: (Curry t0) => (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t0)
+c_listToDefaultArray x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.Array.C_Array(x1)))(Curry.Module.Prelude.pf(Curry.Module.Array.c_listToArray))(st)
+
+
+
+c_listToErrorArray :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t0)
+c_listToErrorArray st = Curry.Module.Array.c_listToDefaultArray(Curry.Module.Prelude.pf(Curry.Module.Array.c_errorArray))(st)
+
+
+
+c_listToArray :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Entry t0
+c_listToArray x1@Curry.Module.Prelude.List st = Curry.Module.Array.C_Empty
+c_listToArray x1@((Curry.Module.Prelude.:<) x2 x3) st = let {x4 = Curry.Module.Array.c_split(x3)(st)} in Curry.Module.Array.C_Entry(x2)(Curry.Module.Array.c_listToArray(Curry.Module.Array.c_listToArray'46_'35selFP6'35ys(x4)(st))(st))(Curry.Module.Array.c_listToArray(Curry.Module.Array.c_listToArray'46_'35selFP7'35zs(x4)(st))(st))
+c_listToArray (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_listToArray(x)(st))(i)(xs)(st)
+c_listToArray x st = Curry.RunTimeSystem.patternFail("Array.listToArray")(x)
+
+
+
+c_listToArray'46_'35selFP6'35ys :: (Curry t137) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t137) (Curry.Module.Prelude.List t137)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t137
+c_listToArray'46_'35selFP6'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_listToArray'46_'35selFP6'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_listToArray'46_'35selFP6'35ys(x)(st))(i)(xs)(st)
+c_listToArray'46_'35selFP6'35ys x st = Curry.RunTimeSystem.patternFail("Array.listToArray._#selFP6#ys")(x)
+
+
+
+c_listToArray'46_'35selFP7'35zs :: (Curry t137) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t137) (Curry.Module.Prelude.List t137)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t137
+c_listToArray'46_'35selFP7'35zs x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_listToArray'46_'35selFP7'35zs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_listToArray'46_'35selFP7'35zs(x)(st))(i)(xs)(st)
+c_listToArray'46_'35selFP7'35zs x st = Curry.RunTimeSystem.patternFail("Array.listToArray._#selFP7#zs")(x)
+
+
+
+c_combine :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t2))) -> (Curry.Module.Array.C_Array t0) -> (Curry.Module.Array.C_Array t1) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t2
+c_combine x1 x2@(Curry.Module.Array.C_Array x4 x5) x3 st = Curry.Module.Array.c_combine_case_4(x1)(x4)(x5)(x3)(st)
+c_combine x1 (Curry.Module.Array.C_ArrayOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_combine(x1)(x)(x3)(st))(i)(xs)(st)
+c_combine x1 x x3 st = Curry.RunTimeSystem.patternFail("Array.combine")(x)
+
+
+
+c_combine'46_'35lambda3 :: (Curry t252,Curry t255,Curry t263) => (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t252)) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t255)) -> (Curry.Module.Prelude.Prim (t252 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t255 -> Curry.RunTimeSystem.State -> t263))) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t263
+c_combine'46_'35lambda3 x1 x2 x3 x4 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(Curry.Module.Prelude.c_apply(x1)(x4)(st))(st))(Curry.Module.Prelude.c_apply(x2)(x4)(st))(st)
+
+
+
+c_comb :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t2))) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t0)) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t1)) -> (Curry.Module.Array.C_Entry t0) -> (Curry.Module.Array.C_Entry t1) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Entry t2
+c_comb x1 x2 x3 x4@Curry.Module.Array.C_Empty x5 x6 x7 st = Curry.Module.Array.c_comb_case_3(x1)(x2)(x3)(x6)(x7)(x5)(st)
+c_comb x1 x2 x3 x4@(Curry.Module.Array.C_Entry x11 x12 x13) x5 x6 x7 st = Curry.Module.Array.c_comb_case_2(x1)(x2)(x3)(x6)(x7)(x11)(x12)(x13)(x5)(st)
+c_comb x1 x2 x3 (Curry.Module.Array.C_EntryOr i xs) x5 x6 x7 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_comb(x1)(x2)(x3)(x)(x5)(x6)(x7)(st))(i)(xs)(st)
+c_comb x1 x2 x3 x x5 x6 x7 st = Curry.RunTimeSystem.patternFail("Array.comb")(x)
+
+
+
+c_combineSimilar :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))) -> (Curry.Module.Array.C_Array t0) -> (Curry.Module.Array.C_Array t0) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Array t0
+c_combineSimilar x1 x2@(Curry.Module.Array.C_Array x4 x5) x3 st = Curry.Module.Array.c_combineSimilar_case_1(x1)(x4)(x5)(x3)(st)
+c_combineSimilar x1 (Curry.Module.Array.C_ArrayOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_combineSimilar(x1)(x)(x3)(st))(i)(xs)(st)
+c_combineSimilar x1 x x3 st = Curry.RunTimeSystem.patternFail("Array.combineSimilar")(x)
+
+
+
+c_combSim :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))) -> (Curry.Module.Array.C_Entry t0) -> (Curry.Module.Array.C_Entry t0) -> Curry.RunTimeSystem.State -> Curry.Module.Array.C_Entry t0
+c_combSim x1 x2@Curry.Module.Array.C_Empty x3 st = x3
+c_combSim x1 x2@(Curry.Module.Array.C_Entry x4 x5 x6) x3 st = Curry.Module.Array.c_combSim_case_0(x1)(x2)(x4)(x5)(x6)(x3)(st)
+c_combSim x1 (Curry.Module.Array.C_EntryOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_combSim(x1)(x)(x3)(st))(i)(xs)(st)
+c_combSim x1 x x3 st = Curry.RunTimeSystem.patternFail("Array.combSim")(x)
+
+
+
+c_foldArray :: (Curry t0,Curry t1) => t0 -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Array.C_Array t1) -> Curry.RunTimeSystem.State -> t0
+c_foldArray x1 x2 x3@(Curry.Module.Array.C_Array x4 x5) st = Curry.Module.Array.c_foldEntries(x1)(x2)(x5)(st)
+c_foldArray x1 x2 (Curry.Module.Array.C_ArrayOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_foldArray(x1)(x2)(x)(st))(i)(xs)(st)
+c_foldArray x1 x2 x st = Curry.RunTimeSystem.patternFail("Array.foldArray")(x)
+
+
+
+c_foldEntries :: (Curry t0,Curry t1) => t0 -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Array.C_Entry t1) -> Curry.RunTimeSystem.State -> t0
+c_foldEntries x1 x2 x3@Curry.Module.Array.C_Empty st = x1
+c_foldEntries x1 x2 x3@(Curry.Module.Array.C_Entry x4 x5 x6) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x4)(st))(Curry.Module.Array.c_foldEntries(x1)(x2)(x5)(st))(st))(Curry.Module.Array.c_foldEntries(x1)(x2)(x6)(st))(st)
+c_foldEntries x1 x2 (Curry.Module.Array.C_EntryOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_foldEntries(x1)(x2)(x)(st))(i)(xs)(st)
+c_foldEntries x1 x2 x st = Curry.RunTimeSystem.patternFail("Array.foldEntries")(x)
+
+
+
+c_arrayToList :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Array.C_Array t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_arrayToList st = Curry.Module.Prelude.pf(Curry.Module.Array.c_foldArray(Curry.Module.Prelude.List)(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.Array.c_arrayToList'46_'35lambda4)))
+
+
+
+c_arrayToList'46_'35lambda4 :: (Curry t345) => t345 -> (Curry.Module.Prelude.List t345) -> (Curry.Module.Prelude.List t345) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t345
+c_arrayToList'46_'35lambda4 x1 x2 x3 st = (Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.op_43_43(x2)(x3)(st))
+
+
+
+c_combSim_case_0 x1 x2 x4 x5 x6 x3@Curry.Module.Array.C_Empty st = x2
+c_combSim_case_0 x1 x2 x4 x5 x6 x3@(Curry.Module.Array.C_Entry x7 x8 x9) st = Curry.Module.Array.C_Entry(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(x7)(st))(Curry.Module.Array.c_combSim(x1)(x5)(x8)(st))(Curry.Module.Array.c_combSim(x1)(x6)(x9)(st))
+c_combSim_case_0 x1 x2 x4 x5 x6 (Curry.Module.Array.C_EntryOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_combSim_case_0(x1)(x2)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_combSim_case_0 x1 x2 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Array.combSim_case_0")(x)
+
+
+
+c_combineSimilar_case_1 x1 x4 x5 x3@(Curry.Module.Array.C_Array x6 x7) st = Curry.Module.Array.C_Array(x4)(Curry.Module.Array.c_combSim(x1)(x5)(x7)(st))
+c_combineSimilar_case_1 x1 x4 x5 (Curry.Module.Array.C_ArrayOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_combineSimilar_case_1(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_combineSimilar_case_1 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("Array.combineSimilar_case_1")(x)
+
+
+
+c_comb_case_2 x1 x2 x3 x6 x7 x11 x12 x13 x5@Curry.Module.Array.C_Empty st = Curry.Module.Array.C_Entry(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x11)(st))(Curry.Module.Prelude.c_apply(x3)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.op_43(x6)(x7)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st))(Curry.Module.Array.c_comb(x1)(x2)(x3)(x12)(Curry.Module.Array.C_Empty)(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x6)(st))(x7)(st))(Curry.Module.Array.c_comb(x1)(x2)(x3)(x13)(Curry.Module.Array.C_Empty)(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x6)(st))(Curry.Module.Prelude.op_43(x7)(x6)(st))(st))
+c_comb_case_2 x1 x2 x3 x6 x7 x11 x12 x13 x5@(Curry.Module.Array.C_Entry x14 x15 x16) st = Curry.Module.Array.C_Entry(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x11)(st))(x14)(st))(Curry.Module.Array.c_comb(x1)(x2)(x3)(x12)(x15)(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x6)(st))(x7)(st))(Curry.Module.Array.c_comb(x1)(x2)(x3)(x13)(x16)(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x6)(st))(Curry.Module.Prelude.op_43(x7)(x6)(st))(st))
+c_comb_case_2 x1 x2 x3 x6 x7 x11 x12 x13 (Curry.Module.Array.C_EntryOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_comb_case_2(x1)(x2)(x3)(x6)(x7)(x11)(x12)(x13)(x)(st))(i)(xs)(st)
+c_comb_case_2 x1 x2 x3 x6 x7 x11 x12 x13 x st = Curry.RunTimeSystem.patternFail("Array.comb_case_2")(x)
+
+
+
+c_comb_case_3 x1 x2 x3 x6 x7 x5@Curry.Module.Array.C_Empty st = Curry.Module.Array.C_Empty
+c_comb_case_3 x1 x2 x3 x6 x7 x5@(Curry.Module.Array.C_Entry x8 x9 x10) st = Curry.Module.Array.C_Entry(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.op_43(x6)(x7)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st))(x8)(st))(Curry.Module.Array.c_comb(x1)(x2)(x3)(Curry.Module.Array.C_Empty)(x9)(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x6)(st))(x7)(st))(Curry.Module.Array.c_comb(x1)(x2)(x3)(Curry.Module.Array.C_Empty)(x10)(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x6)(st))(Curry.Module.Prelude.op_43(x7)(x6)(st))(st))
+c_comb_case_3 x1 x2 x3 x6 x7 (Curry.Module.Array.C_EntryOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_comb_case_3(x1)(x2)(x3)(x6)(x7)(x)(st))(i)(xs)(st)
+c_comb_case_3 x1 x2 x3 x6 x7 x st = Curry.RunTimeSystem.patternFail("Array.comb_case_3")(x)
+
+
+
+c_combine_case_4 x1 x4 x5 x3@(Curry.Module.Array.C_Array x6 x7) st = Curry.Module.Array.C_Array(Curry.Module.Prelude.pf(Curry.Module.Array.c_combine'46_'35lambda3(x4)(x6)(x1)))(Curry.Module.Array.c_comb(x1)(x4)(x6)(x5)(x7)(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))
+c_combine_case_4 x1 x4 x5 (Curry.Module.Array.C_ArrayOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_combine_case_4(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_combine_case_4 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("Array.combine_case_4")(x)
+
+
+
+c_split_case_5 x2 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List))(Curry.Module.Prelude.List)
+c_split_case_5 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = let {x6 = Curry.Module.Array.c_split(x5)(st)} in Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x2)(Curry.Module.Array.c_split'46_'35selFP3'35xs(x6)(st)))((Curry.Module.Prelude.:<)(x4)(Curry.Module.Array.c_split'46_'35selFP4'35ys(x6)(st)))
+c_split_case_5 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_split_case_5(x2)(x)(st))(i)(xs)(st)
+c_split_case_5 x2 x st = Curry.RunTimeSystem.patternFail("Array.split_case_5")(x)
+
+
+
+c_from_case_8 x1 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_True st = x4
+c_from_case_8 x1 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Array.c_from_case_7(x1)(x3)(x5)(x6)(Curry.Module.Integer.c_odd(x3)(st))(st)
+c_from_case_8 x1 x3 x4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_from_case_8(x1)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_from_case_8 x1 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Array.from_case_8")(x)
+
+
+
+c_from_case_7 x1 x3 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.Array.c_from(x1)(x5)(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st)
+c_from_case_7 x1 x3 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Array.c_from_case_6(x1)(x3)(x6)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_from_case_7 x1 x3 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_from_case_7(x1)(x3)(x5)(x6)(x)(st))(i)(xs)(st)
+c_from_case_7 x1 x3 x5 x6 x st = Curry.RunTimeSystem.patternFail("Array.from_case_7")(x)
+
+
+
+c_from_case_6 x1 x3 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.Array.c_from(x1)(x6)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)
+c_from_case_6 x1 x3 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_from_case_6(x1)(x3)(x6)(x)(st))(i)(xs)(st)
+c_from_case_6 x1 x3 x6 x st = Curry.RunTimeSystem.patternFail("Array.from_case_6")(x)
+
+
+
+c_at_case_11 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Array.C_Entry(Curry.Module.Prelude.c_apply(x4)(x5)(st))(x6)(x7)
+c_at_case_11 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.Array.c_at_case_10(x1)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Integer.c_odd(x3)(st))(st)
+c_at_case_11 x1 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_at_case_11(x1)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_at_case_11 x1 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Array.at_case_11")(x)
+
+
+
+c_at_case_10 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Array.C_Entry(x5)(Curry.Module.Array.c_at(x1)(x6)(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(x4)(st))(x7)
+c_at_case_10 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.Array.c_at_case_9(x1)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_at_case_10 x1 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_at_case_10(x1)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_at_case_10 x1 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Array.at_case_10")(x)
+
+
+
+c_at_case_9 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Array.C_Entry(x5)(x6)(Curry.Module.Array.c_at(x1)(x7)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x4)(st))
+c_at_case_9 x1 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_at_case_9(x1)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_at_case_9 x1 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Array.at_case_9")(x)
+
+
+
+c_at_case_14 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Array.C_Entry(Curry.Module.Prelude.c_apply(x4)(x1)(st))(Curry.Module.Array.C_Empty)(Curry.Module.Array.C_Empty)
+c_at_case_14 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Array.c_at_case_13(x1)(x3)(x4)(Curry.Module.Integer.c_odd(x3)(st))(st)
+c_at_case_14 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_at_case_14(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_at_case_14 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Array.at_case_14")(x)
+
+
+
+c_at_case_13 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Array.C_Entry(x1)(Curry.Module.Array.c_at(x1)(Curry.Module.Array.C_Empty)(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(x4)(st))(Curry.Module.Array.C_Empty)
+c_at_case_13 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Array.c_at_case_12(x1)(x3)(x4)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_at_case_13 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_at_case_13(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_at_case_13 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Array.at_case_13")(x)
+
+
+
+c_at_case_12 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Array.C_Entry(x1)(Curry.Module.Array.C_Empty)(Curry.Module.Array.c_at(x1)(Curry.Module.Array.C_Empty)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x4)(st))
+c_at_case_12 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Array.c_at_case_12(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_at_case_12 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Array.at_case_12")(x)
+
+
diff --git a/dist/build/Curry/Module/Assertion.hs b/dist/build/Curry/Module/Assertion.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Assertion.hs
@@ -0,0 +1,447 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Assertion (module Curry.Module.Assertion) where
+
+import Curry.RunTimeSystem
+import Curry.Module.IO
+import Curry.Module.List
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+data C_Assertion t0 = C_AssertTrue (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool
+  | C_AssertEqual (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0 t0
+  | C_AssertValues (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0 (Curry.Module.Prelude.List t0)
+  | C_AssertSolutions (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success)) (Curry.Module.Prelude.List t0)
+  | C_AssertIO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.C_IO t0) t0
+  | C_AssertEqualIO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.C_IO t0) (Curry.Module.Prelude.C_IO t0)
+  | C_AssertionFail Curry.RunTimeSystem.C_Exceptions
+  | C_AssertionOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Assertion.C_Assertion t0))
+
+data C_ProtocolMsg = C_TestModule (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+  | C_TestCase (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool
+  | C_TestFinished
+  | C_TestCompileError
+  | C_ProtocolMsgFail Curry.RunTimeSystem.C_Exceptions
+  | C_ProtocolMsgOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Assertion.C_ProtocolMsg)
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.Assertion.C_Assertion t0) where
+  nf f (Curry.Module.Assertion.C_AssertTrue x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Assertion.C_AssertTrue(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Assertion.C_AssertEqual x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertEqual(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Assertion.C_AssertValues x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertValues(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Assertion.C_AssertSolutions x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertSolutions(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Assertion.C_AssertIO x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertIO(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Assertion.C_AssertEqualIO x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertEqualIO(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Assertion.C_AssertTrue x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Assertion.C_AssertTrue(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Assertion.C_AssertEqual x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertEqual(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Assertion.C_AssertValues x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertValues(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Assertion.C_AssertSolutions x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertSolutions(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Assertion.C_AssertIO x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertIO(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Assertion.C_AssertEqualIO x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.Assertion.C_AssertEqualIO(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.Assertion.C_AssertionOr(Curry.RunTimeSystem.mkRef(r)(3)(i))([Curry.Module.Assertion.C_AssertTrue(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Assertion.C_AssertEqual(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Assertion.C_AssertValues(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Assertion.C_AssertSolutions(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Assertion.C_AssertIO(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Assertion.C_AssertEqualIO(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(3)
+
+  failed  = Curry.Module.Assertion.C_AssertionFail
+
+  branching  = Curry.Module.Assertion.C_AssertionOr
+
+  consKind (Curry.Module.Assertion.C_AssertionOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Assertion.C_AssertionFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Assertion.C_AssertionFail x) = x
+
+  orRef (Curry.Module.Assertion.C_AssertionOr x _) = x
+
+  branches (Curry.Module.Assertion.C_AssertionOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.Assertion.C_ProtocolMsg where
+  nf f (Curry.Module.Assertion.C_TestModule x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Assertion.C_TestModule(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Assertion.C_TestCase x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Assertion.C_TestCase(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Assertion.C_TestModule x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Assertion.C_TestModule(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Assertion.C_TestCase x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Assertion.C_TestCase(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Assertion.C_ProtocolMsgOr(Curry.RunTimeSystem.mkRef(r)(2)(i))([Curry.Module.Assertion.C_TestModule(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Assertion.C_TestCase(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Assertion.C_TestFinished,Curry.Module.Assertion.C_TestCompileError]))(2)
+
+  failed  = Curry.Module.Assertion.C_ProtocolMsgFail
+
+  branching  = Curry.Module.Assertion.C_ProtocolMsgOr
+
+  consKind (Curry.Module.Assertion.C_ProtocolMsgOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Assertion.C_ProtocolMsgFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Assertion.C_ProtocolMsgFail x) = x
+
+  orRef (Curry.Module.Assertion.C_ProtocolMsgOr x _) = x
+
+  branches (Curry.Module.Assertion.C_ProtocolMsgOr _ x) = x
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.Assertion.C_Assertion t0) where
+  strEq (Curry.Module.Assertion.C_AssertTrue x1 x2) (Curry.Module.Assertion.C_AssertTrue y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq (Curry.Module.Assertion.C_AssertEqual x1 x2 x3) (Curry.Module.Assertion.C_AssertEqual 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.Assertion.C_AssertValues x1 x2 x3) (Curry.Module.Assertion.C_AssertValues 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.Assertion.C_AssertSolutions x1 x2 x3) (Curry.Module.Assertion.C_AssertSolutions 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.Assertion.C_AssertIO x1 x2 x3) (Curry.Module.Assertion.C_AssertIO 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.Assertion.C_AssertEqualIO x1 x2 x3) (Curry.Module.Assertion.C_AssertEqualIO 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 _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Assertion.C_AssertTrue x1 x2) (Curry.Module.Assertion.C_AssertTrue y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq (Curry.Module.Assertion.C_AssertEqual x1 x2 x3) (Curry.Module.Assertion.C_AssertEqual 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.Assertion.C_AssertValues x1 x2 x3) (Curry.Module.Assertion.C_AssertValues 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.Assertion.C_AssertSolutions x1 x2 x3) (Curry.Module.Assertion.C_AssertSolutions 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.Assertion.C_AssertIO x1 x2 x3) (Curry.Module.Assertion.C_AssertIO 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.Assertion.C_AssertEqualIO x1 x2 x3) (Curry.Module.Assertion.C_AssertEqualIO 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.Prelude.C_False
+
+  propagate f (Curry.Module.Assertion.C_AssertTrue x1 x2) st = Curry.Module.Assertion.C_AssertTrue(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+  propagate f (Curry.Module.Assertion.C_AssertEqual x1 x2 x3) st = Curry.Module.Assertion.C_AssertEqual(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+  propagate f (Curry.Module.Assertion.C_AssertValues x1 x2 x3) st = Curry.Module.Assertion.C_AssertValues(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+  propagate f (Curry.Module.Assertion.C_AssertSolutions x1 x2 x3) st = Curry.Module.Assertion.C_AssertSolutions(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+  propagate f (Curry.Module.Assertion.C_AssertIO x1 x2 x3) st = Curry.Module.Assertion.C_AssertIO(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+  propagate f (Curry.Module.Assertion.C_AssertEqualIO x1 x2 x3) st = Curry.Module.Assertion.C_AssertEqualIO(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+
+  foldCurry f c (Curry.Module.Assertion.C_AssertTrue x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+  foldCurry f c (Curry.Module.Assertion.C_AssertEqual x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+  foldCurry f c (Curry.Module.Assertion.C_AssertValues x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+  foldCurry f c (Curry.Module.Assertion.C_AssertSolutions x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+  foldCurry f c (Curry.Module.Assertion.C_AssertIO x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+  foldCurry f c (Curry.Module.Assertion.C_AssertEqualIO x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+
+  typeName _ = "Assertion"
+
+  showQ d (Curry.Module.Assertion.C_AssertTrue x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Assertion.AssertTrue "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ d (Curry.Module.Assertion.C_AssertEqual x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Assertion.AssertEqual "))((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 d (Curry.Module.Assertion.C_AssertValues x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Assertion.AssertValues "))((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 d (Curry.Module.Assertion.C_AssertSolutions x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Assertion.AssertSolutions "))((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 d (Curry.Module.Assertion.C_AssertIO x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Assertion.AssertIO "))((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 d (Curry.Module.Assertion.C_AssertEqualIO x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Assertion.AssertEqualIO "))((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.Assertion.C_AssertionOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.Assertion.C_ProtocolMsg where
+  strEq (Curry.Module.Assertion.C_TestModule x1) (Curry.Module.Assertion.C_TestModule y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Assertion.C_TestCase x1 x2) (Curry.Module.Assertion.C_TestCase y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq Curry.Module.Assertion.C_TestFinished Curry.Module.Assertion.C_TestFinished st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.Assertion.C_TestCompileError Curry.Module.Assertion.C_TestCompileError st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Assertion.C_TestModule x1) (Curry.Module.Assertion.C_TestModule y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Assertion.C_TestCase x1 x2) (Curry.Module.Assertion.C_TestCase y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq Curry.Module.Assertion.C_TestFinished Curry.Module.Assertion.C_TestFinished st = Curry.Module.Prelude.C_True
+  eq Curry.Module.Assertion.C_TestCompileError Curry.Module.Assertion.C_TestCompileError st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Assertion.C_TestModule x1) st = Curry.Module.Assertion.C_TestModule(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Assertion.C_TestCase x1 x2) st = Curry.Module.Assertion.C_TestCase(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+  propagate f Curry.Module.Assertion.C_TestFinished st = Curry.Module.Assertion.C_TestFinished
+  propagate f Curry.Module.Assertion.C_TestCompileError st = Curry.Module.Assertion.C_TestCompileError
+
+  foldCurry f c (Curry.Module.Assertion.C_TestModule x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Assertion.C_TestCase x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+  foldCurry f c Curry.Module.Assertion.C_TestFinished st = c
+  foldCurry f c Curry.Module.Assertion.C_TestCompileError st = c
+
+  typeName _ = "ProtocolMsg"
+
+  showQ d (Curry.Module.Assertion.C_TestModule x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Assertion.TestModule "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Assertion.C_TestCase x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Assertion.TestCase "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ _ Curry.Module.Assertion.C_TestFinished = Prelude.showString("Assertion.TestFinished")
+  showQ _ Curry.Module.Assertion.C_TestCompileError = Prelude.showString("Assertion.TestCompileError")
+  showQ _ (Curry.Module.Assertion.C_ProtocolMsgOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.Assertion.C_Assertion t0) where
+  showsPrec d (Curry.Module.Assertion.C_AssertTrue x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("AssertTrue "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec d (Curry.Module.Assertion.C_AssertEqual x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("AssertEqual "))((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 d (Curry.Module.Assertion.C_AssertValues x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("AssertValues "))((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 d (Curry.Module.Assertion.C_AssertSolutions x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("AssertSolutions "))((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 d (Curry.Module.Assertion.C_AssertIO x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("AssertIO "))((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 d (Curry.Module.Assertion.C_AssertEqualIO x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("AssertEqualIO "))((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.Assertion.C_AssertionOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Assertion.C_ProtocolMsg where
+  showsPrec d (Curry.Module.Assertion.C_TestModule x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("TestModule "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Assertion.C_TestCase x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("TestCase "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec _ Curry.Module.Assertion.C_TestFinished = Prelude.showString("TestFinished")
+  showsPrec _ Curry.Module.Assertion.C_TestCompileError = Prelude.showString("TestCompileError")
+  showsPrec _ (Curry.Module.Assertion.C_ProtocolMsgOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.Assertion.C_Assertion t0) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Assertion.C_AssertTrue(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("AssertTrue")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Assertion.C_AssertEqual(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("AssertEqual")(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.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Assertion.C_AssertValues(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("AssertValues")(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.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Assertion.C_AssertSolutions(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("AssertSolutions")(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.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Assertion.C_AssertIO(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("AssertIO")(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.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Assertion.C_AssertEqualIO(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("AssertEqualIO")(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))))))
+
+
+
+
+
+instance Read Curry.Module.Assertion.C_ProtocolMsg where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Assertion.C_TestModule(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("TestModule")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Assertion.C_TestCase(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("TestCase")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r))((Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Assertion.C_TestFinished)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("TestFinished")(r)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Assertion.C_TestCompileError)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Assertion")("TestCompileError")(r)])(r))))
+
+
+
+
+
+c_seqStrActions :: (Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (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.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_seqStrActions x1 x2 st = Curry.Module.Prelude.op_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Assertion.c_seqStrActions'46_'35lambda2(x2)))(st)
+
+
+
+c_seqStrActions'46_'35lambda2 :: (Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.T2 (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.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_seqStrActions'46_'35lambda2 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.op_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Assertion.c_seqStrActions'46_'35lambda2'46_'35lambda3(x4)(x3)))(st)
+c_seqStrActions'46_'35lambda2 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_seqStrActions'46_'35lambda2(x1)(x)(st))(i)(xs)(st)
+c_seqStrActions'46_'35lambda2 x1 x st = Curry.RunTimeSystem.patternFail("Assertion.seqStrActions._#lambda2")(x)
+
+
+
+c_seqStrActions'46_'35lambda2'46_'35lambda3 :: Curry.Module.Prelude.C_Bool -> (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.C_Bool) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_seqStrActions'46_'35lambda2'46_'35lambda3 x1 x2 x3@(Curry.Module.Prelude.T2 x4 x5) st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43(x2)(x4)(st))(Curry.Module.Prelude.op_38_38(x1)(x5)(st)))(st)
+c_seqStrActions'46_'35lambda2'46_'35lambda3 x1 x2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_seqStrActions'46_'35lambda2'46_'35lambda3(x1)(x2)(x)(st))(i)(xs)(st)
+c_seqStrActions'46_'35lambda2'46_'35lambda3 x1 x2 x st = Curry.RunTimeSystem.patternFail("Assertion.seqStrActions._#lambda2._#lambda3")(x)
+
+
+
+c_checkAssertion :: (Curry t0) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (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.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Assertion.C_Assertion t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertion x1 x2@(Curry.Module.Assertion.C_AssertTrue x3 x4) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_catchFail(Curry.Module.Assertion.c_checkAssertTrue(x3)(x4)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x3)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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(' '))((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('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('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.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.C_False))(st))(st))(x1)(st)
+c_checkAssertion x1 x2@(Curry.Module.Assertion.C_AssertEqual x5 x6 x7) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_catchFail(Curry.Module.Assertion.c_checkAssertEqual(x5)(x6)(x7)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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(' '))((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('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('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.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.C_False))(st))(st))(x1)(st)
+c_checkAssertion x1 x2@(Curry.Module.Assertion.C_AssertValues x8 x9 x10) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_catchFail(Curry.Module.Assertion.c_checkAssertValues(x8)(x9)(x10)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x8)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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(' '))((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('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('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.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.C_False))(st))(st))(x1)(st)
+c_checkAssertion x1 x2@(Curry.Module.Assertion.C_AssertSolutions x11 x12 x13) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_catchFail(Curry.Module.Assertion.c_checkAssertSolutions(x11)(x12)(x13)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x11)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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(' '))((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('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('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.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.C_False))(st))(st))(x1)(st)
+c_checkAssertion x1 x2@(Curry.Module.Assertion.C_AssertIO x14 x15 x16) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_catchFail(Curry.Module.Assertion.c_checkAssertIO(x14)(x15)(x16)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x14)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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(' '))((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('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('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.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.C_False))(st))(st))(x1)(st)
+c_checkAssertion x1 x2@(Curry.Module.Assertion.C_AssertEqualIO x17 x18 x19) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_catchFail(Curry.Module.Assertion.c_checkAssertEqualIO(x17)(x18)(x19)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x17)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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(' '))((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('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('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.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.C_False))(st))(st))(x1)(st)
+c_checkAssertion x1 (Curry.Module.Assertion.C_AssertionOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_checkAssertion(x1)(x)(st))(i)(xs)(st)
+c_checkAssertion x1 x st = Curry.RunTimeSystem.patternFail("Assertion.checkAssertion")(x)
+
+
+
+c_checkAssertTrue :: (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.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertTrue x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('K'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(Curry.Module.Prelude.C_True))(st)
+c_checkAssertTrue x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((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('s'))((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('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('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('s'))((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('s'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.C_False))(st)
+c_checkAssertTrue x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_checkAssertTrue(x1)(x)(st))(i)(xs)(st)
+c_checkAssertTrue x1 x st = Curry.RunTimeSystem.patternFail("Assertion.checkAssertTrue")(x)
+
+
+
+c_checkAssertEqual :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertEqual x1 x2 x3 st = Curry.Module.Assertion.c_checkAssertEqual_case_5(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x2)(x3)(st))(st)
+
+
+
+c_checkAssertValues :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t0 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertValues x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_getSearchTree(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.Assertion.c_checkAssertValues'46_'35lambda4(x1)(x3)))(st)
+
+
+
+c_checkAssertValues'46_'35lambda4 :: (Curry t42) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List t42) -> (Curry.Module.Prelude.C_SearchTree t42) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertValues'46_'35lambda4 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_allValuesB(x3)(st)} in Curry.Module.Assertion.c_checkAssertValues'46_'35lambda4_case_4(x1)(x2)(x4)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.c_null(Curry.Module.List.op_92_92(x4)(x2)(st))(st))(Curry.Module.Prelude.c_null(Curry.Module.List.op_92_92(x2)(x4)(st))(st))(st))(st)
+
+
+
+c_checkAssertSolutions :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success)) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertSolutions x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_getSearchTree(Curry.RunTimeSystem.freeF(\ x4 -> Curry.Module.Prelude.T2(x4)(Curry.Module.Prelude.c_apply(x2)(x4)(st))))(st))(Curry.Module.Prelude.pf(Curry.Module.Assertion.c_checkAssertSolutions'46_'35lambda5(x1)(x3)))(st)
+
+
+
+c_checkAssertSolutions'46_'35lambda5 :: (Curry t73) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List t73) -> (Curry.Module.Prelude.C_SearchTree (Curry.Module.Prelude.T2 t73 Curry.Module.Prelude.C_Success)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertSolutions'46_'35lambda5 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))(Curry.Module.Prelude.c_allValuesB(x3)(st))(st)} in Curry.Module.Assertion.c_checkAssertSolutions'46_'35lambda5_case_3(x1)(x2)(x4)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.c_null(Curry.Module.List.op_92_92(x4)(x2)(st))(st))(Curry.Module.Prelude.c_null(Curry.Module.List.op_92_92(x2)(x4)(st))(st))(st))(st)
+
+
+
+c_checkAssertIO :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.C_IO t0) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertIO x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(x2)(Curry.Module.Prelude.pf(Curry.Module.Assertion.c_checkAssertIO'46_'35lambda6(x1)(x3)))(st)
+
+
+
+c_checkAssertIO'46_'35lambda6 :: (Curry t104) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t104 -> t104 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertIO'46_'35lambda6 x1 x2 x3 st = Curry.Module.Assertion.c_checkAssertIO'46_'35lambda6_case_2(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x3)(x2)(st))(st)
+
+
+
+c_checkAssertEqualIO :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.C_IO t0) -> (Curry.Module.Prelude.C_IO t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertEqualIO x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(x2)(Curry.Module.Prelude.pf(Curry.Module.Assertion.c_checkAssertEqualIO'46_'35lambda7(x3)(x1)))(st)
+
+
+
+c_checkAssertEqualIO'46_'35lambda7 :: (Curry t127) => (Curry.Module.Prelude.C_IO t127) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t127 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertEqualIO'46_'35lambda7 x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Assertion.c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8(x2)(x3)))(st)
+
+
+
+c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8 :: (Curry t127) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t127 -> t127 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8 x1 x2 x3 st = Curry.Module.Assertion.c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8_case_1(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x2)(x3)(st))(st)
+
+
+
+c_writeAssertResult :: (Curry.Module.Prelude.T2 (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_writeAssertResult x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Assertion.c_writeAssertResult_case_0(x2)(x3)(st)
+c_writeAssertResult (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_writeAssertResult(x)(st))(i)(xs)(st)
+c_writeAssertResult x st = Curry.RunTimeSystem.patternFail("Assertion.writeAssertResult")(x)
+
+
+
+c_doSend :: (Curry t0) => Curry.Module.IO.C_Handle -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_doSend x1 x2 st = Curry.Module.IO.c_hPutStrLn(x1)(Curry.Module.Prelude.c_show(x2)(st))(st)
+
+
+
+c_showTestMod :: Curry.Module.IO.C_Handle -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_showTestMod x1 x2 st = Curry.Module.Assertion.c_doSend(x1)(Curry.Module.Assertion.C_TestModule(x2))(st)
+
+
+
+c_showTestCase :: Curry.Module.IO.C_Handle -> (Curry.Module.Prelude.T2 (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.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Prelude.C_Bool)
+c_showTestCase x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.op_62_62(Curry.Module.Assertion.c_doSend(x1)(Curry.Module.Assertion.C_TestCase(x3)(x4))(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(x3)(x4))(st))(st)
+c_showTestCase x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_showTestCase(x1)(x)(st))(i)(xs)(st)
+c_showTestCase x1 x st = Curry.RunTimeSystem.patternFail("Assertion.showTestCase")(x)
+
+
+
+c_showTestEnd :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_showTestEnd x1 st = Curry.Module.Assertion.c_doSend(x1)(Curry.Module.Assertion.C_TestFinished)(st)
+
+
+
+c_showTestCompileError :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_showTestCompileError x1 st = Curry.Module.Assertion.c_doSend(x1)(Curry.Module.Assertion.C_TestCompileError)(st)
+
+
+
+c_writeAssertResult_case_0 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_putStrLn(Curry.Module.Prelude.op_43_43(x2)((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.:<)(Curry.Module.Prelude.C_Char(' '))((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('t'))((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('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('f'))((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('l'))((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('a'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))(st))(st)
+c_writeAssertResult_case_0 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_putStrLn(Curry.Module.Prelude.op_43_43(x2)((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.:<)(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(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((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('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('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('i'))((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('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('a'))((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('e'))((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('o'))((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('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))(st))(st)
+c_writeAssertResult_case_0 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_writeAssertResult_case_0(x2)(x)(st))(i)(xs)(st)
+c_writeAssertResult_case_0 x2 x st = Curry.RunTimeSystem.patternFail("Assertion.writeAssertResult_case_0")(x)
+
+
+
+c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8_case_1 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('K'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(Curry.Module.Prelude.C_True))(st)
+c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8_case_1 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x1)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((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('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('q'))((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('l'))((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('y'))((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('s'))((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('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('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('s'))((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('s'))((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('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('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))(Curry.Module.Prelude.op_43_43((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('u'))((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('a'))((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('w'))((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(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('1'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43((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('u'))((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('a'))((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('w'))((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(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('2'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x3)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List)))(st))(st))(st))(st))(st))(st))(st))(st))(Curry.Module.Prelude.C_False))(st)
+c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8_case_1 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8_case_1(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_checkAssertEqualIO'46_'35lambda7'46_'35lambda8_case_1 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Assertion.checkAssertEqualIO._#lambda7._#lambda8_case_1")(x)
+
+
+
+c_checkAssertIO'46_'35lambda6_case_2 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('K'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(Curry.Module.Prelude.C_True))(st)
+c_checkAssertIO'46_'35lambda6_case_2 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x1)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((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('O'))((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('s'))((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('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('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('s'))((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('s'))((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('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('\n'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))(Curry.Module.Prelude.op_43_43((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('u'))((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('a'))((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('w'))((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(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x3)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((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('a'))((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('w'))((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(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List)))(st))(st))(st))(st))(st))(st))(st))(st))(Curry.Module.Prelude.C_False))(st)
+c_checkAssertIO'46_'35lambda6_case_2 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_checkAssertIO'46_'35lambda6_case_2(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_checkAssertIO'46_'35lambda6_case_2 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Assertion.checkAssertIO._#lambda6_case_2")(x)
+
+
+
+c_checkAssertSolutions'46_'35lambda5_case_3 x1 x2 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('K'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(Curry.Module.Prelude.C_True))(st)
+c_checkAssertSolutions'46_'35lambda5_case_3 x1 x2 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x1)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((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('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('s'))((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('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('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('s'))((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('s'))((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('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('\n'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))(Curry.Module.Prelude.op_43_43((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('u'))((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('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('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.List))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x4)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((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('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('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.List))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(st))(st))(st))(st))(st))(st))(Curry.Module.Prelude.C_False))(st)
+c_checkAssertSolutions'46_'35lambda5_case_3 x1 x2 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_checkAssertSolutions'46_'35lambda5_case_3(x1)(x2)(x4)(x)(st))(i)(xs)(st)
+c_checkAssertSolutions'46_'35lambda5_case_3 x1 x2 x4 x st = Curry.RunTimeSystem.patternFail("Assertion.checkAssertSolutions._#lambda5_case_3")(x)
+
+
+
+c_checkAssertValues'46_'35lambda4_case_4 x1 x2 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('K'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(Curry.Module.Prelude.C_True))(st)
+c_checkAssertValues'46_'35lambda4_case_4 x1 x2 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x1)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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('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('a'))((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('e'))((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('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('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('s'))((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('s'))((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('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('\n'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))(Curry.Module.Prelude.op_43_43((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('u'))((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('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('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.List))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x4)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((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('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('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.List))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(st))(st))(st))(st))(st))(st))(Curry.Module.Prelude.C_False))(st)
+c_checkAssertValues'46_'35lambda4_case_4 x1 x2 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_checkAssertValues'46_'35lambda4_case_4(x1)(x2)(x4)(x)(st))(i)(xs)(st)
+c_checkAssertValues'46_'35lambda4_case_4 x1 x2 x4 x st = Curry.RunTimeSystem.patternFail("Assertion.checkAssertValues._#lambda4_case_4")(x)
+
+
+
+c_checkAssertEqual_case_5 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('K'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(Curry.Module.Prelude.C_True))(st)
+c_checkAssertEqual_case_5 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T2(Curry.Module.Prelude.op_43_43((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.:<)(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(' '))((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.List))))))))))))(Curry.Module.Prelude.op_43_43(x1)(Curry.Module.Prelude.op_43_43((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('q'))((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('l'))((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('y'))((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('s'))((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('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('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('s'))((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('s'))((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('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('\n'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))(Curry.Module.Prelude.op_43_43((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('u'))((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('a'))((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('w'))((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(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((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('a'))((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('w'))((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(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x3)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(st))(st))(st))(st))(st))(st))(Curry.Module.Prelude.C_False))(st)
+c_checkAssertEqual_case_5 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Assertion.c_checkAssertEqual_case_5(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_checkAssertEqual_case_5 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Assertion.checkAssertEqual_case_5")(x)
+
+
diff --git a/dist/build/Curry/Module/CSV.hs b/dist/build/Curry/Module/CSV.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/CSV.hs
@@ -0,0 +1,192 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.CSV (module Curry.Module.CSV) where
+
+import Curry.RunTimeSystem
+import Curry.Module.List
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_writeCSVFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (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_writeCSVFile x1 x2 st = Curry.Module.Prelude.c_writeFile(x1)(Curry.Module.CSV.c_showCSV(x2)(st))(st)
+
+
+
+c_showCSV :: (Curry.Module.Prelude.List (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_showCSV x1 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.CSV.c_showCSVLine))(st))(x1)(st)
+
+
+
+c_showCSVLine :: (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_showCSVLine x1 st = Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_concat(Curry.Module.List.c_intersperse((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(','))(Curry.Module.Prelude.List))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.CSV.c_showCSVLine'46convert'467))(x1)(st))(st))(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st)
+
+
+
+c_showCSVLine'46convert'467 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showCSVLine'46convert'467 x1 st = Curry.Module.CSV.c_showCSVLine'46convert'467_case_8(x1)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_any(Curry.Module.Prelude.pf(Curry.Module.CSV.c_showCSVLine'46convert'467'46_'35lambda2))(st))(x1)(st))(st)
+
+
+
+c_showCSVLine'46convert'467'46_'35lambda2 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_showCSVLine'46convert'467'46_'35lambda2 x1 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x1)(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(';'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))(Curry.Module.Prelude.List)))))(st)
+
+
+
+c_showCSVLine'46convert'467'46_'35lambda3 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showCSVLine'46convert'467'46_'35lambda3 x1 st = Curry.Module.CSV.c_showCSVLine'46convert'467'46_'35lambda3_case_7(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char('\"'))(st))(st)
+
+
+
+c_readCSVFile :: 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.List (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))))
+c_readCSVFile st = Curry.Module.Prelude.pf(Curry.Module.CSV.c_readCSVFileWithDelims((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(','))(Curry.Module.Prelude.List)))
+
+
+
+c_readCSVFileWithDelims :: (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.List (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)))
+c_readCSVFileWithDelims x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_readFile(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.CSV.c_readCSVFileWithDelims'46_'35lambda4(x1)))(st)
+
+
+
+c_readCSVFileWithDelims'46_'35lambda4 :: (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.List (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)))
+c_readCSVFileWithDelims'46_'35lambda4 x1 x2 st = Curry.Module.Prelude.c_return(Curry.Module.CSV.c_readCSVWithDelims(x1)(x2)(st))(st)
+
+
+
+c_readCSV :: 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.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)))
+c_readCSV st = Curry.Module.Prelude.pf(Curry.Module.CSV.c_readCSVWithDelims((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(','))(Curry.Module.Prelude.List)))
+
+
+
+c_readCSVWithDelims :: (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.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_readCSVWithDelims x1 x2 st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.CSV.c_components(x1)))(Curry.Module.Prelude.c_lines(x2)(st))(st)
+
+
+
+c_components :: (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.List Curry.Module.Prelude.C_Char)
+c_components x1 x2@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_components x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.CSV.c_components_case_6(x1)(x3)(x4)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Char('\"'))(st))(st)
+c_components x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components(x1)(x)(st))(i)(xs)(st)
+c_components x1 x st = Curry.RunTimeSystem.patternFail("CSV.components")(x)
+
+
+
+c_components'46breakString'4625 :: (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.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_components'46breakString'4625 x1 x2 x3@Curry.Module.Prelude.List st = x1
+c_components'46breakString'4625 x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.CSV.c_components'46breakString'4625_case_4(x1)(x2)(x4)(x5)(st)
+c_components'46breakString'4625 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625(x1)(x2)(x)(st))(i)(xs)(st)
+c_components'46breakString'4625 x1 x2 x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25")(x)
+
+
+
+c_components'46breakString'4625'46_'35selFP3'35b :: (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_components'46breakString'4625'46_'35selFP3'35b x1@((Curry.Module.Prelude.:<) x2 x3) st = x2
+c_components'46breakString'4625'46_'35selFP3'35b (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625'46_'35selFP3'35b(x)(st))(i)(xs)(st)
+c_components'46breakString'4625'46_'35selFP3'35b x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25._#selFP3#b")(x)
+
+
+
+c_components'46breakString'4625'46_'35selFP4'35bs :: (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_components'46breakString'4625'46_'35selFP4'35bs x1@((Curry.Module.Prelude.:<) x2 x3) st = x3
+c_components'46breakString'4625'46_'35selFP4'35bs (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625'46_'35selFP4'35bs(x)(st))(i)(xs)(st)
+c_components'46breakString'4625'46_'35selFP4'35bs x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25._#selFP4#bs")(x)
+
+
+
+c_components'46breakString'4625'46_'35selFP6'35b :: (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_components'46breakString'4625'46_'35selFP6'35b x1@((Curry.Module.Prelude.:<) x2 x3) st = x2
+c_components'46breakString'4625'46_'35selFP6'35b (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625'46_'35selFP6'35b(x)(st))(i)(xs)(st)
+c_components'46breakString'4625'46_'35selFP6'35b x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25._#selFP6#b")(x)
+
+
+
+c_components'46breakString'4625'46_'35selFP7'35bs :: (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_components'46breakString'4625'46_'35selFP7'35bs x1@((Curry.Module.Prelude.:<) x2 x3) st = x3
+c_components'46breakString'4625'46_'35selFP7'35bs (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625'46_'35selFP7'35bs(x)(st))(i)(xs)(st)
+c_components'46breakString'4625'46_'35selFP7'35bs x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25._#selFP7#bs")(x)
+
+
+
+c_components'46_'35selFP9'35e :: (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_components'46_'35selFP9'35e x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_components'46_'35selFP9'35e (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46_'35selFP9'35e(x)(st))(i)(xs)(st)
+c_components'46_'35selFP9'35e x st = Curry.RunTimeSystem.patternFail("CSV.components._#selFP9#e")(x)
+
+
+
+c_components'46_'35selFP10'35s :: (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_components'46_'35selFP10'35s x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_components'46_'35selFP10'35s (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46_'35selFP10'35s(x)(st))(i)(xs)(st)
+c_components'46_'35selFP10'35s x st = Curry.RunTimeSystem.patternFail("CSV.components._#selFP10#s")(x)
+
+
+
+c_components'46breakString'4625_case_4 x1 x2 x4 x5@Curry.Module.Prelude.List st = Curry.Module.CSV.c_components'46breakString'4625_case_3(x1)(x4)(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.C_Char('\"'))(st))(st)
+c_components'46breakString'4625_case_4 x1 x2 x4 x5@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.CSV.c_components'46breakString'4625_case_2(x1)(x2)(x4)(x6)(x7)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.C_Char('\"'))(st))(Curry.Module.Prelude.op_61_61(x6)(Curry.Module.Prelude.C_Char('\"'))(st))(st))(st)
+c_components'46breakString'4625_case_4 x1 x2 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625_case_4(x1)(x2)(x4)(x)(st))(i)(xs)(st)
+c_components'46breakString'4625_case_4 x1 x2 x4 x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25_case_4")(x)
+
+
+
+c_components'46breakString'4625_case_2 x1 x2 x4 x6 x7 x8@Curry.Module.Prelude.C_True st = let {x8 = Curry.Module.CSV.c_components'46breakString'4625(x1)(x2)(x7)(st)} in (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x4)(Curry.Module.CSV.c_components'46breakString'4625'46_'35selFP3'35b(x8)(st)))(Curry.Module.CSV.c_components'46breakString'4625'46_'35selFP4'35bs(x8)(st))
+c_components'46breakString'4625_case_2 x1 x2 x4 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.CSV.c_components'46breakString'4625_case_1(x1)(x2)(x4)(x6)(x7)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.C_Char('\"'))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x6)(st))(x2)(st))(st))(st)
+c_components'46breakString'4625_case_2 x1 x2 x4 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625_case_2(x1)(x2)(x4)(x6)(x7)(x)(st))(i)(xs)(st)
+c_components'46breakString'4625_case_2 x1 x2 x4 x6 x7 x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25_case_2")(x)
+
+
+
+c_components'46breakString'4625_case_1 x1 x2 x4 x6 x7 x8@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.List)(Curry.Module.CSV.c_components(x2)(x7)(st))
+c_components'46breakString'4625_case_1 x1 x2 x4 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.CSV.c_components'46breakString'4625_case_0(x1)(x2)(x4)(x6)(x7)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_components'46breakString'4625_case_1 x1 x2 x4 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625_case_1(x1)(x2)(x4)(x6)(x7)(x)(st))(i)(xs)(st)
+c_components'46breakString'4625_case_1 x1 x2 x4 x6 x7 x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25_case_1")(x)
+
+
+
+c_components'46breakString'4625_case_0 x1 x2 x4 x6 x7 x8@Curry.Module.Prelude.C_True st = let {x11 = Curry.Module.CSV.c_components'46breakString'4625(x1)(x2)((Curry.Module.Prelude.:<)(x6)(x7))(st)} in (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x4)(Curry.Module.CSV.c_components'46breakString'4625'46_'35selFP6'35b(x11)(st)))(Curry.Module.CSV.c_components'46breakString'4625'46_'35selFP7'35bs(x11)(st))
+c_components'46breakString'4625_case_0 x1 x2 x4 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625_case_0(x1)(x2)(x4)(x6)(x7)(x)(st))(i)(xs)(st)
+c_components'46breakString'4625_case_0 x1 x2 x4 x6 x7 x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25_case_0")(x)
+
+
+
+c_components'46breakString'4625_case_3 x1 x4 x5@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_components'46breakString'4625_case_3 x1 x4 x5@Curry.Module.Prelude.C_False st = x1
+c_components'46breakString'4625_case_3 x1 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components'46breakString'4625_case_3(x1)(x4)(x)(st))(i)(xs)(st)
+c_components'46breakString'4625_case_3 x1 x4 x st = Curry.RunTimeSystem.patternFail("CSV.components.breakString.25_case_3")(x)
+
+
+
+c_components_case_6 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.CSV.c_components'46breakString'4625(Curry.Module.Prelude.c_error((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('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('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('d'))((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('i'))((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('t'))((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(' '))((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(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('C'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('V'))((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.List)))))))))))))))))))))))))))))))))))))))))(st))(x1)(x4)(st)
+c_components_case_6 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = let {x6 = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_break(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_elem))(x1)))(st))((Curry.Module.Prelude.:<)(x3)(x4))(st)} in let {x8 = Curry.Module.CSV.c_components'46_'35selFP10'35s(x6)(st)} in (Curry.Module.Prelude.:<)(Curry.Module.CSV.c_components'46_'35selFP9'35e(x6)(st))(Curry.Module.CSV.c_components_case_5(x1)(x8)(Curry.Module.Prelude.c_null(x8)(st))(st))
+c_components_case_6 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components_case_6(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_components_case_6 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("CSV.components_case_6")(x)
+
+
+
+c_components_case_5 x1 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.List
+c_components_case_5 x1 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.CSV.c_components(x1)(Curry.Module.Prelude.c_tail(x8)(st))(st)
+c_components_case_5 x1 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_components_case_5(x1)(x8)(x)(st))(i)(xs)(st)
+c_components_case_5 x1 x8 x st = Curry.RunTimeSystem.patternFail("CSV.components_case_5")(x)
+
+
+
+c_showCSVLine'46convert'467'46_'35lambda3_case_7 x1 x2@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))
+c_showCSVLine'46convert'467'46_'35lambda3_case_7 x1 x2@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List)
+c_showCSVLine'46convert'467'46_'35lambda3_case_7 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_showCSVLine'46convert'467'46_'35lambda3_case_7(x1)(x)(st))(i)(xs)(st)
+c_showCSVLine'46convert'467'46_'35lambda3_case_7 x1 x st = Curry.RunTimeSystem.patternFail("CSV.showCSVLine.convert.7._#lambda3_case_7")(x)
+
+
+
+c_showCSVLine'46convert'467_case_8 x1 x2@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\"'))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.CSV.c_showCSVLine'46convert'467'46_'35lambda3))(st))(x1)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\"'))(Curry.Module.Prelude.List))(st))
+c_showCSVLine'46convert'467_case_8 x1 x2@Curry.Module.Prelude.C_False st = x1
+c_showCSVLine'46convert'467_case_8 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.CSV.c_showCSVLine'46convert'467_case_8(x1)(x)(st))(i)(xs)(st)
+c_showCSVLine'46convert'467_case_8 x1 x st = Curry.RunTimeSystem.patternFail("CSV.showCSVLine.convert.7_case_8")(x)
+
+
diff --git a/dist/build/Curry/Module/Char.hs b/dist/build/Curry/Module/Char.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Char.hs
@@ -0,0 +1,149 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Char (module Curry.Module.Char) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_isUpper :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isUpper x1 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('Z'))(st))(st))(st)
+
+
+
+c_isLower :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isLower x1 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('z'))(st))(st))(st)
+
+
+
+c_isAlpha :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isAlpha x1 st = Curry.Module.Prelude.op_124_124(Curry.Module.Char.c_isUpper(x1)(st))(Curry.Module.Char.c_isLower(x1)(st))(st)
+
+
+
+c_isDigit :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isDigit x1 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('0'))(st))(Curry.Module.Prelude.c_ord(x1)(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('9'))(st))(st))(st)
+
+
+
+c_isAlphaNum :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isAlphaNum x1 st = Curry.Module.Prelude.op_124_124(Curry.Module.Char.c_isAlpha(x1)(st))(Curry.Module.Char.c_isDigit(x1)(st))(st)
+
+
+
+c_isOctDigit :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isOctDigit x1 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('0'))(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('7'))(st))(st))(st)
+
+
+
+c_isHexDigit :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isHexDigit x1 st = Curry.Module.Prelude.op_124_124(Curry.Module.Char.c_isDigit(x1)(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('F'))(st))(st))(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('f'))(st))(st))(st))(st))(st)
+
+
+
+c_isSpace :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isSpace x1 st = Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char(' '))(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char('\t'))(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char('\n'))(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char('\r'))(st))(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(st))(st))(st))(st))(st)
+
+
+
+c_toUpper :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_toUpper x1 st = Curry.Module.Char.c_toUpper_case_10(x1)(Curry.Module.Char.c_isLower(x1)(st))(st)
+
+
+
+c_toLower :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_toLower x1 st = Curry.Module.Char.c_toLower_case_8(x1)(Curry.Module.Char.c_isUpper(x1)(st))(st)
+
+
+
+c_digitToInt :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_digitToInt x1 st = Curry.Module.Char.c_digitToInt_case_6(x1)(Curry.Module.Char.c_isDigit(x1)(st))(st)
+
+
+
+c_intToDigit :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_intToDigit x1 st = Curry.Module.Char.c_intToDigit_case_2(x1)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(x1)(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Prelude.op_60_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(st))(st)
+
+
+
+c_intToDigit_case_2 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('0'))(st))(x1)(st))(st)
+c_intToDigit_case_2 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Char.c_intToDigit_case_1(x1)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(Curry.Module.Prelude.op_60_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(st))(st))(st)
+c_intToDigit_case_2 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_intToDigit_case_2(x1)(x)(st))(i)(xs)(st)
+c_intToDigit_case_2 x1 x st = Curry.RunTimeSystem.patternFail("Char.intToDigit_case_2")(x)
+
+
+
+c_intToDigit_case_1 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.op_45(Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(x1)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(st)
+c_intToDigit_case_1 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Char.c_intToDigit_case_0(Curry.Module.Prelude.c_otherwise(st))(st)
+c_intToDigit_case_1 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_intToDigit_case_1(x1)(x)(st))(i)(xs)(st)
+c_intToDigit_case_1 x1 x st = Curry.RunTimeSystem.patternFail("Char.intToDigit_case_1")(x)
+
+
+
+c_intToDigit_case_0 x1@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_error((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('a'))((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('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('T'))((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('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((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(':'))((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('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('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('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('a'))((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('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((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(' '))((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('e'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))))))(st)
+c_intToDigit_case_0 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_intToDigit_case_0(x)(st))(i)(xs)(st)
+c_intToDigit_case_0 x st = Curry.RunTimeSystem.patternFail("Char.intToDigit_case_0")(x)
+
+
+
+c_digitToInt_case_6 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('0'))(st))(st)
+c_digitToInt_case_6 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Char.c_digitToInt_case_5(x1)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('F'))(st))(st))(st))(st)
+c_digitToInt_case_6 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_digitToInt_case_6(x1)(x)(st))(i)(xs)(st)
+c_digitToInt_case_6 x1 x st = Curry.RunTimeSystem.patternFail("Char.digitToInt_case_6")(x)
+
+
+
+c_digitToInt_case_5 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st)
+c_digitToInt_case_5 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Char.c_digitToInt_case_4(x1)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('f'))(st))(st))(st))(st)
+c_digitToInt_case_5 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_digitToInt_case_5(x1)(x)(st))(i)(xs)(st)
+c_digitToInt_case_5 x1 x st = Curry.RunTimeSystem.patternFail("Char.digitToInt_case_5")(x)
+
+
+
+c_digitToInt_case_4 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st)
+c_digitToInt_case_4 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Char.c_digitToInt_case_3(Curry.Module.Prelude.c_otherwise(st))(st)
+c_digitToInt_case_4 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_digitToInt_case_4(x1)(x)(st))(i)(xs)(st)
+c_digitToInt_case_4 x1 x st = Curry.RunTimeSystem.patternFail("Char.digitToInt_case_4")(x)
+
+
+
+c_digitToInt_case_3 x1@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_error((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('a'))((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('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((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('T'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((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(' '))((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('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('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('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('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('a'))((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('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))(st)
+c_digitToInt_case_3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_digitToInt_case_3(x)(st))(i)(xs)(st)
+c_digitToInt_case_3 x st = Curry.RunTimeSystem.patternFail("Char.digitToInt_case_3")(x)
+
+
+
+c_toLower_case_8 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st))(st))(st)
+c_toLower_case_8 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Char.c_toLower_case_7(x1)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_toLower_case_8 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_toLower_case_8(x1)(x)(st))(i)(xs)(st)
+c_toLower_case_8 x1 x st = Curry.RunTimeSystem.patternFail("Char.toLower_case_8")(x)
+
+
+
+c_toLower_case_7 x1 x2@Curry.Module.Prelude.C_True st = x1
+c_toLower_case_7 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_toLower_case_7(x1)(x)(st))(i)(xs)(st)
+c_toLower_case_7 x1 x st = Curry.RunTimeSystem.patternFail("Char.toLower_case_7")(x)
+
+
+
+c_toUpper_case_10 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st))(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(st)
+c_toUpper_case_10 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Char.c_toUpper_case_9(x1)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_toUpper_case_10 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_toUpper_case_10(x1)(x)(st))(i)(xs)(st)
+c_toUpper_case_10 x1 x st = Curry.RunTimeSystem.patternFail("Char.toUpper_case_10")(x)
+
+
+
+c_toUpper_case_9 x1 x2@Curry.Module.Prelude.C_True st = x1
+c_toUpper_case_9 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Char.c_toUpper_case_9(x1)(x)(st))(i)(xs)(st)
+c_toUpper_case_9 x1 x st = Curry.RunTimeSystem.patternFail("Char.toUpper_case_9")(x)
+
+
diff --git a/dist/build/Curry/Module/Dequeue.hs b/dist/build/Curry/Module/Dequeue.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Dequeue.hs
@@ -0,0 +1,289 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Dequeue (module Curry.Module.Dequeue) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+data C_Queue t0 = C_S Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List t0) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List t0)
+  | C_QueueFail Curry.RunTimeSystem.C_Exceptions
+  | C_QueueOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Dequeue.C_Queue t0))
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.Dequeue.C_Queue t0) where
+  nf f (Curry.Module.Dequeue.C_S x1 x2 x3 x4) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> Curry.RunTimeSystem.nfCTC(\ v4 state4 -> f(Curry.Module.Dequeue.C_S(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Dequeue.C_S x1 x2 x3 x4) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> Curry.RunTimeSystem.gnfCTC(\ v4 state4 -> f(Curry.Module.Dequeue.C_S(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Dequeue.C_QueueOr(Curry.RunTimeSystem.mkRef(r)(4)(i))([Curry.Module.Dequeue.C_S(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))))]))(4)
+
+  failed  = Curry.Module.Dequeue.C_QueueFail
+
+  branching  = Curry.Module.Dequeue.C_QueueOr
+
+  consKind (Curry.Module.Dequeue.C_QueueOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Dequeue.C_QueueFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Dequeue.C_QueueFail x) = x
+
+  orRef (Curry.Module.Dequeue.C_QueueOr x _) = x
+
+  branches (Curry.Module.Dequeue.C_QueueOr _ x) = x
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.Dequeue.C_Queue t0) where
+  strEq (Curry.Module.Dequeue.C_S x1 x2 x3 x4) (Curry.Module.Dequeue.C_S y1 y2 y3 y4) 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.genStrEq(x4)(y4)(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Dequeue.C_S x1 x2 x3 x4) (Curry.Module.Dequeue.C_S y1 y2 y3 y4) 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.genEq(x4)(y4)(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Dequeue.C_S x1 x2 x3 x4) st = Curry.Module.Dequeue.C_S(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))(f((3::Int))(x4)(st))
+
+  foldCurry f c (Curry.Module.Dequeue.C_S x1 x2 x3 x4) st = f(x1)(f(x2)(f(x3)(f(x4)(c)(st))(st))(st))(st)
+
+  typeName _ = "Queue"
+
+  showQ d (Curry.Module.Dequeue.C_S x1 x2 x3 x4) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Dequeue.S "))((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(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x4))))))))
+
+
+  showQ _ (Curry.Module.Dequeue.C_QueueOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.Dequeue.C_Queue t0) where
+  showsPrec d (Curry.Module.Dequeue.C_S x1 x2 x3 x4) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("S "))((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.showsPrec(Curry.RunTimeSystem.eleven)(x4))))))))
+
+
+  showsPrec _ (Curry.Module.Dequeue.C_QueueOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.Dequeue.C_Queue t0) where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Dequeue.C_S(x1)(x2)(x3)(x4))(r4) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Dequeue")("S")(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)])(r)
+
+
+
+
+
+c_empty :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_empty st = Curry.Module.Dequeue.C_S(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.List)(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.List)
+
+
+
+c_isEmpty :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isEmpty x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.op_43(x2)(x4)(st))(Curry.Module.Prelude.C_Zero)(st)
+c_isEmpty (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_isEmpty(x)(st))(i)(xs)(st)
+c_isEmpty x st = Curry.RunTimeSystem.patternFail("Dequeue.isEmpty")(x)
+
+
+
+c_deqHead :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> t0
+c_deqHead x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Prelude.c_head(Curry.Module.Dequeue.c_deqHead_case_11(x2)(x3)(x5)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st))(st)
+c_deqHead (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqHead(x)(st))(i)(xs)(st)
+c_deqHead x st = Curry.RunTimeSystem.patternFail("Dequeue.deqHead")(x)
+
+
+
+c_deqLast :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> t0
+c_deqLast x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Prelude.c_head(Curry.Module.Dequeue.c_deqLast_case_10(x3)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.C_Zero)(st))(st))(st)
+c_deqLast (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqLast(x)(st))(i)(xs)(st)
+c_deqLast x st = Curry.RunTimeSystem.patternFail("Dequeue.deqLast")(x)
+
+
+
+c_cons :: (Curry t0) => t0 -> (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_cons x1 x2@(Curry.Module.Dequeue.C_S x3 x4 x5 x6) st = Curry.Module.Dequeue.c_check(Curry.Module.Prelude.op_43(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))((Curry.Module.Prelude.:<)(x1)(x4))(x5)(x6)(st)
+c_cons x1 (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_cons(x1)(x)(st))(i)(xs)(st)
+c_cons x1 x st = Curry.RunTimeSystem.patternFail("Dequeue.cons")(x)
+
+
+
+c_deqTail :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_deqTail x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Dequeue.c_deqTail_case_9(x2)(x4)(x5)(x3)(st)
+c_deqTail (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqTail(x)(st))(i)(xs)(st)
+c_deqTail x st = Curry.RunTimeSystem.patternFail("Dequeue.deqTail")(x)
+
+
+
+c_snoc :: (Curry t0) => t0 -> (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_snoc x1 x2@(Curry.Module.Dequeue.C_S x3 x4 x5 x6) st = Curry.Module.Dequeue.c_deqReverse(Curry.Module.Dequeue.c_check(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))((Curry.Module.Prelude.:<)(x1)(x6))(x3)(x4)(st))(st)
+c_snoc x1 (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_snoc(x1)(x)(st))(i)(xs)(st)
+c_snoc x1 x st = Curry.RunTimeSystem.patternFail("Dequeue.snoc")(x)
+
+
+
+c_deqInit :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_deqInit x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Dequeue.c_deqInit_case_8(x2)(x3)(x4)(x5)(st)
+c_deqInit (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqInit(x)(st))(i)(xs)(st)
+c_deqInit x st = Curry.RunTimeSystem.patternFail("Dequeue.deqInit")(x)
+
+
+
+c_deqReverse :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_deqReverse x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Dequeue.C_S(x4)(x5)(x2)(x3)
+c_deqReverse (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqReverse(x)(st))(i)(xs)(st)
+c_deqReverse x st = Curry.RunTimeSystem.patternFail("Dequeue.deqReverse")(x)
+
+
+
+c_check :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_check x1 x2 x3 x4 st = let {x5 = Curry.Module.Prelude.op_43(x1)(x3)(st)} in let {x6 = Curry.Module.Prelude.c_div(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st)} in let {x8 = Curry.Module.Prelude.c_splitAt(x6)(x2)(st)} in Curry.Module.Dequeue.c_check_case_7(x1)(x2)(x3)(x4)(x5)(x6)(x8)(Curry.Module.Prelude.op_60_61(x1)(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(x3)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st)
+
+
+
+c_check'46_'35selFP3'35f'39 :: (Curry t45) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t45) (Curry.Module.Prelude.List t45)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t45
+c_check'46_'35selFP3'35f'39 x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_check'46_'35selFP3'35f'39 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_check'46_'35selFP3'35f'39(x)(st))(i)(xs)(st)
+c_check'46_'35selFP3'35f'39 x st = Curry.RunTimeSystem.patternFail("Dequeue.check._#selFP3#f'")(x)
+
+
+
+c_check'46_'35selFP4'35rf'39 :: (Curry t45) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t45) (Curry.Module.Prelude.List t45)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t45
+c_check'46_'35selFP4'35rf'39 x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_check'46_'35selFP4'35rf'39 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_check'46_'35selFP4'35rf'39(x)(st))(i)(xs)(st)
+c_check'46_'35selFP4'35rf'39 x st = Curry.RunTimeSystem.patternFail("Dequeue.check._#selFP4#rf'")(x)
+
+
+
+c_listToDeq :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_listToDeq x1 st = Curry.Module.Dequeue.c_check(Curry.Module.Prelude.c_length(x1)(st))(x1)(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.List)(st)
+
+
+
+c_deqToList :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_deqToList x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Prelude.op_43_43(x3)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x5)(st))(st)
+c_deqToList (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqToList(x)(st))(i)(xs)(st)
+c_deqToList x st = Curry.RunTimeSystem.patternFail("Dequeue.deqToList")(x)
+
+
+
+c_deqLength :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_deqLength x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Prelude.op_43(x2)(x4)(st)
+c_deqLength (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqLength(x)(st))(i)(xs)(st)
+c_deqLength x st = Curry.RunTimeSystem.patternFail("Dequeue.deqLength")(x)
+
+
+
+c_rotate :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Dequeue.C_Queue t0
+c_rotate x1 st = Curry.Module.Dequeue.c_snoc(Curry.Module.Dequeue.c_deqHead(x1)(st))(Curry.Module.Dequeue.c_deqTail(x1)(st))(st)
+
+
+
+c_matchHead :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 t0 (Curry.Module.Dequeue.C_Queue t0))
+c_matchHead x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Dequeue.c_matchHead_case_5(x2)(x4)(x5)(x3)(st)
+c_matchHead (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_matchHead(x)(st))(i)(xs)(st)
+c_matchHead x st = Curry.RunTimeSystem.patternFail("Dequeue.matchHead")(x)
+
+
+
+c_matchLast :: (Curry t0) => (Curry.Module.Dequeue.C_Queue t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 t0 (Curry.Module.Dequeue.C_Queue t0))
+c_matchLast x1@(Curry.Module.Dequeue.C_S x2 x3 x4 x5) st = Curry.Module.Dequeue.c_matchLast_case_2(x2)(x3)(x4)(x5)(st)
+c_matchLast (Curry.Module.Dequeue.C_QueueOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_matchLast(x)(st))(i)(xs)(st)
+c_matchLast x st = Curry.RunTimeSystem.patternFail("Dequeue.matchLast")(x)
+
+
+
+c_matchLast_case_2 x2 x3 x4 x5@Curry.Module.Prelude.List st = Curry.Module.Dequeue.c_matchLast_case_1(x3)(st)
+c_matchLast_case_2 x2 x3 x4 x5@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Prelude.C_Just(Curry.Module.Prelude.T2(x8)(Curry.Module.Dequeue.c_check(x2)(x3)(Curry.Module.Prelude.op_45(x4)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x9)(st)))
+c_matchLast_case_2 x2 x3 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_matchLast_case_2(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_matchLast_case_2 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Dequeue.matchLast_case_2")(x)
+
+
+
+c_matchLast_case_1 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Nothing
+c_matchLast_case_1 x3@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Dequeue.c_matchLast_case_0(x6)(x7)(st)
+c_matchLast_case_1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_matchLast_case_1(x)(st))(i)(xs)(st)
+c_matchLast_case_1 x st = Curry.RunTimeSystem.patternFail("Dequeue.matchLast_case_1")(x)
+
+
+
+c_matchLast_case_0 x6 x7@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Just(Curry.Module.Prelude.T2(x6)(Curry.Module.Dequeue.c_empty(st)))
+c_matchLast_case_0 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_matchLast_case_0(x6)(x)(st))(i)(xs)(st)
+c_matchLast_case_0 x6 x st = Curry.RunTimeSystem.patternFail("Dequeue.matchLast_case_0")(x)
+
+
+
+c_matchHead_case_5 x2 x4 x5 x3@Curry.Module.Prelude.List st = Curry.Module.Dequeue.c_matchHead_case_4(x5)(st)
+c_matchHead_case_5 x2 x4 x5 x3@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Prelude.C_Just(Curry.Module.Prelude.T2(x8)(Curry.Module.Dequeue.c_deqReverse(Curry.Module.Dequeue.c_check(x4)(x5)(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x9)(st))(st)))
+c_matchHead_case_5 x2 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_matchHead_case_5(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_matchHead_case_5 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Dequeue.matchHead_case_5")(x)
+
+
+
+c_matchHead_case_4 x5@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Nothing
+c_matchHead_case_4 x5@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Dequeue.c_matchHead_case_3(x6)(x7)(st)
+c_matchHead_case_4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_matchHead_case_4(x)(st))(i)(xs)(st)
+c_matchHead_case_4 x st = Curry.RunTimeSystem.patternFail("Dequeue.matchHead_case_4")(x)
+
+
+
+c_matchHead_case_3 x6 x7@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Just(Curry.Module.Prelude.T2(x6)(Curry.Module.Dequeue.c_empty(st)))
+c_matchHead_case_3 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_matchHead_case_3(x6)(x)(st))(i)(xs)(st)
+c_matchHead_case_3 x6 x st = Curry.RunTimeSystem.patternFail("Dequeue.matchHead_case_3")(x)
+
+
+
+c_check_case_7 x1 x2 x3 x4 x5 x6 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Dequeue.C_S(x1)(x2)(x3)(x4)
+c_check_case_7 x1 x2 x3 x4 x5 x6 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.Dequeue.c_check_case_6(x4)(x5)(x6)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_check_case_7 x1 x2 x3 x4 x5 x6 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_check_case_7(x1)(x2)(x3)(x4)(x5)(x6)(x8)(x)(st))(i)(xs)(st)
+c_check_case_7 x1 x2 x3 x4 x5 x6 x8 x st = Curry.RunTimeSystem.patternFail("Dequeue.check_case_7")(x)
+
+
+
+c_check_case_6 x4 x5 x6 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Dequeue.C_S(x6)(Curry.Module.Dequeue.c_check'46_'35selFP3'35f'39(x8)(st))(Curry.Module.Prelude.op_45(x5)(x6)(st))(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(Curry.Module.Dequeue.c_check'46_'35selFP4'35rf'39(x8)(st))(st))(st))
+c_check_case_6 x4 x5 x6 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_check_case_6(x4)(x5)(x6)(x8)(x)(st))(i)(xs)(st)
+c_check_case_6 x4 x5 x6 x8 x st = Curry.RunTimeSystem.patternFail("Dequeue.check_case_6")(x)
+
+
+
+c_deqInit_case_8 x2 x3 x4 x5@Curry.Module.Prelude.List st = Curry.Module.Dequeue.c_empty(st)
+c_deqInit_case_8 x2 x3 x4 x5@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Dequeue.c_check(x2)(x3)(Curry.Module.Prelude.op_45(x4)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x7)(st)
+c_deqInit_case_8 x2 x3 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqInit_case_8(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_deqInit_case_8 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Dequeue.deqInit_case_8")(x)
+
+
+
+c_deqTail_case_9 x2 x4 x5 x3@Curry.Module.Prelude.List st = Curry.Module.Dequeue.c_empty(st)
+c_deqTail_case_9 x2 x4 x5 x3@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Dequeue.c_deqReverse(Curry.Module.Dequeue.c_check(x4)(x5)(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x7)(st))(st)
+c_deqTail_case_9 x2 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqTail_case_9(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_deqTail_case_9 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Dequeue.deqTail_case_9")(x)
+
+
+
+c_deqLast_case_10 x3 x4 x5 x6@Curry.Module.Prelude.C_True st = x3
+c_deqLast_case_10 x3 x4 x5 x6@Curry.Module.Prelude.C_False st = x5
+c_deqLast_case_10 x3 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqLast_case_10(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_deqLast_case_10 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("Dequeue.deqLast_case_10")(x)
+
+
+
+c_deqHead_case_11 x2 x3 x5 x6@Curry.Module.Prelude.C_True st = x5
+c_deqHead_case_11 x2 x3 x5 x6@Curry.Module.Prelude.C_False st = x3
+c_deqHead_case_11 x2 x3 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Dequeue.c_deqHead_case_11(x2)(x3)(x5)(x)(st))(i)(xs)(st)
+c_deqHead_case_11 x2 x3 x5 x st = Curry.RunTimeSystem.patternFail("Dequeue.deqHead_case_11")(x)
+
+
diff --git a/dist/build/Curry/Module/Directory.hs b/dist/build/Curry/Module/Directory.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Directory.hs
@@ -0,0 +1,175 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Directory (module Curry.Module.Directory) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+import Curry.Module.Time
+
+
+
+-- begin included
+
+
+
+import System.Time
+import System.Directory
+import System.IO
+
+prim_doesFileExist :: C_String -> Result (C_IO C_Bool)
+prim_doesFileExist = ioFunc1 doesFileExist
+
+prim_doesDirectoryExist :: C_String -> Result (C_IO C_Bool)
+prim_doesDirectoryExist = ioFunc1 doesDirectoryExist
+
+prim_fileSize :: C_String -> Result (C_IO C_Int)
+prim_fileSize = ioFunc1 (\s->do h <- openFile s ReadMode 
+                                i <- hFileSize h
+                                hClose h
+                                Prelude.return i)
+
+prim_getModificationTime :: C_String -> Result (C_IO C_ClockTime)
+prim_getModificationTime = ioFunc1 getModificationTime
+
+prim_getDirectoryContents :: C_String -> Result (C_IO (List C_String))
+prim_getDirectoryContents = ioFunc1 getDirectoryContents
+
+getCurrentDirectory :: Result (C_IO C_String)
+getCurrentDirectory = ioFunc0 System.Directory.getCurrentDirectory
+
+prim_createDirectory :: C_String -> Result (C_IO T0)
+prim_createDirectory = ioFunc1 createDirectory
+
+prim_removeFile :: C_String -> Result (C_IO T0)
+prim_removeFile = ioFunc1 removeFile
+
+prim_setCurrentDirectory :: C_String -> Result (C_IO T0)
+prim_setCurrentDirectory = ioFunc1 setCurrentDirectory
+
+prim_removeDirectory :: C_String -> Result (C_IO T0)
+prim_removeDirectory = ioFunc1 removeDirectory
+
+prim_renameFile :: C_String -> C_String -> Result (C_IO T0)
+prim_renameFile = ioFunc2 renameFile
+
+prim_renameDirectory :: C_String -> C_String -> Result (C_IO T0)
+prim_renameDirectory = ioFunc2 renameDirectory
+
+-- end included
+
+c_doesFileExist :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_doesFileExist x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_doesFileExist))(x1)(st)
+
+
+
+c_doesDirectoryExist :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_doesDirectoryExist x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_doesDirectoryExist))(x1)(st)
+
+
+
+c_fileSize :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_fileSize x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_fileSize))(x1)(st)
+
+
+
+c_getModificationTime :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Time.C_ClockTime
+c_getModificationTime x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_getModificationTime))(x1)(st)
+
+
+
+c_setCurrentDirectory :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_setCurrentDirectory x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_setCurrentDirectory))(x1)(st)
+
+
+
+c_getDirectoryContents :: (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_getDirectoryContents x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_getDirectoryContents))(x1)(st)
+
+
+
+c_createDirectory :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_createDirectory x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_createDirectory))(x1)(st)
+
+
+
+c_removeFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_removeFile x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_removeFile))(x1)(st)
+
+
+
+c_removeDirectory :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_removeDirectory x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Directory.c_prim_removeDirectory))(x1)(st)
+
+
+
+c_renameFile :: (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_renameFile x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Directory.c_prim_renameFile))(x1)(st))(x2)(st)
+
+
+
+c_renameDirectory :: (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_renameDirectory x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Directory.c_prim_renameDirectory))(x1)(st))(x2)(st)
+
+
+
+c_prim_doesFileExist :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_prim_doesFileExist x1 st = Curry.Module.Directory.prim_doesFileExist(x1)(st)
+
+
+
+c_prim_doesDirectoryExist :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_prim_doesDirectoryExist x1 st = Curry.Module.Directory.prim_doesDirectoryExist(x1)(st)
+
+
+
+c_prim_fileSize :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_prim_fileSize x1 st = Curry.Module.Directory.prim_fileSize(x1)(st)
+
+
+
+c_prim_getModificationTime :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Time.C_ClockTime
+c_prim_getModificationTime x1 st = Curry.Module.Directory.prim_getModificationTime(x1)(st)
+
+
+
+c_getCurrentDirectory :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getCurrentDirectory st = Curry.Module.Directory.getCurrentDirectory(st)
+
+
+
+c_prim_setCurrentDirectory :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_setCurrentDirectory x1 st = Curry.Module.Directory.prim_setCurrentDirectory(x1)(st)
+
+
+
+c_prim_getDirectoryContents :: (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_prim_getDirectoryContents x1 st = Curry.Module.Directory.prim_getDirectoryContents(x1)(st)
+
+
+
+c_prim_createDirectory :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_createDirectory x1 st = Curry.Module.Directory.prim_createDirectory(x1)(st)
+
+
+
+c_prim_removeFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_removeFile x1 st = Curry.Module.Directory.prim_removeFile(x1)(st)
+
+
+
+c_prim_removeDirectory :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_removeDirectory x1 st = Curry.Module.Directory.prim_removeDirectory(x1)(st)
+
+
+
+c_prim_renameFile :: (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_prim_renameFile x1 x2 st = Curry.Module.Directory.prim_renameFile(x1)(x2)(st)
+
+
+
+c_prim_renameDirectory :: (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_prim_renameDirectory x1 x2 st = Curry.Module.Directory.prim_renameDirectory(x1)(x2)(st)
+
+
diff --git a/dist/build/Curry/Module/EasyCheck.hs b/dist/build/Curry/Module/EasyCheck.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/EasyCheck.hs
@@ -0,0 +1,1061 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.EasyCheck (module Curry.Module.EasyCheck) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Integer
+import Curry.Module.List
+import Curry.Module.Meta
+import Curry.Module.Prelude
+import Curry.Module.RandomExternal
+import Curry.Module.Sort
+import Curry.Module.Read
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_Prop = Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+
+data C_Test = C_Test Curry.Module.EasyCheck.C_Result (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+  | C_TestFail Curry.RunTimeSystem.C_Exceptions
+  | C_TestOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.EasyCheck.C_Test)
+
+data C_Result = C_Undef
+  | C_Ok
+  | C_Falsified (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+  | C_Ambigious (Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool) (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+  | C_ResultFail Curry.RunTimeSystem.C_Exceptions
+  | C_ResultOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.EasyCheck.C_Result)
+
+data C_Config = C_Config Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> 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_ConfigFail Curry.RunTimeSystem.C_Exceptions
+  | C_ConfigOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.EasyCheck.C_Config)
+
+instance BaseCurry Curry.Module.EasyCheck.C_Test where
+  nf f (Curry.Module.EasyCheck.C_Test x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.EasyCheck.C_Test(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.EasyCheck.C_Test x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.EasyCheck.C_Test(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.EasyCheck.C_TestOr(Curry.RunTimeSystem.mkRef(r)(3)(i))([Curry.Module.EasyCheck.C_Test(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(3)
+
+  failed  = Curry.Module.EasyCheck.C_TestFail
+
+  branching  = Curry.Module.EasyCheck.C_TestOr
+
+  consKind (Curry.Module.EasyCheck.C_TestOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.EasyCheck.C_TestFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.EasyCheck.C_TestFail x) = x
+
+  orRef (Curry.Module.EasyCheck.C_TestOr x _) = x
+
+  branches (Curry.Module.EasyCheck.C_TestOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.EasyCheck.C_Result where
+  nf f (Curry.Module.EasyCheck.C_Falsified x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.EasyCheck.C_Falsified(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.EasyCheck.C_Ambigious x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.EasyCheck.C_Ambigious(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.EasyCheck.C_Falsified x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.EasyCheck.C_Falsified(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.EasyCheck.C_Ambigious x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.EasyCheck.C_Ambigious(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.EasyCheck.C_ResultOr(Curry.RunTimeSystem.mkRef(r)(2)(i))([Curry.Module.EasyCheck.C_Undef,Curry.Module.EasyCheck.C_Ok,Curry.Module.EasyCheck.C_Falsified(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.EasyCheck.C_Ambigious(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(2)
+
+  failed  = Curry.Module.EasyCheck.C_ResultFail
+
+  branching  = Curry.Module.EasyCheck.C_ResultOr
+
+  consKind (Curry.Module.EasyCheck.C_ResultOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.EasyCheck.C_ResultFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.EasyCheck.C_ResultFail x) = x
+
+  orRef (Curry.Module.EasyCheck.C_ResultOr x _) = x
+
+  branches (Curry.Module.EasyCheck.C_ResultOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.EasyCheck.C_Config where
+  nf f (Curry.Module.EasyCheck.C_Config x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.EasyCheck.C_Config(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.EasyCheck.C_Config x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.EasyCheck.C_Config(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.EasyCheck.C_ConfigOr(Curry.RunTimeSystem.mkRef(r)(3)(i))([Curry.Module.EasyCheck.C_Config(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(3)
+
+  failed  = Curry.Module.EasyCheck.C_ConfigFail
+
+  branching  = Curry.Module.EasyCheck.C_ConfigOr
+
+  consKind (Curry.Module.EasyCheck.C_ConfigOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.EasyCheck.C_ConfigFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.EasyCheck.C_ConfigFail x) = x
+
+  orRef (Curry.Module.EasyCheck.C_ConfigOr x _) = x
+
+  branches (Curry.Module.EasyCheck.C_ConfigOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.EasyCheck.C_Test where
+  strEq (Curry.Module.EasyCheck.C_Test x1 x2 x3) (Curry.Module.EasyCheck.C_Test 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 _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.EasyCheck.C_Test x1 x2 x3) (Curry.Module.EasyCheck.C_Test 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.Prelude.C_False
+
+  propagate f (Curry.Module.EasyCheck.C_Test x1 x2 x3) st = Curry.Module.EasyCheck.C_Test(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+
+  foldCurry f c (Curry.Module.EasyCheck.C_Test x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+
+  typeName _ = "Test"
+
+  showQ d (Curry.Module.EasyCheck.C_Test x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("EasyCheck.Test "))((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.EasyCheck.C_TestOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.EasyCheck.C_Result where
+  strEq Curry.Module.EasyCheck.C_Undef Curry.Module.EasyCheck.C_Undef st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.EasyCheck.C_Ok Curry.Module.EasyCheck.C_Ok st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.EasyCheck.C_Falsified x1) (Curry.Module.EasyCheck.C_Falsified y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.EasyCheck.C_Ambigious x1 x2) (Curry.Module.EasyCheck.C_Ambigious y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.EasyCheck.C_Undef Curry.Module.EasyCheck.C_Undef st = Curry.Module.Prelude.C_True
+  eq Curry.Module.EasyCheck.C_Ok Curry.Module.EasyCheck.C_Ok st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.EasyCheck.C_Falsified x1) (Curry.Module.EasyCheck.C_Falsified y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.EasyCheck.C_Ambigious x1 x2) (Curry.Module.EasyCheck.C_Ambigious y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.EasyCheck.C_Undef st = Curry.Module.EasyCheck.C_Undef
+  propagate f Curry.Module.EasyCheck.C_Ok st = Curry.Module.EasyCheck.C_Ok
+  propagate f (Curry.Module.EasyCheck.C_Falsified x1) st = Curry.Module.EasyCheck.C_Falsified(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.EasyCheck.C_Ambigious x1 x2) st = Curry.Module.EasyCheck.C_Ambigious(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+
+  foldCurry f c Curry.Module.EasyCheck.C_Undef st = c
+  foldCurry f c Curry.Module.EasyCheck.C_Ok st = c
+  foldCurry f c (Curry.Module.EasyCheck.C_Falsified x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.EasyCheck.C_Ambigious x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+
+  typeName _ = "Result"
+
+  showQ _ Curry.Module.EasyCheck.C_Undef = Prelude.showString("EasyCheck.Undef")
+  showQ _ Curry.Module.EasyCheck.C_Ok = Prelude.showString("EasyCheck.Ok")
+  showQ d (Curry.Module.EasyCheck.C_Falsified x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("EasyCheck.Falsified "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.EasyCheck.C_Ambigious x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("EasyCheck.Ambigious "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ _ (Curry.Module.EasyCheck.C_ResultOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.EasyCheck.C_Config where
+  strEq (Curry.Module.EasyCheck.C_Config x1 x2 x3) (Curry.Module.EasyCheck.C_Config 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 _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.EasyCheck.C_Config x1 x2 x3) (Curry.Module.EasyCheck.C_Config 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.Prelude.C_False
+
+  propagate f (Curry.Module.EasyCheck.C_Config x1 x2 x3) st = Curry.Module.EasyCheck.C_Config(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+
+  foldCurry f c (Curry.Module.EasyCheck.C_Config x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+
+  typeName _ = "Config"
+
+  showQ d (Curry.Module.EasyCheck.C_Config x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("EasyCheck.Config "))((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.EasyCheck.C_ConfigOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.EasyCheck.C_Test where
+  showsPrec d (Curry.Module.EasyCheck.C_Test x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Test "))((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.EasyCheck.C_TestOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.EasyCheck.C_Result where
+  showsPrec _ Curry.Module.EasyCheck.C_Undef = Prelude.showString("Undef")
+  showsPrec _ Curry.Module.EasyCheck.C_Ok = Prelude.showString("Ok")
+  showsPrec d (Curry.Module.EasyCheck.C_Falsified x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Falsified "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.EasyCheck.C_Ambigious x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Ambigious "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec _ (Curry.Module.EasyCheck.C_ResultOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.EasyCheck.C_Config where
+  showsPrec d (Curry.Module.EasyCheck.C_Config x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Config "))((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.EasyCheck.C_ConfigOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.EasyCheck.C_Test where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.EasyCheck.C_Test(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EasyCheck")("Test")(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)
+
+
+
+
+
+instance Read Curry.Module.EasyCheck.C_Result where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.EasyCheck.C_Undef)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EasyCheck")("Undef")(r)])(r))((Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.EasyCheck.C_Ok)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EasyCheck")("Ok")(r)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.EasyCheck.C_Falsified(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EasyCheck")("Falsified")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.EasyCheck.C_Ambigious(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EasyCheck")("Ambigious")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r))))
+
+
+
+
+
+instance Read Curry.Module.EasyCheck.C_Config where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.EasyCheck.C_Config(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EasyCheck")("Config")(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)
+
+
+
+
+
+c_notest :: Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Test
+c_notest st = Curry.Module.EasyCheck.C_Test(Curry.Module.EasyCheck.C_Undef)(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+
+
+
+c_result :: Curry.Module.EasyCheck.C_Test -> Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Result
+c_result x1@(Curry.Module.EasyCheck.C_Test x2 x3 x4) st = x2
+c_result (Curry.Module.EasyCheck.C_TestOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_result(x)(st))(i)(xs)(st)
+c_result x st = Curry.RunTimeSystem.patternFail("EasyCheck.result")(x)
+
+
+
+c_setResult :: Curry.Module.EasyCheck.C_Result -> Curry.Module.EasyCheck.C_Test -> Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Test
+c_setResult x1 x2@(Curry.Module.EasyCheck.C_Test x3 x4 x5) st = Curry.Module.EasyCheck.C_Test(x1)(x5)(x4)
+c_setResult x1 (Curry.Module.EasyCheck.C_TestOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_setResult(x1)(x)(st))(i)(xs)(st)
+c_setResult x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.setResult")(x)
+
+
+
+c_args :: Curry.Module.EasyCheck.C_Test -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_args x1@(Curry.Module.EasyCheck.C_Test x2 x3 x4) st = x3
+c_args (Curry.Module.EasyCheck.C_TestOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_args(x)(st))(i)(xs)(st)
+c_args x st = Curry.RunTimeSystem.patternFail("EasyCheck.args")(x)
+
+
+
+c_stamp :: Curry.Module.EasyCheck.C_Test -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_stamp x1@(Curry.Module.EasyCheck.C_Test x2 x3 x4) st = x4
+c_stamp (Curry.Module.EasyCheck.C_TestOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_stamp(x)(st))(i)(xs)(st)
+c_stamp x st = Curry.RunTimeSystem.patternFail("EasyCheck.stamp")(x)
+
+
+
+c_updArgs :: (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.List Curry.Module.Prelude.C_Char))) -> Curry.Module.EasyCheck.C_Test -> Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Test
+c_updArgs x1 x2@(Curry.Module.EasyCheck.C_Test x3 x4 x5) st = Curry.Module.EasyCheck.C_Test(x3)(Curry.Module.Prelude.c_apply(x1)(x4)(st))(x5)
+c_updArgs x1 (Curry.Module.EasyCheck.C_TestOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_updArgs(x1)(x)(st))(i)(xs)(st)
+c_updArgs x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.updArgs")(x)
+
+
+
+c_updStamp :: (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.List Curry.Module.Prelude.C_Char))) -> Curry.Module.EasyCheck.C_Test -> Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Test
+c_updStamp x1 x2@(Curry.Module.EasyCheck.C_Test x3 x4 x5) st = Curry.Module.EasyCheck.C_Test(x3)(x4)(Curry.Module.Prelude.c_apply(x1)(x5)(st))
+c_updStamp x1 (Curry.Module.EasyCheck.C_TestOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_updStamp(x1)(x)(st))(i)(xs)(st)
+c_updStamp x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.updStamp")(x)
+
+
+
+c_test :: (Curry t0) => t0 -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+c_test x1 x2 st = let {x3 = Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_valuesOf(st))(x1)(st)} in (Curry.Module.Prelude.:<)(Curry.Module.EasyCheck.c_setResult(let {x5 = Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_valuesOf(st))(Curry.Module.Prelude.c_apply(x2)(x3)(st))(st)} in Curry.Module.EasyCheck.c_test_case_32(x3)(x5)(st))(Curry.Module.EasyCheck.c_notest(st))(st))(Curry.Module.Prelude.List)
+
+
+
+c_is :: (Curry t0) => t0 -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+c_is x1 x2 st = Curry.Module.EasyCheck.c_test(x1)(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_is'46_'35lambda3(x2)))(st)
+
+
+
+c_is'46_'35lambda3 :: (Curry t220) => (Curry.Module.Prelude.Prim (t220 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.List t220) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_is'46_'35lambda3 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.EasyCheck.c_is'46_'35lambda3_case_28(x1)(x3)(x4)(st)
+c_is'46_'35lambda3 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_False
+c_is'46_'35lambda3 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_is'46_'35lambda3(x1)(x)(st))(i)(xs)(st)
+c_is'46_'35lambda3 x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.is._#lambda3")(x)
+
+
+
+c_isAlways :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)
+c_isAlways x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_test(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_all))(st)
+
+
+
+c_isEventually :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)
+c_isEventually x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_test(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_any))(st)
+
+
+
+c_prop :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)
+c_prop st = Curry.Module.EasyCheck.c_uniquely(st)
+
+
+
+c_uniquely :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)
+c_uniquely 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.EasyCheck.c_is))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)))
+
+
+
+c_always :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)
+c_always st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_isAlways))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)))
+
+
+
+c_eventually :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)
+c_eventually st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_isEventually))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)))
+
+
+
+c_failing :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+c_failing x1 st = Curry.Module.EasyCheck.c_test(x1)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_null))(st)
+
+
+
+c_successful :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+c_successful x1 st = Curry.Module.EasyCheck.c_test(x1)(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_null))(st))(st)
+
+
+
+c_deterministic :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+c_deterministic x1 st = Curry.Module.EasyCheck.c_is(x1)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.Prelude.C_True)))(st)
+
+
+
+op_35 :: (Curry t0) => t0 -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+op_35 x1 x2 st = Curry.Module.EasyCheck.c_test(x1)(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_61_61(x2)))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_length))(Curry.Module.Prelude.pf(Curry.Module.List.c_nub))(st))(st))(st)
+
+
+
+op_45_61_45 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+op_45_61_45 x1 x2 st = Curry.Module.EasyCheck.c_is(Curry.Module.Prelude.T2(x1)(x2))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_uncurry(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_61_61))))(st)
+
+
+
+op_60_126_62 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+op_60_126_62 x1 x2 st = Curry.Module.EasyCheck.c_test(x1)(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_isSameSet(Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_valuesOf(st))(x2)(st))))(st)
+
+
+
+op_126_62 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+op_126_62 x1 x2 st = Curry.Module.EasyCheck.c_test(x1)(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_isSubsetOf(Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_valuesOf(st))(x2)(st))))(st)
+
+
+
+op_60_126 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+op_60_126 x1 x2 st = Curry.Module.EasyCheck.c_test(x1)(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.EasyCheck.c_isSubsetOf))(Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_valuesOf(st))(x2)(st))))(st)
+
+
+
+c_isSameSet :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isSameSet x1 x2 st = let {x3 = Curry.Module.List.c_nub(x1)(st)} in let {x4 = Curry.Module.List.c_nub(x2)(st)} in Curry.Module.Prelude.op_38_38(Curry.Module.EasyCheck.c_subset(x3)(x4)(st))(Curry.Module.EasyCheck.c_subset(x4)(x3)(st))(st)
+
+
+
+c_isSubsetOf :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isSubsetOf x1 x2 st = Curry.Module.EasyCheck.c_subset(Curry.Module.List.c_nub(x1)(st))(x2)(st)
+
+
+
+c_subset :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_subset x1 x2 st = Curry.Module.Prelude.c_null(Curry.Module.List.op_92_92(x1)(x2)(st))(st)
+
+
+
+op_61_61_62 :: Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+op_61_61_62 x1@Curry.Module.Prelude.C_True x2 st = x2
+op_61_61_62 x1@Curry.Module.Prelude.C_False x2 st = (Curry.Module.Prelude.:<)(Curry.Module.EasyCheck.c_notest(st))(Curry.Module.Prelude.List)
+op_61_61_62 (Curry.Module.Prelude.C_BoolOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.op_61_61_62(x)(x2)(st))(i)(xs)(st)
+op_61_61_62 x x2 st = Curry.RunTimeSystem.patternFail("EasyCheck.==>")(x)
+
+
+
+c_forAll :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)) -> t1 -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+c_forAll x1 x2 x3 st = Curry.Module.EasyCheck.c_forAllValues(x1)(Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_valuesOf(st))(x2)(st))(x3)(st)
+
+
+
+c_forAllValues :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)) -> (Curry.Module.Prelude.List t1) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+c_forAllValues x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_diagonal(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_forAllValues'46_'35lambda5(x1)(x3)))(x2)(st))(st)
+
+
+
+c_forAllValues'46_'35lambda5 :: (Curry t330,Curry t327) => (Curry.Module.Prelude.Prim (t330 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)) -> (Curry.Module.Prelude.Prim (t327 -> Curry.RunTimeSystem.State -> t330)) -> t327 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test
+c_forAllValues'46_'35lambda5 x1 x2 x3 st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_forAllValues'46_'35lambda5'46_'35lambda6(x3)))(Curry.Module.Prelude.c_apply(x1)(Curry.Module.Prelude.c_apply(x2)(x3)(st))(st))(st)
+
+
+
+c_forAllValues'46_'35lambda5'46_'35lambda6 :: (Curry t327) => t327 -> Curry.Module.EasyCheck.C_Test -> Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Test
+c_forAllValues'46_'35lambda5'46_'35lambda6 x1 x2 st = Curry.Module.EasyCheck.c_updArgs(Curry.Module.Prelude.pc((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_show(x1)(st))))(x2)(st)
+
+
+
+c_for :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))
+c_for st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_forAll(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)))
+
+
+
+c_forValues :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))
+c_forValues st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_forAllValues(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)))
+
+
+
+c_label :: 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.List Curry.Module.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))
+c_label st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_map))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_updStamp))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pc))((Curry.Module.Prelude.:<)))(st))(st)
+
+
+
+c_classify :: Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)
+c_classify x1@Curry.Module.Prelude.C_True x2 st = Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_label(st))(x2)(st)
+c_classify x1@Curry.Module.Prelude.C_False x2 st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)
+c_classify (Curry.Module.Prelude.C_BoolOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_classify(x)(x2)(st))(i)(xs)(st)
+c_classify x x2 st = Curry.RunTimeSystem.patternFail("EasyCheck.classify")(x)
+
+
+
+c_trivial :: 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.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))
+c_trivial 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.EasyCheck.c_classify))((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('v'))((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.List)))))))))
+
+
+
+c_collect :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))
+c_collect st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_label(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_show))(st)
+
+
+
+c_collectAs :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))
+c_collectAs x1 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_label(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))(st))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_show))(st))(st)
+
+
+
+c_maxTest :: Curry.Module.EasyCheck.C_Config -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_maxTest x1@(Curry.Module.EasyCheck.C_Config x2 x3 x4) st = x2
+c_maxTest (Curry.Module.EasyCheck.C_ConfigOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_maxTest(x)(st))(i)(xs)(st)
+c_maxTest x st = Curry.RunTimeSystem.patternFail("EasyCheck.maxTest")(x)
+
+
+
+c_maxFail :: Curry.Module.EasyCheck.C_Config -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_maxFail x1@(Curry.Module.EasyCheck.C_Config x2 x3 x4) st = x3
+c_maxFail (Curry.Module.EasyCheck.C_ConfigOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_maxFail(x)(st))(i)(xs)(st)
+c_maxFail x st = Curry.RunTimeSystem.patternFail("EasyCheck.maxFail")(x)
+
+
+
+c_every :: Curry.Module.EasyCheck.C_Config -> 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.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_every x1@(Curry.Module.EasyCheck.C_Config x2 x3 x4) st = x4
+c_every (Curry.Module.EasyCheck.C_ConfigOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_every(x)(st))(i)(xs)(st)
+c_every x st = Curry.RunTimeSystem.patternFail("EasyCheck.every")(x)
+
+
+
+c_setEvery :: (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> 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))) -> Curry.Module.EasyCheck.C_Config -> Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Config
+c_setEvery x1 x2@(Curry.Module.EasyCheck.C_Config x3 x4 x5) st = Curry.Module.EasyCheck.C_Config(x3)(x4)(x1)
+c_setEvery x1 (Curry.Module.EasyCheck.C_ConfigOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_setEvery(x1)(x)(st))(i)(xs)(st)
+c_setEvery x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.setEvery")(x)
+
+
+
+c_easy :: Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Config
+c_easy st = Curry.Module.EasyCheck.C_Config(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_easy'46_'35lambda7))
+
+
+
+c_easy'46_'35lambda7 :: Curry.Module.Prelude.C_Int -> (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_easy'46_'35lambda7 x1 x2 st = let {x3 = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.c_show(Curry.Module.Prelude.op_43(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))} in Curry.Module.Prelude.op_43_43(x3)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_easy'46_'35lambda7'46_'35lambda8))(x3)(st))(st)
+
+
+
+c_easy'46_'35lambda7'46_'35lambda8 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_easy'46_'35lambda7'46_'35lambda8 x1 st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st)
+
+
+
+c_verbose :: Curry.RunTimeSystem.State -> Curry.Module.EasyCheck.C_Config
+c_verbose st = Curry.Module.EasyCheck.c_setEvery(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_verbose'46_'35lambda9))(Curry.Module.EasyCheck.c_easy(st))(st)
+
+
+
+c_verbose'46_'35lambda9 :: Curry.Module.Prelude.C_Int -> (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_verbose'46_'35lambda9 x1 x2 st = Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x1)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List)))(Curry.Module.Prelude.c_unlines(x2)(st))(st))(st)
+
+
+
+c_easyCheck :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_easyCheck st = Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_check(Curry.Module.EasyCheck.c_easy(st)))
+
+
+
+c_verboseCheck :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_verboseCheck st = Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_check(Curry.Module.EasyCheck.c_verbose(st)))
+
+
+
+c_suc :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)
+c_suc x1 st = Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_forAll(x1)(Curry.Module.Prelude.c_unknown(st)))
+
+
+
+c_easyCheck1 :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_easyCheck1 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_easyCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st)
+
+
+
+c_easyCheck2 :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_easyCheck2 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_easyCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(st)
+
+
+
+c_easyCheck3 :: (Curry t0,Curry t1,Curry t2) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_easyCheck3 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_easyCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(st))(st)
+
+
+
+c_easyCheck4 :: (Curry t0,Curry t1,Curry t2,Curry t3) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_easyCheck4 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_easyCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(st))(st))(st)
+
+
+
+c_easyCheck5 :: (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t4 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_easyCheck5 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_easyCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(st))(st))(st))(st)
+
+
+
+c_verboseCheck1 :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_verboseCheck1 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_verboseCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st)
+
+
+
+c_verboseCheck2 :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_verboseCheck2 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_verboseCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(st)
+
+
+
+c_verboseCheck3 :: (Curry t0,Curry t1,Curry t2) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_verboseCheck3 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_verboseCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(st))(st)
+
+
+
+c_verboseCheck4 :: (Curry t0,Curry t1,Curry t2,Curry t3) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_verboseCheck4 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_verboseCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(st))(st))(st)
+
+
+
+c_verboseCheck5 :: (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t4 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test)))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_verboseCheck5 st = Curry.Module.Prelude.op_46(Curry.Module.EasyCheck.c_verboseCheck(st))(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.EasyCheck.c_suc(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(st))(st))(st))(st)
+
+
+
+c_check :: Curry.Module.EasyCheck.C_Config -> (Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_check x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.EasyCheck.c_evalModeIsOrBased(st))(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_check'46_'35lambda10(x1)(x2)))(st)
+
+
+
+c_check'46_'35lambda10 :: Curry.Module.EasyCheck.C_Config -> (Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_check'46_'35lambda10 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.EasyCheck.c_tests(x1)(x2)(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.List)(st)
+c_check'46_'35lambda10 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStrLn))(Curry.Module.Prelude.c_unlines((Curry.Module.Prelude.:<)(Curry.Module.Prelude.List)((Curry.Module.Prelude.:<)((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('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('k'))((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('u'))((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('b'))((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('r'))((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(' '))((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('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(' '))((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('s'))((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('n'))((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('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('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('u'))((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('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('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))))))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.List)((Curry.Module.Prelude.:<)((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('e'))((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.List)))))))((Curry.Module.Prelude.:<)(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.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((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(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\''))((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('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('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(' '))((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('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('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((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('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('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('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((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('i'))((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('k'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((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(' '))((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.:<)(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('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(' '))((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('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((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('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('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('r'))((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('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(' '))((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(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((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('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('/'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('k'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((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(' '))((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)))))))))))))))))))))))))))))))))))))))))))))))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.List)((Curry.Module.Prelude.:<)((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('n'))((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('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('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('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('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('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('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('s'))((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(' '))((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('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('a'))((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(' '))((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('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('s'))((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('s'))((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('c'))((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('v'))((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('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(Curry.Module.Prelude.List))))))))))(st))(st)
+c_check'46_'35lambda10 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_check'46_'35lambda10(x1)(x2)(x)(st))(i)(xs)(st)
+c_check'46_'35lambda10 x1 x2 x st = Curry.RunTimeSystem.patternFail("EasyCheck.check._#lambda10")(x)
+
+
+
+c_tests :: Curry.Module.EasyCheck.C_Config -> (Curry.Module.Prelude.List Curry.Module.EasyCheck.C_Test) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List (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_tests x1 x2@Curry.Module.Prelude.List x3 x4 x5 st = Curry.Module.EasyCheck.c_done((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('s'))((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)))))))(x3)(x5)(st)
+c_tests x1 x2@((Curry.Module.Prelude.:<) x6 x7) x3 x4 x5 st = Curry.Module.EasyCheck.c_tests_case_27(x1)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.EasyCheck.c_maxTest(x1)(st))(st))(st)
+c_tests x1 (Curry.Module.Prelude.ListOr i xs) x3 x4 x5 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests(x1)(x)(x3)(x4)(x5)(st))(i)(xs)(st)
+c_tests x1 x x3 x4 x5 st = Curry.RunTimeSystem.patternFail("EasyCheck.tests")(x)
+
+
+
+c_nth :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_nth x1 st = Curry.Module.EasyCheck.c_nth_case_19(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)
+
+
+
+c_done :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List (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_done x1 x2 x3 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStr))(Curry.Module.Prelude.op_43_43(x1)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))(Curry.Module.Prelude.op_43_43((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List))))))(Curry.Module.Prelude.op_43_43(Curry.Module.EasyCheck.c_done_case_16(x2)(Curry.Module.Prelude.op_62_61(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_done'46display'46199))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_done'46entry'46199(x2)))))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.c_reverse(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Sort.c_mergeSort(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_leqPair(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_60_61))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Sort.c_leqList(Curry.Module.Sort.c_leqString(st))))))))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_done'46pairLength'46199))))(Curry.Module.Prelude.op_46(Curry.Module.List.c_group(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Sort.c_mergeSort(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Sort.c_leqList(Curry.Module.Sort.c_leqString(st))))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_null))(st))))(st))(st))(st))(st))(st))(st))(st))(x3)(st))(st))(st))(st))(st))(st))(st)
+
+
+
+c_done'46display'46199 :: (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_done'46display'46199 x1@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))
+c_done'46display'46199 x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.EasyCheck.c_done'46display'46199_case_15(x1)(x2)(x3)(st)
+c_done'46display'46199 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_done'46display'46199(x)(st))(i)(xs)(st)
+c_done'46display'46199 x st = Curry.RunTimeSystem.patternFail("EasyCheck.done.display.199")(x)
+
+
+
+c_done'46pairLength'46199 :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0
+c_done'46pairLength'46199 x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.T2(Curry.Module.Prelude.c_length(x1)(st))(x2)
+c_done'46pairLength'46199 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_done'46pairLength'46199(x)(st))(i)(xs)(st)
+c_done'46pairLength'46199 x st = Curry.RunTimeSystem.patternFail("EasyCheck.done.pairLength.199")(x)
+
+
+
+c_done'46percentage'46199 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_done'46percentage'46199 x1 x2 st = let {x3 = Curry.Module.Prelude.c_show(Curry.Module.Prelude.c_div(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))))(x1)(st))(x2)(st))(st)} in Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_replicate(Curry.Module.Prelude.op_45(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.c_length(x3)(st))(st))(Curry.Module.Prelude.C_Char(' '))(st))(Curry.Module.Prelude.op_43_43(x3)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('%'))(Curry.Module.Prelude.List))(st))(st)
+
+
+
+c_done'46entry'46199 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (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_done'46entry'46199 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.op_43_43(Curry.Module.EasyCheck.c_done'46percentage'46199(x3)(x1)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))(Curry.Module.Prelude.c_concat(Curry.Module.List.c_intersperse((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(','))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))(x4)(st))(st))(st))(st)
+c_done'46entry'46199 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_done'46entry'46199(x1)(x)(st))(i)(xs)(st)
+c_done'46entry'46199 x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.done.entry.199")(x)
+
+
+
+c_leqPair :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.T2 t0 t1) -> (Curry.Module.Prelude.T2 t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_leqPair x1 x2 x3@(Curry.Module.Prelude.T2 x5 x6) x4 st = Curry.Module.EasyCheck.c_leqPair_case_14(x1)(x2)(x5)(x6)(x4)(st)
+c_leqPair x1 x2 (Curry.Module.Prelude.T2Or i xs) x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_leqPair(x1)(x2)(x)(x4)(st))(i)(xs)(st)
+c_leqPair x1 x2 x x4 st = Curry.RunTimeSystem.patternFail("EasyCheck.leqPair")(x)
+
+
+
+c_leList :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_leList x1 x2@Curry.Module.Prelude.List x3 st = Curry.Module.EasyCheck.c_leList_case_11(x3)(st)
+c_leList x1 x2@((Curry.Module.Prelude.:<) x6 x7) x3 st = Curry.Module.EasyCheck.c_leList_case_10(x1)(x6)(x7)(x3)(st)
+c_leList x1 (Curry.Module.Prelude.ListOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_leList(x1)(x)(x3)(st))(i)(xs)(st)
+c_leList x1 x x3 st = Curry.RunTimeSystem.patternFail("EasyCheck.leList")(x)
+
+
+
+c_valuesOf :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_valuesOf st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_rndLevelDiagFlat(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))))))))))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Meta.c_searchTree))(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))))(st))(st)
+
+
+
+c_rndLevelDiag :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.C_SearchTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_rndLevelDiag x1 x2 st = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_rndLevelDiag'46_'35lambda15))(Curry.Module.Prelude.List)(Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_diagonal(st))(Curry.Module.EasyCheck.c_rndLevels(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List))(st))(st))(st)
+
+
+
+c_rndLevelDiag'46_'35lambda15 :: (Curry t119) => (Curry.Module.Prelude.C_SearchTree t119) -> (Curry.Module.Prelude.List t119) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t119
+c_rndLevelDiag'46_'35lambda15 x1@(Curry.Module.Prelude.C_Value x3) x2 st = (Curry.Module.Prelude.:<)(x3)(x2)
+c_rndLevelDiag'46_'35lambda15 x1@Curry.Module.Prelude.C_Fail x2 st = x2
+c_rndLevelDiag'46_'35lambda15 x1@(Curry.Module.Prelude.C_Choice x4) x2 st = x2
+c_rndLevelDiag'46_'35lambda15 x1@Curry.Module.Prelude.C_Suspend x2 st = x2
+c_rndLevelDiag'46_'35lambda15 (Curry.Module.Prelude.C_SearchTreeOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_rndLevelDiag'46_'35lambda15(x)(x2)(st))(i)(xs)(st)
+c_rndLevelDiag'46_'35lambda15 x x2 st = Curry.RunTimeSystem.patternFail("EasyCheck.rndLevelDiag._#lambda15")(x)
+
+
+
+c_rndLevels :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0))
+c_rndLevels x1 x2 st = let {x3 = Curry.Module.RandomExternal.c_split(x1)(st)} in Curry.Module.EasyCheck.c_rndLevels_case_9(x2)(x3)(Curry.Module.Prelude.c_null(x2)(st))(st)
+
+
+
+c_rndLevels'46_'35selFP3'35r :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_rndLevels'46_'35selFP3'35r x1@((Curry.Module.Prelude.:<) x2 x3) st = x2
+c_rndLevels'46_'35selFP3'35r (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_rndLevels'46_'35selFP3'35r(x)(st))(i)(xs)(st)
+c_rndLevels'46_'35selFP3'35r x st = Curry.RunTimeSystem.patternFail("EasyCheck.rndLevels._#selFP3#r")(x)
+
+
+
+c_rndLevels'46_'35selFP4'35rs :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_rndLevels'46_'35selFP4'35rs x1@((Curry.Module.Prelude.:<) x2 x3) st = x3
+c_rndLevels'46_'35selFP4'35rs (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_rndLevels'46_'35selFP4'35rs(x)(st))(i)(xs)(st)
+c_rndLevels'46_'35selFP4'35rs x st = Curry.RunTimeSystem.patternFail("EasyCheck.rndLevels._#selFP4#rs")(x)
+
+
+
+c_rndLevels'46_'35lambda19 :: (Curry t68) => (Curry.Module.Prelude.C_SearchTree t68) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t68))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t68))
+c_rndLevels'46_'35lambda19 x1@(Curry.Module.Prelude.C_Choice x3) x2 st = (Curry.Module.Prelude.:<)(x3)(x2)
+c_rndLevels'46_'35lambda19 x1@Curry.Module.Prelude.C_Fail x2 st = x2
+c_rndLevels'46_'35lambda19 x1@(Curry.Module.Prelude.C_Value x4) x2 st = x2
+c_rndLevels'46_'35lambda19 x1@Curry.Module.Prelude.C_Suspend x2 st = x2
+c_rndLevels'46_'35lambda19 (Curry.Module.Prelude.C_SearchTreeOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_rndLevels'46_'35lambda19(x)(x2)(st))(i)(xs)(st)
+c_rndLevels'46_'35lambda19 x x2 st = Curry.RunTimeSystem.patternFail("EasyCheck.rndLevels._#lambda19")(x)
+
+
+
+c_rndLevelDiagFlat :: (Curry t0) => Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.C_SearchTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_rndLevelDiagFlat x1 x2 x3 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_concat))(Curry.Module.EasyCheck.c_transpose(Curry.Module.Prelude.c_zipWith(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_rndLevelDiag))(Curry.Module.RandomExternal.c_split(x2)(st))(Curry.Module.EasyCheck.c_flatRep(x1)((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List))(st))(st))(st))(st)
+
+
+
+c_flat :: (Curry t0) => (Curry.Module.Prelude.C_SearchTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0)
+c_flat x1@(Curry.Module.Prelude.C_Value x2) st = (Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List)
+c_flat x1@(Curry.Module.Prelude.C_Choice x3) st = x3
+c_flat x1@Curry.Module.Prelude.C_Fail st = Curry.Module.Prelude.List
+c_flat x1@Curry.Module.Prelude.C_Suspend st = Curry.Module.Prelude.List
+c_flat (Curry.Module.Prelude.C_SearchTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_flat(x)(st))(i)(xs)(st)
+c_flat x st = Curry.RunTimeSystem.patternFail("EasyCheck.flat")(x)
+
+
+
+c_flatRep :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0)
+c_flatRep x1 x2 st = Curry.Module.EasyCheck.c_flatRep_case_8(x1)(x2)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_diagonal :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_diagonal st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_concat))(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.EasyCheck.c_diagonal'46diags'46268))(Curry.Module.Prelude.List)))(st)
+
+
+
+c_diagonal'46merge'46268 :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)
+c_diagonal'46merge'46268 x1@Curry.Module.Prelude.List x2 st = x2
+c_diagonal'46merge'46268 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.EasyCheck.c_diagonal'46merge'46268_case_6(x1)(x3)(x4)(x2)(st)
+c_diagonal'46merge'46268 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_diagonal'46merge'46268(x)(x2)(st))(i)(xs)(st)
+c_diagonal'46merge'46268 x x2 st = Curry.RunTimeSystem.patternFail("EasyCheck.diagonal.merge.268")(x)
+
+
+
+c_diagonal'46diags'46268 :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)
+c_diagonal'46diags'46268 x1@Curry.Module.Prelude.List x2 st = x2
+c_diagonal'46diags'46268 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List))(Curry.Module.EasyCheck.c_diagonal'46merge'46268(x4)(x2)(st))
+c_diagonal'46diags'46268 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_diagonal'46diags'46268(x)(x2)(st))(i)(xs)(st)
+c_diagonal'46diags'46268 x x2 st = Curry.RunTimeSystem.patternFail("EasyCheck.diagonal.diags.268")(x)
+
+
+
+c_shuffle :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_shuffle x1 x2 st = Curry.Module.EasyCheck.c_shuffleWithLen(Curry.Module.RandomExternal.c_nextInt(x1)(st))(Curry.Module.Prelude.c_length(x2)(st))(x2)(st)
+
+
+
+c_shuffleWithLen :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_shuffleWithLen x1@((Curry.Module.Prelude.:<) x4 x5) x2 x3 st = let {x6 = Curry.Module.Prelude.c_splitAt(Curry.Module.Prelude.c_mod(Curry.Module.Integer.c_abs(x4)(st))(x2)(st))(x3)(st)} in Curry.Module.EasyCheck.c_shuffleWithLen_case_5(x2)(x5)(x6)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_shuffleWithLen (Curry.Module.Prelude.ListOr i xs) x2 x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen(x)(x2)(x3)(st))(i)(xs)(st)
+c_shuffleWithLen x x2 x3 st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen")(x)
+
+
+
+c_shuffleWithLen'46_'35selFP6'35ys :: (Curry t39) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t39) (Curry.Module.Prelude.List t39)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t39
+c_shuffleWithLen'46_'35selFP6'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP6'35ys_case_3(x2)(x3)(st)
+c_shuffleWithLen'46_'35selFP6'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP6'35ys(x)(st))(i)(xs)(st)
+c_shuffleWithLen'46_'35selFP6'35ys x st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen._#selFP6#ys")(x)
+
+
+
+c_shuffleWithLen'46_'35selFP7'35z :: (Curry t39) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t39) (Curry.Module.Prelude.List t39)) -> Curry.RunTimeSystem.State -> t39
+c_shuffleWithLen'46_'35selFP7'35z x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP7'35z_case_2(x3)(st)
+c_shuffleWithLen'46_'35selFP7'35z (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP7'35z(x)(st))(i)(xs)(st)
+c_shuffleWithLen'46_'35selFP7'35z x st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen._#selFP7#z")(x)
+
+
+
+c_shuffleWithLen'46_'35selFP8'35zs :: (Curry t39) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t39) (Curry.Module.Prelude.List t39)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t39
+c_shuffleWithLen'46_'35selFP8'35zs x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP8'35zs_case_1(x3)(st)
+c_shuffleWithLen'46_'35selFP8'35zs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP8'35zs(x)(st))(i)(xs)(st)
+c_shuffleWithLen'46_'35selFP8'35zs x st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen._#selFP8#zs")(x)
+
+
+
+c_transpose :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)
+c_transpose x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_transpose x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.EasyCheck.c_transpose_case_0(x3)(x2)(st)
+c_transpose (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_transpose(x)(st))(i)(xs)(st)
+c_transpose x st = Curry.RunTimeSystem.patternFail("EasyCheck.transpose")(x)
+
+
+
+c_transpose'46_'35lambda24 :: (Curry t151) => (Curry.Module.Prelude.List t151) -> (Curry.Module.Prelude.List t151) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t151
+c_transpose'46_'35lambda24 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = (Curry.Module.Prelude.:<)(x3)(x2)
+c_transpose'46_'35lambda24 x1@Curry.Module.Prelude.List x2 st = x2
+c_transpose'46_'35lambda24 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_transpose'46_'35lambda24(x)(x2)(st))(i)(xs)(st)
+c_transpose'46_'35lambda24 x x2 st = Curry.RunTimeSystem.patternFail("EasyCheck.transpose._#lambda24")(x)
+
+
+
+c_transpose'46_'35lambda28 :: (Curry t151) => (Curry.Module.Prelude.List t151) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List t151)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t151)
+c_transpose'46_'35lambda28 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = (Curry.Module.Prelude.:<)(x4)(x2)
+c_transpose'46_'35lambda28 x1@Curry.Module.Prelude.List x2 st = x2
+c_transpose'46_'35lambda28 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_transpose'46_'35lambda28(x)(x2)(st))(i)(xs)(st)
+c_transpose'46_'35lambda28 x x2 st = Curry.RunTimeSystem.patternFail("EasyCheck.transpose._#lambda28")(x)
+
+
+
+c_evalModeIsOrBased :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_evalModeIsOrBased st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_getSearchTree(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.c_unknown(st))(st))(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(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_Value(Curry.Module.Prelude.T0))))(st))(st)
+
+
+
+c_transpose_case_0 x3 x2@Curry.Module.Prelude.List st = Curry.Module.EasyCheck.c_transpose(x3)(st)
+c_transpose_case_0 x3 x2@((Curry.Module.Prelude.:<) x4 x5) st = (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x4)(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_transpose'46_'35lambda24))(Curry.Module.Prelude.List)(x3)(st)))(Curry.Module.EasyCheck.c_transpose((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_transpose'46_'35lambda28))(Curry.Module.Prelude.List)(x3)(st)))(st))
+c_transpose_case_0 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_transpose_case_0(x3)(x)(st))(i)(xs)(st)
+c_transpose_case_0 x3 x st = Curry.RunTimeSystem.patternFail("EasyCheck.transpose_case_0")(x)
+
+
+
+c_shuffleWithLen'46_'35selFP8'35zs_case_1 x3@((Curry.Module.Prelude.:<) x4 x5) st = x5
+c_shuffleWithLen'46_'35selFP8'35zs_case_1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP8'35zs_case_1(x)(st))(i)(xs)(st)
+c_shuffleWithLen'46_'35selFP8'35zs_case_1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen._#selFP8#zs_case_1")(x)
+
+
+
+c_shuffleWithLen'46_'35selFP7'35z_case_2 x3@((Curry.Module.Prelude.:<) x4 x5) st = x4
+c_shuffleWithLen'46_'35selFP7'35z_case_2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP7'35z_case_2(x)(st))(i)(xs)(st)
+c_shuffleWithLen'46_'35selFP7'35z_case_2 x st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen._#selFP7#z_case_2")(x)
+
+
+
+c_shuffleWithLen'46_'35selFP6'35ys_case_3 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = x2
+c_shuffleWithLen'46_'35selFP6'35ys_case_3 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP6'35ys_case_3(x2)(x)(st))(i)(xs)(st)
+c_shuffleWithLen'46_'35selFP6'35ys_case_3 x2 x st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen._#selFP6#ys_case_3")(x)
+
+
+
+c_shuffleWithLen_case_5 x2 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.List
+c_shuffleWithLen_case_5 x2 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.EasyCheck.c_shuffleWithLen_case_4(x2)(x5)(x6)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_shuffleWithLen_case_5 x2 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen_case_5(x2)(x5)(x6)(x)(st))(i)(xs)(st)
+c_shuffleWithLen_case_5 x2 x5 x6 x st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen_case_5")(x)
+
+
+
+c_shuffleWithLen_case_4 x2 x5 x6 x7@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP7'35z(x6)(st))(Curry.Module.EasyCheck.c_shuffleWithLen(x5)(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.op_43_43(Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP6'35ys(x6)(st))(Curry.Module.EasyCheck.c_shuffleWithLen'46_'35selFP8'35zs(x6)(st))(st))(st))
+c_shuffleWithLen_case_4 x2 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_shuffleWithLen_case_4(x2)(x5)(x6)(x)(st))(i)(xs)(st)
+c_shuffleWithLen_case_4 x2 x5 x6 x st = Curry.RunTimeSystem.patternFail("EasyCheck.shuffleWithLen_case_4")(x)
+
+
+
+c_diagonal'46merge'46268_case_6 x1 x3 x4 x2@Curry.Module.Prelude.List st = 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.pc))((Curry.Module.Prelude.:<)))(Curry.Module.Prelude.List)))(x1)(st)
+c_diagonal'46merge'46268_case_6 x1 x3 x4 x2@((Curry.Module.Prelude.:<) x5 x6) st = (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x3)(x5))(Curry.Module.EasyCheck.c_diagonal'46merge'46268(x4)(x6)(st))
+c_diagonal'46merge'46268_case_6 x1 x3 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_diagonal'46merge'46268_case_6(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_diagonal'46merge'46268_case_6 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("EasyCheck.diagonal.merge.268_case_6")(x)
+
+
+
+c_flatRep_case_8 x1 x2 x3@Curry.Module.Prelude.C_True st = x2
+c_flatRep_case_8 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.EasyCheck.c_flatRep_case_7(x1)(x2)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_flatRep_case_8 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_flatRep_case_8(x1)(x2)(x)(st))(i)(xs)(st)
+c_flatRep_case_8 x1 x2 x st = Curry.RunTimeSystem.patternFail("EasyCheck.flatRep_case_8")(x)
+
+
+
+c_flatRep_case_7 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.EasyCheck.c_flatRep(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.EasyCheck.c_flat))(st))(x2)(st))(st)
+c_flatRep_case_7 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_flatRep_case_7(x1)(x2)(x)(st))(i)(xs)(st)
+c_flatRep_case_7 x1 x2 x st = Curry.RunTimeSystem.patternFail("EasyCheck.flatRep_case_7")(x)
+
+
+
+c_rndLevels_case_9 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.List
+c_rndLevels_case_9 x2 x3 x4@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x2)(Curry.Module.EasyCheck.c_rndLevels(Curry.Module.EasyCheck.c_rndLevels'46_'35selFP3'35r(x3)(st))(Curry.Module.Prelude.c_concat(Curry.Module.Prelude.c_zipWith(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_shuffle))(Curry.Module.EasyCheck.c_rndLevels'46_'35selFP4'35rs(x3)(st))(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.EasyCheck.c_rndLevels'46_'35lambda19))(Curry.Module.Prelude.List)(x2)(st))(st))(st))(st))
+c_rndLevels_case_9 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_rndLevels_case_9(x2)(x3)(x)(st))(i)(xs)(st)
+c_rndLevels_case_9 x2 x3 x st = Curry.RunTimeSystem.patternFail("EasyCheck.rndLevels_case_9")(x)
+
+
+
+c_leList_case_10 x1 x6 x7 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_False
+c_leList_case_10 x1 x6 x7 x3@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x6)(st))(x8)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x6)(x8)(st))(Curry.Module.EasyCheck.c_leList(x1)(x7)(x9)(st))(st))(st)
+c_leList_case_10 x1 x6 x7 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_leList_case_10(x1)(x6)(x7)(x)(st))(i)(xs)(st)
+c_leList_case_10 x1 x6 x7 x st = Curry.RunTimeSystem.patternFail("EasyCheck.leList_case_10")(x)
+
+
+
+c_leList_case_11 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_False
+c_leList_case_11 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Prelude.C_True
+c_leList_case_11 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_leList_case_11(x)(st))(i)(xs)(st)
+c_leList_case_11 x st = Curry.RunTimeSystem.patternFail("EasyCheck.leList_case_11")(x)
+
+
+
+c_leqPair_case_14 x1 x2 x5 x6 x4@(Curry.Module.Prelude.T2 x7 x8) st = Curry.Module.EasyCheck.c_leqPair_case_13(x1)(x2)(x5)(x6)(x7)(x8)(Curry.Module.Prelude.op_61_61(x5)(x7)(st))(st)
+c_leqPair_case_14 x1 x2 x5 x6 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_leqPair_case_14(x1)(x2)(x5)(x6)(x)(st))(i)(xs)(st)
+c_leqPair_case_14 x1 x2 x5 x6 x st = Curry.RunTimeSystem.patternFail("EasyCheck.leqPair_case_14")(x)
+
+
+
+c_leqPair_case_13 x1 x2 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x6)(st))(x8)(st)
+c_leqPair_case_13 x1 x2 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.EasyCheck.c_leqPair_case_12(x1)(x5)(x7)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_leqPair_case_13 x1 x2 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_leqPair_case_13(x1)(x2)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_leqPair_case_13 x1 x2 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("EasyCheck.leqPair_case_13")(x)
+
+
+
+c_leqPair_case_12 x1 x5 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x5)(st))(x7)(st)
+c_leqPair_case_12 x1 x5 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_leqPair_case_12(x1)(x5)(x7)(x)(st))(i)(xs)(st)
+c_leqPair_case_12 x1 x5 x7 x st = Curry.RunTimeSystem.patternFail("EasyCheck.leqPair_case_12")(x)
+
+
+
+c_done'46display'46199_case_15 x1 x2 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.op_43_43((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.op_43_43(x2)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List)))(st))(st)
+c_done'46display'46199_case_15 x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List)))(Curry.Module.Prelude.c_unlines(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_43_43))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List))))(x1)(st))(st))(st)
+c_done'46display'46199_case_15 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_done'46display'46199_case_15(x1)(x2)(x)(st))(i)(xs)(st)
+c_done'46display'46199_case_15 x1 x2 x st = Curry.RunTimeSystem.patternFail("EasyCheck.done.display.199_case_15")(x)
+
+
+
+c_done_case_16 x2 x3@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))(Curry.Module.Prelude.List)
+c_done_case_16 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.List
+c_done_case_16 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_done_case_16(x2)(x)(st))(i)(xs)(st)
+c_done_case_16 x2 x st = Curry.RunTimeSystem.patternFail("EasyCheck.done_case_16")(x)
+
+
+
+c_nth_case_19 x1 x2@Curry.Module.Prelude.C_True st = (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('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List)))))
+c_nth_case_19 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.EasyCheck.c_nth_case_18(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st)
+c_nth_case_19 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_nth_case_19(x1)(x)(st))(i)(xs)(st)
+c_nth_case_19 x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.nth_case_19")(x)
+
+
+
+c_nth_case_18 x1 x2@Curry.Module.Prelude.C_True st = (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('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('d'))(Curry.Module.Prelude.List))))))
+c_nth_case_18 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.EasyCheck.c_nth_case_17(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(st))(st)
+c_nth_case_18 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_nth_case_18(x1)(x)(st))(i)(xs)(st)
+c_nth_case_18 x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.nth_case_18")(x)
+
+
+
+c_nth_case_17 x1 x2@Curry.Module.Prelude.C_True st = (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('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))(Curry.Module.Prelude.List)))))
+c_nth_case_17 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x1)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))(Curry.Module.Prelude.List)))(st)
+c_nth_case_17 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_nth_case_17(x1)(x)(st))(i)(xs)(st)
+c_nth_case_17 x1 x st = Curry.RunTimeSystem.patternFail("EasyCheck.nth_case_17")(x)
+
+
+
+c_tests_case_27 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.EasyCheck.c_done((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('K'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(','))((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('a'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))(Curry.Module.Prelude.List)))))))))))(x3)(x5)(st)
+c_tests_case_27 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.EasyCheck.c_tests_case_26(x1)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.EasyCheck.c_maxFail(x1)(st))(st))(st)
+c_tests_case_27 x1 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests_case_27(x1)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_tests_case_27 x1 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("EasyCheck.tests_case_27")(x)
+
+
+
+c_tests_case_26 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.EasyCheck.c_done((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('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('n'))((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(' '))((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('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((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('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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((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('r'))(Curry.Module.Prelude.List))))))))))))))))))))))))))(x3)(x5)(st)
+c_tests_case_26 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.EasyCheck.c_tests_case_25(x1)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_tests_case_26 x1 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests_case_26(x1)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_tests_case_26 x1 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("EasyCheck.tests_case_26")(x)
+
+
+
+c_tests_case_25 x1 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStr(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.EasyCheck.c_every(x1)(st))(x3)(st))(Curry.Module.EasyCheck.c_args(x6)(st))(st))(st))(Curry.Module.EasyCheck.c_tests_case_24(x1)(x3)(x4)(x5)(x6)(x7)(Curry.Module.EasyCheck.c_result(x6)(st))(st))(st)
+c_tests_case_25 x1 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests_case_25(x1)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_tests_case_25 x1 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("EasyCheck.tests_case_25")(x)
+
+
+
+c_tests_case_24 x1 x3 x4 x5 x6 x7 x8@Curry.Module.EasyCheck.C_Undef st = Curry.Module.EasyCheck.c_tests(x1)(x7)(x3)(Curry.Module.Prelude.op_43(x4)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x5)(st)
+c_tests_case_24 x1 x3 x4 x5 x6 x7 x8@Curry.Module.EasyCheck.C_Ok st = Curry.Module.EasyCheck.c_tests(x1)(x7)(Curry.Module.Prelude.op_43(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x4)((Curry.Module.Prelude.:<)(Curry.Module.EasyCheck.c_stamp(x6)(st))(x5))(st)
+c_tests_case_24 x1 x3 x4 x5 x6 x7 (Curry.Module.EasyCheck.C_Falsified x8) st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStr))(Curry.Module.Prelude.op_43_43((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('l'))((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('f'))((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('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.EasyCheck.c_nth(Curry.Module.Prelude.op_43(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(Curry.Module.Prelude.op_43_43((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List))))))(Curry.Module.Prelude.op_43_43(Curry.Module.EasyCheck.c_tests_case_23(x6)(Curry.Module.Prelude.c_null(Curry.Module.EasyCheck.c_args(x6)(st))(st))(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_unlines(Curry.Module.EasyCheck.c_args(x6)(st))(st))(Curry.Module.EasyCheck.c_tests_case_22(x8)(Curry.Module.Prelude.c_null(x8)(st))(st))(st))(st))(st))(st))(st))(st))(st)
+c_tests_case_24 x1 x3 x4 x5 x6 x7 x8@(Curry.Module.EasyCheck.C_Ambigious x9 x10) st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStr))(Curry.Module.Prelude.op_43_43((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('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((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('u'))((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('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('e'))((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('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((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('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x9)(st))(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('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))(Curry.Module.Prelude.op_43_43(Curry.Module.EasyCheck.c_nth(Curry.Module.Prelude.op_43(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(Curry.Module.Prelude.op_43_43((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List))))))(Curry.Module.Prelude.op_43_43(Curry.Module.EasyCheck.c_tests_case_21(x6)(Curry.Module.Prelude.c_null(Curry.Module.EasyCheck.c_args(x6)(st))(st))(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_unlines(Curry.Module.EasyCheck.c_args(x6)(st))(st))(Curry.Module.EasyCheck.c_tests_case_20(x10)(Curry.Module.Prelude.c_null(x10)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+c_tests_case_24 x1 x3 x4 x5 x6 x7 (Curry.Module.EasyCheck.C_ResultOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests_case_24(x1)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_tests_case_24 x1 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("EasyCheck.tests_case_24")(x)
+
+
+
+c_tests_case_20 x10 x11@Curry.Module.Prelude.C_True st = (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(' '))((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.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))
+c_tests_case_20 x10 x11@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43_43((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.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))(Curry.Module.Prelude.c_unlines(x10)(st))(st)
+c_tests_case_20 x10 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests_case_20(x10)(x)(st))(i)(xs)(st)
+c_tests_case_20 x10 x st = Curry.RunTimeSystem.patternFail("EasyCheck.tests_case_20")(x)
+
+
+
+c_tests_case_21 x6 x7@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List)
+c_tests_case_21 x6 x7@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((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('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('n'))((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(':'))(Curry.Module.Prelude.List))))))))))))
+c_tests_case_21 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests_case_21(x6)(x)(st))(i)(xs)(st)
+c_tests_case_21 x6 x st = Curry.RunTimeSystem.patternFail("EasyCheck.tests_case_21")(x)
+
+
+
+c_tests_case_22 x8 x9@Curry.Module.Prelude.C_True st = (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(' '))((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.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))
+c_tests_case_22 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43_43((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.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))))))))(Curry.Module.Prelude.c_unlines(x8)(st))(st)
+c_tests_case_22 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests_case_22(x8)(x)(st))(i)(xs)(st)
+c_tests_case_22 x8 x st = Curry.RunTimeSystem.patternFail("EasyCheck.tests_case_22")(x)
+
+
+
+c_tests_case_23 x6 x7@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List)
+c_tests_case_23 x6 x7@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((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('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('n'))((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(':'))(Curry.Module.Prelude.List))))))))))))
+c_tests_case_23 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_tests_case_23(x6)(x)(st))(i)(xs)(st)
+c_tests_case_23 x6 x st = Curry.RunTimeSystem.patternFail("EasyCheck.tests_case_23")(x)
+
+
+
+c_is'46_'35lambda3_case_28 x1 x3 x4@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_apply(x1)(x3)(st)
+c_is'46_'35lambda3_case_28 x1 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Prelude.C_False
+c_is'46_'35lambda3_case_28 x1 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_is'46_'35lambda3_case_28(x1)(x3)(x)(st))(i)(xs)(st)
+c_is'46_'35lambda3_case_28 x1 x3 x st = Curry.RunTimeSystem.patternFail("EasyCheck.is._#lambda3_case_28")(x)
+
+
+
+c_test_case_32 x3 x5@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.EasyCheck.c_test_case_31(x3)(x5)(x7)(x6)(st)
+c_test_case_32 x3 x5@Curry.Module.Prelude.List st = Curry.Module.EasyCheck.C_Ambigious(Curry.Module.Prelude.List)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_show))(x3)(st))
+c_test_case_32 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_test_case_32(x3)(x)(st))(i)(xs)(st)
+c_test_case_32 x3 x st = Curry.RunTimeSystem.patternFail("EasyCheck.test_case_32")(x)
+
+
+
+c_test_case_31 x3 x5 x7 x6@Curry.Module.Prelude.C_True st = Curry.Module.EasyCheck.c_test_case_30(x3)(x5)(x7)(st)
+c_test_case_31 x3 x5 x7 x6@Curry.Module.Prelude.C_False st = Curry.Module.EasyCheck.c_test_case_29(x3)(x5)(x7)(st)
+c_test_case_31 x3 x5 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_test_case_31(x3)(x5)(x7)(x)(st))(i)(xs)(st)
+c_test_case_31 x3 x5 x7 x st = Curry.RunTimeSystem.patternFail("EasyCheck.test_case_31")(x)
+
+
+
+c_test_case_29 x3 x5 x7@Curry.Module.Prelude.List st = Curry.Module.EasyCheck.C_Falsified(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_show))(x3)(st))
+c_test_case_29 x3 x5 x7@((Curry.Module.Prelude.:<) x10 x11) st = Curry.Module.EasyCheck.C_Ambigious(x5)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_show))(x3)(st))
+c_test_case_29 x3 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_test_case_29(x3)(x5)(x)(st))(i)(xs)(st)
+c_test_case_29 x3 x5 x st = Curry.RunTimeSystem.patternFail("EasyCheck.test_case_29")(x)
+
+
+
+c_test_case_30 x3 x5 x7@Curry.Module.Prelude.List st = Curry.Module.EasyCheck.C_Ok
+c_test_case_30 x3 x5 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.EasyCheck.C_Ambigious(x5)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_show))(x3)(st))
+c_test_case_30 x3 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EasyCheck.c_test_case_30(x3)(x5)(x)(st))(i)(xs)(st)
+c_test_case_30 x3 x5 x st = Curry.RunTimeSystem.patternFail("EasyCheck.test_case_30")(x)
+
+
diff --git a/dist/build/Curry/Module/FileGoodies.hs b/dist/build/Curry/Module/FileGoodies.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/FileGoodies.hs
@@ -0,0 +1,237 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.FileGoodies (module Curry.Module.FileGoodies) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Directory
+import Curry.Module.List
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_separatorChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_separatorChar st = Curry.Module.Prelude.C_Char('/')
+
+
+
+c_pathSeparatorChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_pathSeparatorChar st = Curry.Module.Prelude.C_Char(':')
+
+
+
+c_suffixSeparatorChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_suffixSeparatorChar st = Curry.Module.Prelude.C_Char('.')
+
+
+
+c_isAbsolute :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isAbsolute x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Char('/'))(st)
+c_isAbsolute (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_isAbsolute(x)(st))(i)(xs)(st)
+c_isAbsolute x st = Curry.RunTimeSystem.patternFail("FileGoodies.isAbsolute")(x)
+
+
+
+c_dirName :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_dirName x1 st = Curry.Module.Prelude.c_fst(Curry.Module.FileGoodies.c_splitDirectoryBaseName(x1)(st))(st)
+
+
+
+c_baseName :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_baseName x1 st = Curry.Module.Prelude.c_snd(Curry.Module.FileGoodies.c_splitDirectoryBaseName(x1)(st))(st)
+
+
+
+c_splitDirectoryBaseName :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_splitDirectoryBaseName x1 st = let {x2 = 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))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x1)(st))(st)} in let {x3 = Curry.Module.FileGoodies.c_splitDirectoryBaseName'46_'35selFP3'35rbase(x2)(st)} in let {x4 = Curry.Module.FileGoodies.c_splitDirectoryBaseName'46_'35selFP4'35rdir(x2)(st)} in Curry.Module.FileGoodies.c_splitDirectoryBaseName_case_6(x3)(x4)(Curry.Module.Prelude.c_null(x4)(st))(st)
+
+
+
+c_splitDirectoryBaseName'46_'35selFP3'35rbase :: (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_splitDirectoryBaseName'46_'35selFP3'35rbase x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_splitDirectoryBaseName'46_'35selFP3'35rbase (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitDirectoryBaseName'46_'35selFP3'35rbase(x)(st))(i)(xs)(st)
+c_splitDirectoryBaseName'46_'35selFP3'35rbase x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitDirectoryBaseName._#selFP3#rbase")(x)
+
+
+
+c_splitDirectoryBaseName'46_'35selFP4'35rdir :: (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_splitDirectoryBaseName'46_'35selFP4'35rdir x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_splitDirectoryBaseName'46_'35selFP4'35rdir (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitDirectoryBaseName'46_'35selFP4'35rdir(x)(st))(i)(xs)(st)
+c_splitDirectoryBaseName'46_'35selFP4'35rdir x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitDirectoryBaseName._#selFP4#rdir")(x)
+
+
+
+c_stripSuffix :: 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_stripSuffix st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))(Curry.Module.Prelude.pf(Curry.Module.FileGoodies.c_splitBaseName))(st)
+
+
+
+c_fileSuffix :: 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_fileSuffix st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(Curry.Module.Prelude.pf(Curry.Module.FileGoodies.c_splitBaseName))(st)
+
+
+
+c_splitBaseName :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_splitBaseName x1 st = let {x2 = 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))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x1)(st))(st)} in let {x3 = Curry.Module.FileGoodies.c_splitBaseName'46_'35selFP6'35rsuffix(x2)(st)} in let {x4 = Curry.Module.FileGoodies.c_splitBaseName'46_'35selFP7'35rbase(x2)(st)} in Curry.Module.FileGoodies.c_splitBaseName_case_5(x1)(x3)(x4)(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.c_null(x4)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(Curry.Module.Prelude.C_Char('/'))(st))(x3)(st))(st))(st)
+
+
+
+c_splitBaseName'46_'35selFP6'35rsuffix :: (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_splitBaseName'46_'35selFP6'35rsuffix x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_splitBaseName'46_'35selFP6'35rsuffix (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitBaseName'46_'35selFP6'35rsuffix(x)(st))(i)(xs)(st)
+c_splitBaseName'46_'35selFP6'35rsuffix x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitBaseName._#selFP6#rsuffix")(x)
+
+
+
+c_splitBaseName'46_'35selFP7'35rbase :: (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_splitBaseName'46_'35selFP7'35rbase x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_splitBaseName'46_'35selFP7'35rbase (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitBaseName'46_'35selFP7'35rbase(x)(st))(i)(xs)(st)
+c_splitBaseName'46_'35selFP7'35rbase x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitBaseName._#selFP7#rbase")(x)
+
+
+
+c_splitPath :: (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_splitPath x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_splitPath x1@((Curry.Module.Prelude.:<) x2 x3) st = let {x4 = 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))((Curry.Module.Prelude.:<)(x2)(x3))(st)} in let {x5 = Curry.Module.FileGoodies.c_splitPath'46_'35selFP9'35ys(x4)(st)} in let {x6 = Curry.Module.FileGoodies.c_splitPath'46_'35selFP10'35zs(x4)(st)} in Curry.Module.FileGoodies.c_splitPath_case_4(x5)(x6)(Curry.Module.Prelude.c_null(x6)(st))(st)
+c_splitPath (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitPath(x)(st))(i)(xs)(st)
+c_splitPath x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitPath")(x)
+
+
+
+c_splitPath'46_'35selFP9'35ys :: (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_splitPath'46_'35selFP9'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_splitPath'46_'35selFP9'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitPath'46_'35selFP9'35ys(x)(st))(i)(xs)(st)
+c_splitPath'46_'35selFP9'35ys x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitPath._#selFP9#ys")(x)
+
+
+
+c_splitPath'46_'35selFP10'35zs :: (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_splitPath'46_'35selFP10'35zs x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_splitPath'46_'35selFP10'35zs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitPath'46_'35selFP10'35zs(x)(st))(i)(xs)(st)
+c_splitPath'46_'35selFP10'35zs x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitPath._#selFP10#zs")(x)
+
+
+
+c_findFileInPath :: 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.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> 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.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)))))
+c_findFileInPath 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.FileGoodies.c_lookupFileInPath)
+
+
+
+c_lookupFileInPath :: (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.List (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.Prelude.C_Char))
+c_lookupFileInPath x1 x2 x3 st = Curry.Module.FileGoodies.c_lookupFileInPath_case_3(x1)(x2)(x3)(Curry.Module.FileGoodies.c_isAbsolute(x1)(st))(st)
+
+
+
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (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.Prelude.C_Char))
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_Nothing)(st)
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = let {x5 = Curry.Module.Prelude.op_43_43(x1)(x3)(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_doesFileExist(x5)(st))(Curry.Module.Prelude.pf(Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFileWithSuffix'4636'46_'35lambda3(x1)(x5)(x4)))(st)
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFileWithSuffix'4636(x1)(x)(st))(i)(xs)(st)
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636 x1 x st = Curry.RunTimeSystem.patternFail("FileGoodies.lookupFileInPath.lookupFirstFileWithSuffix.36")(x)
+
+
+
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636'46_'35lambda3 :: (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.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636'46_'35lambda3 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_Just(x2))(st)
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636'46_'35lambda3 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFileWithSuffix'4636(x1)(x3)(st)
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636'46_'35lambda3 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFileWithSuffix'4636'46_'35lambda3(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_lookupFileInPath'46lookupFirstFileWithSuffix'4636'46_'35lambda3 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FileGoodies.lookupFileInPath.lookupFirstFileWithSuffix.36._#lambda3")(x)
+
+
+
+c_lookupFileInPath'46lookupFirstFile'4636 :: (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.List (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.Prelude.C_Char))
+c_lookupFileInPath'46lookupFirstFile'4636 x1 x2 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_Nothing)(st)
+c_lookupFileInPath'46lookupFirstFile'4636 x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFileWithSuffix'4636(Curry.Module.Prelude.op_43_43(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))(x1))(st))(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFile'4636'46_'35lambda2(x5)(x1)(x2)))(st)
+c_lookupFileInPath'46lookupFirstFile'4636 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFile'4636(x1)(x2)(x)(st))(i)(xs)(st)
+c_lookupFileInPath'46lookupFirstFile'4636 x1 x2 x st = Curry.RunTimeSystem.patternFail("FileGoodies.lookupFileInPath.lookupFirstFile.36")(x)
+
+
+
+c_lookupFileInPath'46lookupFirstFile'4636'46_'35lambda2 :: (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.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (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.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_lookupFileInPath'46lookupFirstFile'4636'46_'35lambda2 x1 x2 x3 x4 st = Curry.Module.Prelude.c_maybe(Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFile'4636(x2)(x3)(x1)(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))(x4)(st)
+
+
+
+c_getFileInPath :: (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.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getFileInPath x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.FileGoodies.c_lookupFileInPath(x1)(x2)(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.FileGoodies.c_getFileInPath'46_'35lambda4(x1)(x3)))(st)
+
+
+
+c_getFileInPath'46_'35lambda4 :: (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_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getFileInPath'46_'35lambda4 x1 x2 x3 st = Curry.Module.Prelude.c_maybe(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_error))(Curry.Module.Prelude.op_43_43((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(' '))(Curry.Module.Prelude.List))))))(Curry.Module.Prelude.op_43_43(x1)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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('f'))((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('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('i'))((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('p'))((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('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))))(Curry.Module.Prelude.c_concat(Curry.Module.List.c_intersperse((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))(Curry.Module.Prelude.List))(x2)(st))(st))(st))(st))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(x3)(st)
+
+
+
+c_replaceFileName :: (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.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_replaceFileName x1 x2 st = let {x3 = Curry.Module.FileGoodies.c_splitDirectoryBaseName(x2)(st)} in let {x4 = Curry.Module.FileGoodies.c_replaceFileName'46_'35selFP12'35dir(x3)(st)} in let {x5 = Curry.Module.FileGoodies.c_replaceFileName'46_'35selFP13'35fn(x3)(st)} in Curry.Module.FileGoodies.c_replaceFileName_case_2(x1)(x5)(x4)(st)
+
+
+
+c_replaceFileName'46_'35selFP12'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_replaceFileName'46_'35selFP12'35dir x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_replaceFileName'46_'35selFP12'35dir (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_replaceFileName'46_'35selFP12'35dir(x)(st))(i)(xs)(st)
+c_replaceFileName'46_'35selFP12'35dir x st = Curry.RunTimeSystem.patternFail("FileGoodies.replaceFileName._#selFP12#dir")(x)
+
+
+
+c_replaceFileName'46_'35selFP13'35fn :: (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_replaceFileName'46_'35selFP13'35fn x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_replaceFileName'46_'35selFP13'35fn (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_replaceFileName'46_'35selFP13'35fn(x)(st))(i)(xs)(st)
+c_replaceFileName'46_'35selFP13'35fn x st = Curry.RunTimeSystem.patternFail("FileGoodies.replaceFileName._#selFP13#fn")(x)
+
+
+
+c_replaceFileName_case_2 x1 x5 x4@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.FileGoodies.c_replaceFileName_case_1(x1)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.op_61_61(x6)(Curry.Module.Prelude.C_Char('.'))(st))(st)
+c_replaceFileName_case_2 x1 x5 x4@Curry.Module.Prelude.List st = Curry.Module.Prelude.op_43_43(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))(Curry.Module.Prelude.c_apply(x1)(x5)(st)))(st)
+c_replaceFileName_case_2 x1 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_replaceFileName_case_2(x1)(x5)(x)(st))(i)(xs)(st)
+c_replaceFileName_case_2 x1 x5 x st = Curry.RunTimeSystem.patternFail("FileGoodies.replaceFileName_case_2")(x)
+
+
+
+c_replaceFileName_case_1 x1 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.FileGoodies.c_replaceFileName_case_0(x1)(x4)(x5)(x7)(st)
+c_replaceFileName_case_1 x1 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43_43(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))(Curry.Module.Prelude.c_apply(x1)(x5)(st)))(st)
+c_replaceFileName_case_1 x1 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_replaceFileName_case_1(x1)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_replaceFileName_case_1 x1 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("FileGoodies.replaceFileName_case_1")(x)
+
+
+
+c_replaceFileName_case_0 x1 x4 x5 x7@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_apply(x1)(x5)(st)
+c_replaceFileName_case_0 x1 x4 x5 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Prelude.op_43_43(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))(Curry.Module.Prelude.c_apply(x1)(x5)(st)))(st)
+c_replaceFileName_case_0 x1 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_replaceFileName_case_0(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_replaceFileName_case_0 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("FileGoodies.replaceFileName_case_0")(x)
+
+
+
+c_lookupFileInPath_case_3 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFileWithSuffix'4636(x1)(x2)(st)
+c_lookupFileInPath_case_3 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.FileGoodies.c_lookupFileInPath'46lookupFirstFile'4636(x1)(x2)(x3)(st)
+c_lookupFileInPath_case_3 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_lookupFileInPath_case_3(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_lookupFileInPath_case_3 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FileGoodies.lookupFileInPath_case_3")(x)
+
+
+
+c_splitPath_case_4 x5 x6 x7@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.List)
+c_splitPath_case_4 x5 x6 x7@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x5)(Curry.Module.FileGoodies.c_splitPath(Curry.Module.Prelude.c_tail(x6)(st))(st))
+c_splitPath_case_4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitPath_case_4(x5)(x6)(x)(st))(i)(xs)(st)
+c_splitPath_case_4 x5 x6 x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitPath_case_4")(x)
+
+
+
+c_splitBaseName_case_5 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.List)
+c_splitBaseName_case_5 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.T2(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(Curry.Module.Prelude.c_tail(x4)(st))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x3)(st))
+c_splitBaseName_case_5 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitBaseName_case_5(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_splitBaseName_case_5 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitBaseName_case_5")(x)
+
+
+
+c_splitDirectoryBaseName_case_6 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x3)(st))
+c_splitDirectoryBaseName_case_6 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.T2(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(Curry.Module.Prelude.c_tail(x4)(st))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x3)(st))
+c_splitDirectoryBaseName_case_6 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FileGoodies.c_splitDirectoryBaseName_case_6(x3)(x4)(x)(st))(i)(xs)(st)
+c_splitDirectoryBaseName_case_6 x3 x4 x st = Curry.RunTimeSystem.patternFail("FileGoodies.splitDirectoryBaseName_case_6")(x)
+
+
diff --git a/dist/build/Curry/Module/FiniteMap.hs b/dist/build/Curry/Module/FiniteMap.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/FiniteMap.hs
@@ -0,0 +1,1214 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.FiniteMap (module Curry.Module.FiniteMap) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Maybe
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_LeKey t0 = t0 -> t0 -> Curry.Module.Prelude.C_Bool
+
+type C_FiniteSet t0 = Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0
+
+data C_FM t0 t1 = C_FM (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) (Curry.Module.FiniteMap.C_FiniteMap t0 t1)
+  | C_FMFail Curry.RunTimeSystem.C_Exceptions
+  | C_FMOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.FiniteMap.C_FM t0 t1))
+
+data C_FiniteMap t0 t1 = C_EmptyFM
+  | C_Branch t0 t1 Curry.Module.Prelude.C_Int (Curry.Module.FiniteMap.C_FiniteMap t0 t1) (Curry.Module.FiniteMap.C_FiniteMap t0 t1)
+  | C_FiniteMapFail Curry.RunTimeSystem.C_Exceptions
+  | C_FiniteMapOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.FiniteMap.C_FiniteMap t0 t1))
+
+instance (BaseCurry t0,BaseCurry t1) => BaseCurry (Curry.Module.FiniteMap.C_FM t0 t1) where
+  nf f (Curry.Module.FiniteMap.C_FM x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.FiniteMap.C_FM(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.FiniteMap.C_FM x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.FiniteMap.C_FM(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.FiniteMap.C_FMOr(Curry.RunTimeSystem.mkRef(r)(2)(i))([Curry.Module.FiniteMap.C_FM(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(2)
+
+  failed  = Curry.Module.FiniteMap.C_FMFail
+
+  branching  = Curry.Module.FiniteMap.C_FMOr
+
+  consKind (Curry.Module.FiniteMap.C_FMOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.FiniteMap.C_FMFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.FiniteMap.C_FMFail x) = x
+
+  orRef (Curry.Module.FiniteMap.C_FMOr x _) = x
+
+  branches (Curry.Module.FiniteMap.C_FMOr _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1) => BaseCurry (Curry.Module.FiniteMap.C_FiniteMap t0 t1) where
+  nf f (Curry.Module.FiniteMap.C_Branch 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.FiniteMap.C_Branch(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.FiniteMap.C_Branch 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.FiniteMap.C_Branch(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.FiniteMap.C_FiniteMapOr(Curry.RunTimeSystem.mkRef(r)(5)(i))([Curry.Module.FiniteMap.C_EmptyFM,Curry.Module.FiniteMap.C_Branch(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.FiniteMap.C_FiniteMapFail
+
+  branching  = Curry.Module.FiniteMap.C_FiniteMapOr
+
+  consKind (Curry.Module.FiniteMap.C_FiniteMapOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.FiniteMap.C_FiniteMapFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.FiniteMap.C_FiniteMapFail x) = x
+
+  orRef (Curry.Module.FiniteMap.C_FiniteMapOr x _) = x
+
+  branches (Curry.Module.FiniteMap.C_FiniteMapOr _ x) = x
+
+
+
+
+
+instance (Curry t0,Curry t1) => Curry (Curry.Module.FiniteMap.C_FM t0 t1) where
+  strEq (Curry.Module.FiniteMap.C_FM x1 x2) (Curry.Module.FiniteMap.C_FM y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.FiniteMap.C_FM x1 x2) (Curry.Module.FiniteMap.C_FM y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.FiniteMap.C_FM x1 x2) st = Curry.Module.FiniteMap.C_FM(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+
+  foldCurry f c (Curry.Module.FiniteMap.C_FM x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+
+  typeName _ = "FM"
+
+  showQ d (Curry.Module.FiniteMap.C_FM x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("FiniteMap.FM "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ _ (Curry.Module.FiniteMap.C_FMOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1) => Curry (Curry.Module.FiniteMap.C_FiniteMap t0 t1) where
+  strEq Curry.Module.FiniteMap.C_EmptyFM Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.FiniteMap.C_Branch x1 x2 x3 x4 x5) (Curry.Module.FiniteMap.C_Branch 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.FiniteMap.C_EmptyFM Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.FiniteMap.C_Branch x1 x2 x3 x4 x5) (Curry.Module.FiniteMap.C_Branch 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.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_EmptyFM
+  propagate f (Curry.Module.FiniteMap.C_Branch x1 x2 x3 x4 x5) st = Curry.Module.FiniteMap.C_Branch(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.FiniteMap.C_EmptyFM st = c
+  foldCurry f c (Curry.Module.FiniteMap.C_Branch x1 x2 x3 x4 x5) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(c)(st))(st))(st))(st))(st)
+
+  typeName _ = "FiniteMap"
+
+  showQ _ Curry.Module.FiniteMap.C_EmptyFM = Prelude.showString("FiniteMap.EmptyFM")
+  showQ d (Curry.Module.FiniteMap.C_Branch x1 x2 x3 x4 x5) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("FiniteMap.Branch "))((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.FiniteMap.C_FiniteMapOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1) => Show (Curry.Module.FiniteMap.C_FM t0 t1) where
+  showsPrec d (Curry.Module.FiniteMap.C_FM x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("FM "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec _ (Curry.Module.FiniteMap.C_FMOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1) => Show (Curry.Module.FiniteMap.C_FiniteMap t0 t1) where
+  showsPrec _ Curry.Module.FiniteMap.C_EmptyFM = Prelude.showString("EmptyFM")
+  showsPrec d (Curry.Module.FiniteMap.C_Branch x1 x2 x3 x4 x5) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Branch "))((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.FiniteMap.C_FiniteMapOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Read t0,Read t1) => Read (Curry.Module.FiniteMap.C_FM t0 t1) where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.FiniteMap.C_FM(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("FiniteMap")("FM")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r)
+
+
+
+
+
+instance (Read t0,Read t1) => Read (Curry.Module.FiniteMap.C_FiniteMap t0 t1) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.FiniteMap.C_EmptyFM)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("FiniteMap")("EmptyFM")(r)])(r))(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.FiniteMap.C_Branch(x1)(x2)(x3)(x4)(x5))(r5) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("FiniteMap")("Branch")(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_emptyFM :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_emptyFM x1 st = Curry.Module.FiniteMap.C_FM(x1)(Curry.Module.FiniteMap.C_EmptyFM)
+
+
+
+c_unitFM :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t0 -> t1 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_unitFM x1 x2 x3 st = Curry.Module.FiniteMap.C_FM(x1)(Curry.Module.FiniteMap.c_unitFM'39(x2)(x3)(st))
+
+
+
+c_unitFM'39 :: (Curry t0,Curry t1) => t0 -> t1 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_unitFM'39 x1 x2 st = Curry.Module.FiniteMap.C_Branch(x1)(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.FiniteMap.C_EmptyFM)(Curry.Module.FiniteMap.C_EmptyFM)
+
+
+
+c_listToFM :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1)
+c_listToFM x1 st = Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_addListToFM(Curry.Module.FiniteMap.c_emptyFM(x1)(st)))
+
+
+
+c_addToFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> t0 -> t1 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_addToFM x1@(Curry.Module.FiniteMap.C_FM x4 x5) x2 x3 st = Curry.Module.FiniteMap.C_FM(x4)(Curry.Module.FiniteMap.c_addToFM'39(x4)(x5)(x2)(x3)(st))
+c_addToFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_addToFM(x)(x2)(x3)(st))(i)(xs)(st)
+c_addToFM x x2 x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.addToFM")(x)
+
+
+
+c_addToFM'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> t0 -> t1 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_addToFM'39 x1 x2 x3 x4 st = Curry.Module.FiniteMap.c_addToFM_C'39(x1)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.FiniteMap.c_addToFM'39'46_'35lambda2))(x2)(x3)(x4)(st)
+
+
+
+c_addToFM'39'46_'35lambda2 :: (Curry t270) => t270 -> t270 -> Curry.RunTimeSystem.State -> t270
+c_addToFM'39'46_'35lambda2 x1 x2 st = x2
+
+
+
+c_addToFM_C'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> t0 -> t1 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_addToFM_C'39 x1 x2 x3@Curry.Module.FiniteMap.C_EmptyFM x4 x5 st = Curry.Module.FiniteMap.c_unitFM'39(x4)(x5)(st)
+c_addToFM_C'39 x1 x2 x3@(Curry.Module.FiniteMap.C_Branch x6 x7 x8 x9 x10) x4 x5 st = Curry.Module.FiniteMap.c_addToFM_C'39_case_57(x1)(x2)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(x6)(st))(st)
+c_addToFM_C'39 x1 x2 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x4 x5 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_addToFM_C'39(x1)(x2)(x)(x4)(x5)(st))(i)(xs)(st)
+c_addToFM_C'39 x1 x2 x x4 x5 st = Curry.RunTimeSystem.patternFail("FiniteMap.addToFM_C'")(x)
+
+
+
+c_addListToFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_addListToFM x1@(Curry.Module.FiniteMap.C_FM x3 x4) x2 st = Curry.Module.FiniteMap.C_FM(x3)(Curry.Module.FiniteMap.c_addListToFM'39(x3)(x4)(x2)(st))
+c_addListToFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_addListToFM(x)(x2)(st))(i)(xs)(st)
+c_addListToFM x x2 st = Curry.RunTimeSystem.patternFail("FiniteMap.addListToFM")(x)
+
+
+
+c_addListToFM'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_addListToFM'39 x1 x2 x3 st = Curry.Module.FiniteMap.c_addListToFM_C'39(x1)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.FiniteMap.c_addListToFM'39'46_'35lambda3))(x2)(x3)(st)
+
+
+
+c_addListToFM'39'46_'35lambda3 :: (Curry t246) => t246 -> t246 -> Curry.RunTimeSystem.State -> t246
+c_addListToFM'39'46_'35lambda3 x1 x2 st = x2
+
+
+
+c_addListToFM_C'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_addListToFM_C'39 x1 x2 x3 x4 st = Curry.Module.Prelude.c_foldl(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.FiniteMap.c_addListToFM_C'39'46add'4630(x2)(x1)))(x3)(x4)(st)
+
+
+
+c_addListToFM_C'39'46add'4630 :: (Curry t235,Curry t234) => (Curry.Module.Prelude.Prim (t235 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t235 -> Curry.RunTimeSystem.State -> t235))) -> (Curry.Module.Prelude.Prim (t234 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t234 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t234 t235) -> (Curry.Module.Prelude.T2 t234 t235) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t234 t235
+c_addListToFM_C'39'46add'4630 x1 x2 x3 x4@(Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.FiniteMap.c_addToFM_C'39(x2)(x1)(x3)(x5)(x6)(st)
+c_addListToFM_C'39'46add'4630 x1 x2 x3 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_addListToFM_C'39'46add'4630(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_addListToFM_C'39'46add'4630 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.addListToFM_C'.add.30")(x)
+
+
+
+c_addToFM_C :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))) -> (Curry.Module.FiniteMap.C_FM t1 t0) -> t1 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t1 t0
+c_addToFM_C x1 x2@(Curry.Module.FiniteMap.C_FM x5 x6) x3 x4 st = Curry.Module.FiniteMap.C_FM(x5)(Curry.Module.FiniteMap.c_addToFM_C'39(x5)(x1)(x6)(x3)(x4)(st))
+c_addToFM_C x1 (Curry.Module.FiniteMap.C_FMOr i xs) x3 x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_addToFM_C(x1)(x)(x3)(x4)(st))(i)(xs)(st)
+c_addToFM_C x1 x x3 x4 st = Curry.RunTimeSystem.patternFail("FiniteMap.addToFM_C")(x)
+
+
+
+c_addListToFM_C :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))) -> (Curry.Module.FiniteMap.C_FM t1 t0) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 t0)) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t1 t0
+c_addListToFM_C x1 x2@(Curry.Module.FiniteMap.C_FM x4 x5) x3 st = Curry.Module.FiniteMap.C_FM(x4)(Curry.Module.FiniteMap.c_addListToFM_C'39(x4)(x1)(x5)(x3)(st))
+c_addListToFM_C x1 (Curry.Module.FiniteMap.C_FMOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_addListToFM_C(x1)(x)(x3)(st))(i)(xs)(st)
+c_addListToFM_C x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.addListToFM_C")(x)
+
+
+
+c_delFromFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_delFromFM x1@(Curry.Module.FiniteMap.C_FM x3 x4) x2 st = Curry.Module.FiniteMap.C_FM(x3)(Curry.Module.FiniteMap.c_delFromFM'39(x3)(x4)(x2)(st))
+c_delFromFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_delFromFM(x)(x2)(st))(i)(xs)(st)
+c_delFromFM x x2 st = Curry.RunTimeSystem.patternFail("FiniteMap.delFromFM")(x)
+
+
+
+c_delFromFM'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_delFromFM'39 x1 x2@Curry.Module.FiniteMap.C_EmptyFM x3 st = Curry.Module.FiniteMap.C_EmptyFM
+c_delFromFM'39 x1 x2@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) x3 st = Curry.Module.FiniteMap.c_delFromFM'39_case_55(x1)(x3)(x4)(x5)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x4)(st))(st)
+c_delFromFM'39 x1 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_delFromFM'39(x1)(x)(x3)(st))(i)(xs)(st)
+c_delFromFM'39 x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.delFromFM'")(x)
+
+
+
+c_delListFromFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_delListFromFM x1@(Curry.Module.FiniteMap.C_FM x3 x4) x2 st = Curry.Module.FiniteMap.C_FM(x3)(Curry.Module.Prelude.c_foldl(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.FiniteMap.c_delFromFM'39(x3)))(x4)(x2)(st))
+c_delListFromFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_delListFromFM(x)(x2)(st))(i)(xs)(st)
+c_delListFromFM x x2 st = Curry.RunTimeSystem.patternFail("FiniteMap.delListFromFM")(x)
+
+
+
+c_updFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> t0 -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_updFM x1@(Curry.Module.FiniteMap.C_FM x4 x5) x2 x3 st = Curry.Module.FiniteMap.C_FM(x4)(Curry.Module.FiniteMap.c_updFM'46upd'4649(x3)(x2)(x4)(x5)(st))
+c_updFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_updFM(x)(x2)(x3)(st))(i)(xs)(st)
+c_updFM x x2 x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.updFM")(x)
+
+
+
+c_updFM'46upd'4649 :: (Curry t523,Curry t535) => (Curry.Module.Prelude.Prim (t523 -> Curry.RunTimeSystem.State -> t523)) -> t535 -> (Curry.Module.Prelude.Prim (t535 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t535 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t535 t523) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t535 t523
+c_updFM'46upd'4649 x1 x2 x3 x4@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_EmptyFM
+c_updFM'46upd'4649 x1 x2 x3 x4@(Curry.Module.FiniteMap.C_Branch x5 x6 x7 x8 x9) st = Curry.Module.FiniteMap.c_updFM'46upd'4649_case_53(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x9)(Curry.Module.Prelude.op_61_61(x2)(x5)(st))(st)
+c_updFM'46upd'4649 x1 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_updFM'46upd'4649(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_updFM'46upd'4649 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.updFM.upd.49")(x)
+
+
+
+c_splitFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 (Curry.Module.FiniteMap.C_FM t0 t1) (Curry.Module.Prelude.T2 t0 t1))
+c_splitFM x1 x2 st = Curry.Module.Prelude.c_maybe(Curry.Module.Prelude.C_Nothing)(Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_splitFM'46_'35lambda4(x1)(x2)))(Curry.Module.FiniteMap.c_lookupFM(x1)(x2)(st))(st)
+
+
+
+c_splitFM'46_'35lambda4 :: (Curry t593,Curry t600) => (Curry.Module.FiniteMap.C_FM t593 t600) -> t593 -> t600 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 (Curry.Module.FiniteMap.C_FM t593 t600) (Curry.Module.Prelude.T2 t593 t600))
+c_splitFM'46_'35lambda4 x1 x2 x3 st = Curry.Module.Prelude.C_Just(Curry.Module.Prelude.T2(Curry.Module.FiniteMap.c_delFromFM(x1)(x2)(st))(Curry.Module.Prelude.T2(x2)(x3)))
+
+
+
+c_plusFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_plusFM x1@(Curry.Module.FiniteMap.C_FM x3 x4) x2 st = Curry.Module.FiniteMap.c_plusFM_case_50(x3)(x4)(x2)(st)
+c_plusFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM(x)(x2)(st))(i)(xs)(st)
+c_plusFM x x2 st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM")(x)
+
+
+
+c_plusFM'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_plusFM'39 x1 x2@Curry.Module.FiniteMap.C_EmptyFM x3 st = x3
+c_plusFM'39 x1 x2@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) x3 st = Curry.Module.FiniteMap.c_plusFM'39_case_49(x1)(x4)(x5)(x6)(x7)(x8)(x3)(st)
+c_plusFM'39 x1 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM'39(x1)(x)(x3)(st))(i)(xs)(st)
+c_plusFM'39 x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM'")(x)
+
+
+
+c_plusFM_C :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))) -> (Curry.Module.FiniteMap.C_FM t1 t0) -> (Curry.Module.FiniteMap.C_FM t1 t0) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t1 t0
+c_plusFM_C x1 x2@(Curry.Module.FiniteMap.C_FM x4 x5) x3 st = Curry.Module.FiniteMap.c_plusFM_C_case_48(x1)(x4)(x5)(x3)(st)
+c_plusFM_C x1 (Curry.Module.FiniteMap.C_FMOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM_C(x1)(x)(x3)(st))(i)(xs)(st)
+c_plusFM_C x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM_C")(x)
+
+
+
+c_plusFM_C'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_plusFM_C'39 x1 x2 x3@Curry.Module.FiniteMap.C_EmptyFM x4 st = x4
+c_plusFM_C'39 x1 x2 x3@(Curry.Module.FiniteMap.C_Branch x5 x6 x7 x8 x9) x4 st = Curry.Module.FiniteMap.c_plusFM_C'39_case_47(x1)(x2)(x5)(x6)(x7)(x8)(x9)(x4)(st)
+c_plusFM_C'39 x1 x2 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM_C'39(x1)(x2)(x)(x4)(st))(i)(xs)(st)
+c_plusFM_C'39 x1 x2 x x4 st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM_C'")(x)
+
+
+
+c_minusFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_minusFM x1@(Curry.Module.FiniteMap.C_FM x3 x4) x2 st = Curry.Module.FiniteMap.c_minusFM_case_45(x3)(x4)(x2)(st)
+c_minusFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_minusFM(x)(x2)(st))(i)(xs)(st)
+c_minusFM x x2 st = Curry.RunTimeSystem.patternFail("FiniteMap.minusFM")(x)
+
+
+
+c_minusFM'39 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t2) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_minusFM'39 x1 x2@Curry.Module.FiniteMap.C_EmptyFM x3 st = Curry.Module.FiniteMap.C_EmptyFM
+c_minusFM'39 x1 x2@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) x3 st = Curry.Module.FiniteMap.c_minusFM'39_case_44(x1)(x4)(x5)(x6)(x7)(x8)(x3)(st)
+c_minusFM'39 x1 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_minusFM'39(x1)(x)(x3)(st))(i)(xs)(st)
+c_minusFM'39 x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.minusFM'")(x)
+
+
+
+c_intersectFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_intersectFM x1@(Curry.Module.FiniteMap.C_FM x3 x4) x2 st = Curry.Module.FiniteMap.c_intersectFM_case_43(x3)(x4)(x2)(st)
+c_intersectFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM(x)(x2)(st))(i)(xs)(st)
+c_intersectFM x x2 st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM")(x)
+
+
+
+c_intersectFM'39 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t2) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t2
+c_intersectFM'39 x1 x2 x3 st = Curry.Module.FiniteMap.c_intersectFM_C'39(x1)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.FiniteMap.c_intersectFM'39'46_'35lambda6))(x2)(x3)(st)
+
+
+
+c_intersectFM'39'46_'35lambda6 :: (Curry t1051,Curry t1052) => t1051 -> t1052 -> Curry.RunTimeSystem.State -> t1052
+c_intersectFM'39'46_'35lambda6 x1 x2 st = x2
+
+
+
+c_intersectFM_C :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> (Curry.Module.FiniteMap.C_FM t2 t0) -> (Curry.Module.FiniteMap.C_FM t2 t0) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t2 t1
+c_intersectFM_C x1 x2@(Curry.Module.FiniteMap.C_FM x4 x5) x3 st = Curry.Module.FiniteMap.c_intersectFM_C_case_42(x1)(x4)(x5)(x3)(st)
+c_intersectFM_C x1 (Curry.Module.FiniteMap.C_FMOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM_C(x1)(x)(x3)(st))(i)(xs)(st)
+c_intersectFM_C x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM_C")(x)
+
+
+
+c_intersectFM_C'39 :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t3))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t2) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t3
+c_intersectFM_C'39 x1 x2 x3 x4@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_EmptyFM
+c_intersectFM_C'39 x1 x2 x3 x4@(Curry.Module.FiniteMap.C_Branch x5 x6 x7 x8 x9) st = Curry.Module.FiniteMap.c_intersectFM_C'39_case_41(x1)(x2)(x5)(x6)(x8)(x9)(x3)(st)
+c_intersectFM_C'39 x1 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM_C'39(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_intersectFM_C'39 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM_C'")(x)
+
+
+
+c_intersectFM_C'39'46_'35selFP3'35elt1'39 :: (Curry t1000) => (Curry.Module.Prelude.C_Maybe t1000) -> Curry.RunTimeSystem.State -> t1000
+c_intersectFM_C'39'46_'35selFP3'35elt1'39 x1@(Curry.Module.Prelude.C_Just x2) st = x2
+c_intersectFM_C'39'46_'35selFP3'35elt1'39 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM_C'39'46_'35selFP3'35elt1'39(x)(st))(i)(xs)(st)
+c_intersectFM_C'39'46_'35selFP3'35elt1'39 x st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM_C'._#selFP3#elt1'")(x)
+
+
+
+c_foldFM :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t2)))) -> t2 -> (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> t2
+c_foldFM x1 x2 x3@(Curry.Module.FiniteMap.C_FM x4 x5) st = Curry.Module.FiniteMap.c_foldFM'39(x4)(x1)(x2)(x5)(st)
+c_foldFM x1 x2 (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_foldFM(x1)(x2)(x)(st))(i)(xs)(st)
+c_foldFM x1 x2 x st = Curry.RunTimeSystem.patternFail("FiniteMap.foldFM")(x)
+
+
+
+c_foldFM'39 :: (Curry t0,Curry t1,Curry t2,Curry t3) => t0 -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t3)))) -> t3 -> (Curry.Module.FiniteMap.C_FiniteMap t1 t2) -> Curry.RunTimeSystem.State -> t3
+c_foldFM'39 x1 x2 x3 x4@Curry.Module.FiniteMap.C_EmptyFM st = x3
+c_foldFM'39 x1 x2 x3 x4@(Curry.Module.FiniteMap.C_Branch x5 x6 x7 x8 x9) st = Curry.Module.FiniteMap.c_foldFM'39(x1)(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(x6)(st))(Curry.Module.FiniteMap.c_foldFM'39(x1)(x2)(x3)(x9)(st))(st))(x8)(st)
+c_foldFM'39 x1 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_foldFM'39(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_foldFM'39 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.foldFM'")(x)
+
+
+
+c_mapFM :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t2))) -> (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t2
+c_mapFM x1 x2@(Curry.Module.FiniteMap.C_FM x3 x4) st = Curry.Module.FiniteMap.C_FM(x3)(Curry.Module.FiniteMap.c_mapFM'39(x3)(x1)(x4)(st))
+c_mapFM x1 (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mapFM(x1)(x)(st))(i)(xs)(st)
+c_mapFM x1 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mapFM")(x)
+
+
+
+c_mapFM'39 :: (Curry t0,Curry t1,Curry t2,Curry t3) => t0 -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t3))) -> (Curry.Module.FiniteMap.C_FiniteMap t1 t2) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t1 t3
+c_mapFM'39 x1 x2 x3@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_EmptyFM
+c_mapFM'39 x1 x2 x3@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) st = Curry.Module.FiniteMap.C_Branch(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x4)(st))(x5)(st))(x6)(Curry.Module.FiniteMap.c_mapFM'39(x1)(x2)(x7)(st))(Curry.Module.FiniteMap.c_mapFM'39(x1)(x2)(x8)(st))
+c_mapFM'39 x1 x2 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mapFM'39(x1)(x2)(x)(st))(i)(xs)(st)
+c_mapFM'39 x1 x2 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mapFM'")(x)
+
+
+
+c_filterFM :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 t1
+c_filterFM x1 x2@(Curry.Module.FiniteMap.C_FM x3 x4) st = Curry.Module.FiniteMap.C_FM(x3)(Curry.Module.FiniteMap.c_filterFM'39(x3)(x1)(x4)(st))
+c_filterFM x1 (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_filterFM(x1)(x)(st))(i)(xs)(st)
+c_filterFM x1 x st = Curry.RunTimeSystem.patternFail("FiniteMap.filterFM")(x)
+
+
+
+c_filterFM'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_filterFM'39 x1 x2 x3@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_EmptyFM
+c_filterFM'39 x1 x2 x3@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) st = Curry.Module.FiniteMap.c_filterFM'39_case_38(x1)(x2)(x4)(x5)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x4)(st))(x5)(st))(st)
+c_filterFM'39 x1 x2 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_filterFM'39(x1)(x2)(x)(st))(i)(xs)(st)
+c_filterFM'39 x1 x2 x st = Curry.RunTimeSystem.patternFail("FiniteMap.filterFM'")(x)
+
+
+
+c_sizeFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_sizeFM x1@(Curry.Module.FiniteMap.C_FM x2 x3) st = Curry.Module.FiniteMap.c_sizeFM_case_36(x3)(st)
+c_sizeFM (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_sizeFM(x)(st))(i)(xs)(st)
+c_sizeFM x st = Curry.RunTimeSystem.patternFail("FiniteMap.sizeFM")(x)
+
+
+
+c_sizeFM'39 :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_sizeFM'39 x1@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.Prelude.C_Zero
+c_sizeFM'39 x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x4
+c_sizeFM'39 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_sizeFM'39(x)(st))(i)(xs)(st)
+c_sizeFM'39 x st = Curry.RunTimeSystem.patternFail("FiniteMap.sizeFM'")(x)
+
+
+
+c_eqFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_eqFM x1 x2 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(Curry.Module.FiniteMap.c_sizeFM(x1)(st))(Curry.Module.FiniteMap.c_sizeFM(x2)(st))(st))(Curry.Module.Prelude.op_61_61(Curry.Module.FiniteMap.c_fmToList(x1)(st))(Curry.Module.FiniteMap.c_fmToList(x2)(st))(st))(st)
+
+
+
+c_isEmptyFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isEmptyFM x1 st = Curry.Module.Prelude.op_61_61(Curry.Module.FiniteMap.c_sizeFM(x1)(st))(Curry.Module.Prelude.C_Zero)(st)
+
+
+
+c_elemFM :: (Curry t0,Curry t1) => t0 -> (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_elemFM x1 x2 st = Curry.Module.Maybe.c_isJust(Curry.Module.FiniteMap.c_lookupFM(x2)(x1)(st))(st)
+
+
+
+c_lookupFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1
+c_lookupFM x1@(Curry.Module.FiniteMap.C_FM x3 x4) x2 st = Curry.Module.FiniteMap.c_lookupFM'39(x3)(x4)(x2)(st)
+c_lookupFM (Curry.Module.FiniteMap.C_FMOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_lookupFM(x)(x2)(st))(i)(xs)(st)
+c_lookupFM x x2 st = Curry.RunTimeSystem.patternFail("FiniteMap.lookupFM")(x)
+
+
+
+c_lookupFM'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1
+c_lookupFM'39 x1 x2@Curry.Module.FiniteMap.C_EmptyFM x3 st = Curry.Module.Prelude.C_Nothing
+c_lookupFM'39 x1 x2@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) x3 st = Curry.Module.FiniteMap.c_lookupFM'39_case_35(x1)(x3)(x4)(x5)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x4)(st))(st)
+c_lookupFM'39 x1 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_lookupFM'39(x1)(x)(x3)(st))(i)(xs)(st)
+c_lookupFM'39 x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.lookupFM'")(x)
+
+
+
+c_lookupWithDefaultFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> t1 -> t0 -> Curry.RunTimeSystem.State -> t1
+c_lookupWithDefaultFM x1 x2 x3 st = Curry.Module.FiniteMap.c_lookupWithDefaultFM_case_33(x1)(x2)(x3)(Curry.Module.FiniteMap.c_lookupFM(x1)(x3)(st))(st)
+
+
+
+c_keyOrder :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))
+c_keyOrder x1@(Curry.Module.FiniteMap.C_FM x2 x3) st = x2
+c_keyOrder (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_keyOrder(x)(st))(i)(xs)(st)
+c_keyOrder x st = Curry.RunTimeSystem.patternFail("FiniteMap.keyOrder")(x)
+
+
+
+c_minFM :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 t0 t1))
+c_minFM st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_minFM'46min'46215))(Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_tree))(st)
+
+
+
+c_minFM'46min'46215 :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 t0 t1)
+c_minFM'46min'46215 x1@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.Prelude.C_Nothing
+c_minFM'46min'46215 x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = Curry.Module.FiniteMap.c_minFM'46min'46215_case_32(x2)(x3)(x5)(Curry.Module.Prelude.op_61_61(x5)(Curry.Module.FiniteMap.C_EmptyFM)(st))(st)
+c_minFM'46min'46215 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_minFM'46min'46215(x)(st))(i)(xs)(st)
+c_minFM'46min'46215 x st = Curry.RunTimeSystem.patternFail("FiniteMap.minFM.min.215")(x)
+
+
+
+c_maxFM :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 t0 t1))
+c_maxFM st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_maxFM'46max'46223))(Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_tree))(st)
+
+
+
+c_maxFM'46max'46223 :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 t0 t1)
+c_maxFM'46max'46223 x1@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.Prelude.C_Nothing
+c_maxFM'46max'46223 x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = Curry.Module.FiniteMap.c_maxFM'46max'46223_case_30(x2)(x3)(x6)(Curry.Module.Prelude.op_61_61(x6)(Curry.Module.FiniteMap.C_EmptyFM)(st))(st)
+c_maxFM'46max'46223 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_maxFM'46max'46223(x)(st))(i)(xs)(st)
+c_maxFM'46max'46223 x st = Curry.RunTimeSystem.patternFail("FiniteMap.maxFM.max.223")(x)
+
+
+
+c_fmToList :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)
+c_fmToList x1 st = Curry.Module.FiniteMap.c_foldFM(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.FiniteMap.c_fmToList'46_'35lambda8))(Curry.Module.Prelude.List)(x1)(st)
+
+
+
+c_fmToList'46_'35lambda8 :: (Curry t1237,Curry t1238) => t1237 -> t1238 -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1237 t1238)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1237 t1238)
+c_fmToList'46_'35lambda8 x1 x2 x3 st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2(x1)(x2))(x3)
+
+
+
+c_keysFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_keysFM x1 st = Curry.Module.FiniteMap.c_foldFM(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.FiniteMap.c_keysFM'46_'35lambda9))(Curry.Module.Prelude.List)(x1)(st)
+
+
+
+c_keysFM'46_'35lambda9 :: (Curry t1356,Curry t1353) => t1356 -> t1353 -> (Curry.Module.Prelude.List t1356) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1356
+c_keysFM'46_'35lambda9 x1 x2 x3 st = (Curry.Module.Prelude.:<)(x1)(x3)
+
+
+
+c_eltsFM :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1
+c_eltsFM x1 st = Curry.Module.FiniteMap.c_foldFM(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.FiniteMap.c_eltsFM'46_'35lambda10))(Curry.Module.Prelude.List)(x1)(st)
+
+
+
+c_eltsFM'46_'35lambda10 :: (Curry t1363,Curry t1367) => t1363 -> t1367 -> (Curry.Module.Prelude.List t1367) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1367
+c_eltsFM'46_'35lambda10 x1 x2 x3 st = (Curry.Module.Prelude.:<)(x2)(x3)
+
+
+
+c_fmToListPreOrder :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)
+c_fmToListPreOrder x1@(Curry.Module.FiniteMap.C_FM x2 x3) st = Curry.Module.FiniteMap.c_fmToListPreOrder'46pre'46243(x3)(Curry.Module.Prelude.List)(st)
+c_fmToListPreOrder (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_fmToListPreOrder(x)(st))(i)(xs)(st)
+c_fmToListPreOrder x st = Curry.RunTimeSystem.patternFail("FiniteMap.fmToListPreOrder")(x)
+
+
+
+c_fmToListPreOrder'46pre'46243 :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)
+c_fmToListPreOrder'46pre'46243 x1@Curry.Module.FiniteMap.C_EmptyFM x2 st = x2
+c_fmToListPreOrder'46pre'46243 x1@(Curry.Module.FiniteMap.C_Branch x3 x4 x5 x6 x7) x2 st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2(x3)(x4))(Curry.Module.FiniteMap.c_fmToListPreOrder'46pre'46243(x6)(Curry.Module.FiniteMap.c_fmToListPreOrder'46pre'46243(x7)(x2)(st))(st))
+c_fmToListPreOrder'46pre'46243 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_fmToListPreOrder'46pre'46243(x)(x2)(st))(i)(xs)(st)
+c_fmToListPreOrder'46pre'46243 x x2 st = Curry.RunTimeSystem.patternFail("FiniteMap.fmToListPreOrder.pre.243")(x)
+
+
+
+c_fmSortBy :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_fmSortBy x1 x2 st = Curry.Module.FiniteMap.c_keysFM(Curry.Module.Prelude.c_apply(Curry.Module.FiniteMap.c_listToFM(x1)(st))(Curry.Module.Prelude.c_zip(x2)(Curry.Module.Prelude.c_repeat(Curry.Module.Prelude.T0)(st))(st))(st))(st)
+
+
+
+c_tree :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_tree x1@(Curry.Module.FiniteMap.C_FM x2 x3) st = x3
+c_tree (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_tree(x)(st))(i)(xs)(st)
+c_tree x st = Curry.RunTimeSystem.patternFail("FiniteMap.tree")(x)
+
+
+
+c_toGT :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_toGT x1 x2 x3 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.c_not(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(x3)(st))(st))(Curry.Module.Prelude.op_47_61(x2)(x3)(st))(st)
+
+
+
+c_isEmptyFM'39 :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isEmptyFM'39 x1 st = Curry.Module.Prelude.op_61_61(Curry.Module.FiniteMap.c_sizeFM'39(x1)(st))(Curry.Module.Prelude.C_Zero)(st)
+
+
+
+c_sIZE_RATIO :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_sIZE_RATIO st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))
+
+
+
+c_mkBranch :: (Curry t0,Curry t1) => Curry.Module.Prelude.C_Int -> t0 -> t1 -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_mkBranch x1 x2 x3 x4 x5 st = Curry.Module.FiniteMap.C_Branch(x2)(x3)(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_43(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.FiniteMap.c_sizeFM'39(x4)(st))(st))(Curry.Module.FiniteMap.c_sizeFM'39(x5)(st))(st))(x4)(x5)
+
+
+
+c_mkBranch'46unbox'46264 :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_mkBranch'46unbox'46264 x1 st = x1
+
+
+
+c_mkBalBranch :: (Curry t0,Curry t1) => t0 -> t1 -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_mkBalBranch x1 x2 x3 x4 st = let {x5 = Curry.Module.FiniteMap.c_sizeFM'39(x3)(st)} in let {x6 = Curry.Module.FiniteMap.c_sizeFM'39(x4)(st)} in Curry.Module.FiniteMap.c_mkBalBranch_case_28(x1)(x2)(x3)(x4)(x5)(x6)(Curry.Module.Prelude.op_60(Curry.Module.Prelude.op_43(x5)(x6)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st)
+
+
+
+c_mkBalBranch'46single_L'46273 :: (Curry t170,Curry t169) => t170 -> t169 -> (Curry.Module.FiniteMap.C_FiniteMap t169 t170) -> (Curry.Module.FiniteMap.C_FiniteMap t169 t170) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t169 t170
+c_mkBalBranch'46single_L'46273 x1 x2 x3 x4@(Curry.Module.FiniteMap.C_Branch x5 x6 x7 x8 x9) st = Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(x5)(x6)(Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x2)(x1)(x3)(x8)(st))(x9)(st)
+c_mkBalBranch'46single_L'46273 x1 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch'46single_L'46273(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_mkBalBranch'46single_L'46273 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch.single_L.273")(x)
+
+
+
+c_mkBalBranch'46double_L'46273 :: (Curry t170,Curry t169) => t170 -> t169 -> (Curry.Module.FiniteMap.C_FiniteMap t169 t170) -> (Curry.Module.FiniteMap.C_FiniteMap t169 t170) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t169 t170
+c_mkBalBranch'46double_L'46273 x1 x2 x3 x4@(Curry.Module.FiniteMap.C_Branch x5 x6 x7 x8 x9) st = Curry.Module.FiniteMap.c_mkBalBranch'46double_L'46273_case_20(x1)(x2)(x3)(x5)(x6)(x9)(x8)(st)
+c_mkBalBranch'46double_L'46273 x1 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch'46double_L'46273(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_mkBalBranch'46double_L'46273 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch.double_L.273")(x)
+
+
+
+c_mkBalBranch'46single_R'46273 :: (Curry t170,Curry t169) => t170 -> t169 -> (Curry.Module.FiniteMap.C_FiniteMap t169 t170) -> (Curry.Module.FiniteMap.C_FiniteMap t169 t170) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t169 t170
+c_mkBalBranch'46single_R'46273 x1 x2 x3@(Curry.Module.FiniteMap.C_Branch x5 x6 x7 x8 x9) x4 st = Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(x5)(x6)(x8)(Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(x2)(x1)(x9)(x4)(st))(st)
+c_mkBalBranch'46single_R'46273 x1 x2 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch'46single_R'46273(x1)(x2)(x)(x4)(st))(i)(xs)(st)
+c_mkBalBranch'46single_R'46273 x1 x2 x x4 st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch.single_R.273")(x)
+
+
+
+c_mkBalBranch'46double_R'46273 :: (Curry t170,Curry t169) => t170 -> t169 -> (Curry.Module.FiniteMap.C_FiniteMap t169 t170) -> (Curry.Module.FiniteMap.C_FiniteMap t169 t170) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t169 t170
+c_mkBalBranch'46double_R'46273 x1 x2 x3@(Curry.Module.FiniteMap.C_Branch x5 x6 x7 x8 x9) x4 st = Curry.Module.FiniteMap.c_mkBalBranch'46double_R'46273_case_19(x1)(x2)(x4)(x5)(x6)(x8)(x9)(st)
+c_mkBalBranch'46double_R'46273 x1 x2 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch'46double_R'46273(x1)(x2)(x)(x4)(st))(i)(xs)(st)
+c_mkBalBranch'46double_R'46273 x1 x2 x x4 st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch.double_R.273")(x)
+
+
+
+c_mkVBalBranch :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t0 -> t1 -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_mkVBalBranch x1 x2 x3 x4@Curry.Module.FiniteMap.C_EmptyFM x5 st = Curry.Module.FiniteMap.c_addToFM'39(x1)(x5)(x2)(x3)(st)
+c_mkVBalBranch x1 x2 x3 x4@(Curry.Module.FiniteMap.C_Branch x6 x7 x8 x9 x10) x5 st = Curry.Module.FiniteMap.c_mkVBalBranch_case_18(x1)(x2)(x3)(x6)(x7)(x8)(x9)(x10)(x5)(st)
+c_mkVBalBranch x1 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x5 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x2)(x3)(x)(x5)(st))(i)(xs)(st)
+c_mkVBalBranch x1 x2 x3 x x5 st = Curry.RunTimeSystem.patternFail("FiniteMap.mkVBalBranch")(x)
+
+
+
+c_glueBal :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_glueBal x1 x2 x3 st = Curry.Module.FiniteMap.c_glueBal_case_14(x1)(x2)(x3)(Curry.Module.FiniteMap.c_isEmptyFM'39(x2)(st))(st)
+
+
+
+c_glueBal'46_'35selFP8'35mid_key1 :: (Curry t439,Curry t440) => (Curry.Module.Prelude.T2 t439 t440) -> Curry.RunTimeSystem.State -> t439
+c_glueBal'46_'35selFP8'35mid_key1 x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_glueBal'46_'35selFP8'35mid_key1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueBal'46_'35selFP8'35mid_key1(x)(st))(i)(xs)(st)
+c_glueBal'46_'35selFP8'35mid_key1 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueBal._#selFP8#mid_key1")(x)
+
+
+
+c_glueBal'46_'35selFP9'35mid_elt1 :: (Curry t439,Curry t440) => (Curry.Module.Prelude.T2 t439 t440) -> Curry.RunTimeSystem.State -> t440
+c_glueBal'46_'35selFP9'35mid_elt1 x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_glueBal'46_'35selFP9'35mid_elt1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueBal'46_'35selFP9'35mid_elt1(x)(st))(i)(xs)(st)
+c_glueBal'46_'35selFP9'35mid_elt1 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueBal._#selFP9#mid_elt1")(x)
+
+
+
+c_glueBal'46_'35selFP6'35mid_key2 :: (Curry t439,Curry t440) => (Curry.Module.Prelude.T2 t439 t440) -> Curry.RunTimeSystem.State -> t439
+c_glueBal'46_'35selFP6'35mid_key2 x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_glueBal'46_'35selFP6'35mid_key2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueBal'46_'35selFP6'35mid_key2(x)(st))(i)(xs)(st)
+c_glueBal'46_'35selFP6'35mid_key2 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueBal._#selFP6#mid_key2")(x)
+
+
+
+c_glueBal'46_'35selFP7'35mid_elt2 :: (Curry t439,Curry t440) => (Curry.Module.Prelude.T2 t439 t440) -> Curry.RunTimeSystem.State -> t440
+c_glueBal'46_'35selFP7'35mid_elt2 x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_glueBal'46_'35selFP7'35mid_elt2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueBal'46_'35selFP7'35mid_elt2(x)(st))(i)(xs)(st)
+c_glueBal'46_'35selFP7'35mid_elt2 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueBal._#selFP7#mid_elt2")(x)
+
+
+
+c_glueVBal :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_glueVBal x1 x2 x3 st = Curry.Module.FiniteMap.c_glueVBal_case_11(x1)(x2)(x3)(Curry.Module.FiniteMap.c_isEmptyFM'39(x2)(st))(st)
+
+
+
+c_glueVBal'46_'35selFP16'35key_l :: (Curry t876,Curry t877) => (Curry.Module.FiniteMap.C_FiniteMap t876 t877) -> Curry.RunTimeSystem.State -> t876
+c_glueVBal'46_'35selFP16'35key_l x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x2
+c_glueVBal'46_'35selFP16'35key_l (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal'46_'35selFP16'35key_l(x)(st))(i)(xs)(st)
+c_glueVBal'46_'35selFP16'35key_l x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal._#selFP16#key_l")(x)
+
+
+
+c_glueVBal'46_'35selFP17'35elt_l :: (Curry t876,Curry t877) => (Curry.Module.FiniteMap.C_FiniteMap t876 t877) -> Curry.RunTimeSystem.State -> t877
+c_glueVBal'46_'35selFP17'35elt_l x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x3
+c_glueVBal'46_'35selFP17'35elt_l (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal'46_'35selFP17'35elt_l(x)(st))(i)(xs)(st)
+c_glueVBal'46_'35selFP17'35elt_l x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal._#selFP17#elt_l")(x)
+
+
+
+c_glueVBal'46_'35selFP18'35fm_ll :: (Curry t876,Curry t877) => (Curry.Module.FiniteMap.C_FiniteMap t876 t877) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t876 t877
+c_glueVBal'46_'35selFP18'35fm_ll x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x5
+c_glueVBal'46_'35selFP18'35fm_ll (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal'46_'35selFP18'35fm_ll(x)(st))(i)(xs)(st)
+c_glueVBal'46_'35selFP18'35fm_ll x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal._#selFP18#fm_ll")(x)
+
+
+
+c_glueVBal'46_'35selFP19'35fm_lr :: (Curry t876,Curry t877) => (Curry.Module.FiniteMap.C_FiniteMap t876 t877) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t876 t877
+c_glueVBal'46_'35selFP19'35fm_lr x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x6
+c_glueVBal'46_'35selFP19'35fm_lr (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal'46_'35selFP19'35fm_lr(x)(st))(i)(xs)(st)
+c_glueVBal'46_'35selFP19'35fm_lr x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal._#selFP19#fm_lr")(x)
+
+
+
+c_glueVBal'46_'35selFP12'35key_r :: (Curry t876,Curry t877) => (Curry.Module.FiniteMap.C_FiniteMap t876 t877) -> Curry.RunTimeSystem.State -> t876
+c_glueVBal'46_'35selFP12'35key_r x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x2
+c_glueVBal'46_'35selFP12'35key_r (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal'46_'35selFP12'35key_r(x)(st))(i)(xs)(st)
+c_glueVBal'46_'35selFP12'35key_r x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal._#selFP12#key_r")(x)
+
+
+
+c_glueVBal'46_'35selFP13'35elt_r :: (Curry t876,Curry t877) => (Curry.Module.FiniteMap.C_FiniteMap t876 t877) -> Curry.RunTimeSystem.State -> t877
+c_glueVBal'46_'35selFP13'35elt_r x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x3
+c_glueVBal'46_'35selFP13'35elt_r (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal'46_'35selFP13'35elt_r(x)(st))(i)(xs)(st)
+c_glueVBal'46_'35selFP13'35elt_r x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal._#selFP13#elt_r")(x)
+
+
+
+c_glueVBal'46_'35selFP14'35fm_rl :: (Curry t876,Curry t877) => (Curry.Module.FiniteMap.C_FiniteMap t876 t877) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t876 t877
+c_glueVBal'46_'35selFP14'35fm_rl x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x5
+c_glueVBal'46_'35selFP14'35fm_rl (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal'46_'35selFP14'35fm_rl(x)(st))(i)(xs)(st)
+c_glueVBal'46_'35selFP14'35fm_rl x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal._#selFP14#fm_rl")(x)
+
+
+
+c_glueVBal'46_'35selFP15'35fm_rr :: (Curry t876,Curry t877) => (Curry.Module.FiniteMap.C_FiniteMap t876 t877) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t876 t877
+c_glueVBal'46_'35selFP15'35fm_rr x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = x6
+c_glueVBal'46_'35selFP15'35fm_rr (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal'46_'35selFP15'35fm_rr(x)(st))(i)(xs)(st)
+c_glueVBal'46_'35selFP15'35fm_rr x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal._#selFP15#fm_rr")(x)
+
+
+
+c_splitLT :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_splitLT x1 x2@Curry.Module.FiniteMap.C_EmptyFM x3 st = Curry.Module.FiniteMap.C_EmptyFM
+c_splitLT x1 x2@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) x3 st = Curry.Module.FiniteMap.c_splitLT_case_7(x1)(x3)(x4)(x5)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x4)(st))(st)
+c_splitLT x1 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_splitLT(x1)(x)(x3)(st))(i)(xs)(st)
+c_splitLT x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.splitLT")(x)
+
+
+
+c_splitGT :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_splitGT x1 x2@Curry.Module.FiniteMap.C_EmptyFM x3 st = Curry.Module.FiniteMap.C_EmptyFM
+c_splitGT x1 x2@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) x3 st = Curry.Module.FiniteMap.c_splitGT_case_5(x1)(x3)(x4)(x5)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x4)(st))(st)
+c_splitGT x1 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_splitGT(x1)(x)(x3)(st))(i)(xs)(st)
+c_splitGT x1 x x3 st = Curry.RunTimeSystem.patternFail("FiniteMap.splitGT")(x)
+
+
+
+c_findMin :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 t0 t1
+c_findMin x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = Curry.Module.FiniteMap.c_findMin_case_3(x2)(x3)(x5)(st)
+c_findMin (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_findMin(x)(st))(i)(xs)(st)
+c_findMin x st = Curry.RunTimeSystem.patternFail("FiniteMap.findMin")(x)
+
+
+
+c_deleteMin :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_deleteMin x1 x2@(Curry.Module.FiniteMap.C_Branch x3 x4 x5 x6 x7) st = Curry.Module.FiniteMap.c_deleteMin_case_2(x1)(x3)(x4)(x7)(x6)(st)
+c_deleteMin x1 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_deleteMin(x1)(x)(st))(i)(xs)(st)
+c_deleteMin x1 x st = Curry.RunTimeSystem.patternFail("FiniteMap.deleteMin")(x)
+
+
+
+c_findMax :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 t0 t1
+c_findMax x1@(Curry.Module.FiniteMap.C_Branch x2 x3 x4 x5 x6) st = Curry.Module.FiniteMap.c_findMax_case_1(x2)(x3)(x6)(st)
+c_findMax (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_findMax(x)(st))(i)(xs)(st)
+c_findMax x st = Curry.RunTimeSystem.patternFail("FiniteMap.findMax")(x)
+
+
+
+c_deleteMax :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.FiniteMap.C_FiniteMap t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FiniteMap t0 t1
+c_deleteMax x1 x2@(Curry.Module.FiniteMap.C_Branch x3 x4 x5 x6 x7) st = Curry.Module.FiniteMap.c_deleteMax_case_0(x1)(x3)(x4)(x6)(x7)(st)
+c_deleteMax x1 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_deleteMax(x1)(x)(st))(i)(xs)(st)
+c_deleteMax x1 x st = Curry.RunTimeSystem.patternFail("FiniteMap.deleteMax")(x)
+
+
+
+c_emptySet :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0)
+c_emptySet st = Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_emptyFM)
+
+
+
+c_mkSet :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0
+c_mkSet x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.FiniteMap.c_listToFM(x1)(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_mkSet'46_'35lambda13))(x2)(st))(st)
+
+
+
+c_mkSet'46_'35lambda13 :: (Curry t1421) => t1421 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 t1421 Curry.Module.Prelude.T0
+c_mkSet'46_'35lambda13 x1 st = Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.T0)
+
+
+
+c_isEmptySet :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_isEmptySet st = Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_isEmptyFM)
+
+
+
+c_elementOf :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))
+c_elementOf st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.FiniteMap.c_elemFM)
+
+
+
+c_minusSet :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0))
+c_minusSet st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.FiniteMap.c_minusFM)
+
+
+
+c_setToList :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_setToList st = Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_keysFM)
+
+
+
+c_union :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM t0 Curry.Module.Prelude.T0))
+c_union st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.FiniteMap.c_plusFM)
+
+
+
+c_deleteMax_case_0 x1 x3 x4 x6 x7@Curry.Module.FiniteMap.C_EmptyFM st = x6
+c_deleteMax_case_0 x1 x3 x4 x6 x7@(Curry.Module.FiniteMap.C_Branch x8 x9 x10 x11 x12) st = Curry.Module.FiniteMap.c_mkBalBranch(x3)(x4)(x6)(Curry.Module.FiniteMap.c_deleteMax(x1)(Curry.Module.FiniteMap.C_Branch(x8)(x9)(x10)(x11)(x12))(st))(st)
+c_deleteMax_case_0 x1 x3 x4 x6 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_deleteMax_case_0(x1)(x3)(x4)(x6)(x)(st))(i)(xs)(st)
+c_deleteMax_case_0 x1 x3 x4 x6 x st = Curry.RunTimeSystem.patternFail("FiniteMap.deleteMax_case_0")(x)
+
+
+
+c_findMax_case_1 x2 x3 x6@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.Prelude.T2(x2)(x3)
+c_findMax_case_1 x2 x3 x6@(Curry.Module.FiniteMap.C_Branch x7 x8 x9 x10 x11) st = Curry.Module.FiniteMap.c_findMax(Curry.Module.FiniteMap.C_Branch(x7)(x8)(x9)(x10)(x11))(st)
+c_findMax_case_1 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_findMax_case_1(x2)(x3)(x)(st))(i)(xs)(st)
+c_findMax_case_1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.findMax_case_1")(x)
+
+
+
+c_deleteMin_case_2 x1 x3 x4 x7 x6@Curry.Module.FiniteMap.C_EmptyFM st = x7
+c_deleteMin_case_2 x1 x3 x4 x7 x6@(Curry.Module.FiniteMap.C_Branch x8 x9 x10 x11 x12) st = Curry.Module.FiniteMap.c_mkBalBranch(x3)(x4)(Curry.Module.FiniteMap.c_deleteMin(x1)(Curry.Module.FiniteMap.C_Branch(x8)(x9)(x10)(x11)(x12))(st))(x7)(st)
+c_deleteMin_case_2 x1 x3 x4 x7 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_deleteMin_case_2(x1)(x3)(x4)(x7)(x)(st))(i)(xs)(st)
+c_deleteMin_case_2 x1 x3 x4 x7 x st = Curry.RunTimeSystem.patternFail("FiniteMap.deleteMin_case_2")(x)
+
+
+
+c_findMin_case_3 x2 x3 x5@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.Prelude.T2(x2)(x3)
+c_findMin_case_3 x2 x3 x5@(Curry.Module.FiniteMap.C_Branch x7 x8 x9 x10 x11) st = Curry.Module.FiniteMap.c_findMin(Curry.Module.FiniteMap.C_Branch(x7)(x8)(x9)(x10)(x11))(st)
+c_findMin_case_3 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_findMin_case_3(x2)(x3)(x)(st))(i)(xs)(st)
+c_findMin_case_3 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.findMin_case_3")(x)
+
+
+
+c_splitGT_case_5 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x4)(x5)(Curry.Module.FiniteMap.c_splitGT(x1)(x7)(x3)(st))(x8)(st)
+c_splitGT_case_5 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_splitGT_case_4(x1)(x3)(x4)(x8)(Curry.Module.Prelude.op_61_61(x3)(x4)(st))(st)
+c_splitGT_case_5 x1 x3 x4 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_splitGT_case_5(x1)(x3)(x4)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_splitGT_case_5 x1 x3 x4 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.splitGT_case_5")(x)
+
+
+
+c_splitGT_case_4 x1 x3 x4 x8 x9@Curry.Module.Prelude.C_True st = x8
+c_splitGT_case_4 x1 x3 x4 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_splitGT(x1)(x8)(x3)(st)
+c_splitGT_case_4 x1 x3 x4 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_splitGT_case_4(x1)(x3)(x4)(x8)(x)(st))(i)(xs)(st)
+c_splitGT_case_4 x1 x3 x4 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.splitGT_case_4")(x)
+
+
+
+c_splitLT_case_7 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_splitLT(x1)(x7)(x3)(st)
+c_splitLT_case_7 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_splitLT_case_6(x1)(x3)(x4)(x5)(x7)(x8)(Curry.Module.Prelude.op_61_61(x3)(x4)(st))(st)
+c_splitLT_case_7 x1 x3 x4 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_splitLT_case_7(x1)(x3)(x4)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_splitLT_case_7 x1 x3 x4 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.splitLT_case_7")(x)
+
+
+
+c_splitLT_case_6 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = x7
+c_splitLT_case_6 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x4)(x5)(x7)(Curry.Module.FiniteMap.c_splitLT(x1)(x8)(x3)(st))(st)
+c_splitLT_case_6 x1 x3 x4 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_splitLT_case_6(x1)(x3)(x4)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_splitLT_case_6 x1 x3 x4 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.splitLT_case_6")(x)
+
+
+
+c_glueVBal_case_11 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x3
+c_glueVBal_case_11 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_glueVBal_case_10(x1)(x2)(x3)(Curry.Module.FiniteMap.c_isEmptyFM'39(x3)(st))(st)
+c_glueVBal_case_11 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal_case_11(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_glueVBal_case_11 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal_case_11")(x)
+
+
+
+c_glueVBal_case_10 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x2
+c_glueVBal_case_10 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = let {x14 = Curry.Module.FiniteMap.c_sizeFM'39(x2)(st)} in let {x15 = Curry.Module.FiniteMap.c_sizeFM'39(x3)(st)} in Curry.Module.FiniteMap.c_glueVBal_case_9(x1)(x2)(x3)(x14)(x15)(Curry.Module.Prelude.op_60(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x14)(st))(x15)(st))(st)
+c_glueVBal_case_10 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal_case_10(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_glueVBal_case_10 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal_case_10")(x)
+
+
+
+c_glueVBal_case_9 x1 x2 x3 x14 x15 x16@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch(Curry.Module.FiniteMap.c_glueVBal'46_'35selFP12'35key_r(x3)(st))(Curry.Module.FiniteMap.c_glueVBal'46_'35selFP13'35elt_r(x3)(st))(Curry.Module.FiniteMap.c_glueVBal(x1)(x2)(Curry.Module.FiniteMap.c_glueVBal'46_'35selFP14'35fm_rl(x3)(st))(st))(Curry.Module.FiniteMap.c_glueVBal'46_'35selFP15'35fm_rr(x3)(st))(st)
+c_glueVBal_case_9 x1 x2 x3 x14 x15 x16@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_glueVBal_case_8(x1)(x2)(x3)(x14)(x15)(Curry.Module.Prelude.op_60(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x15)(st))(x14)(st))(st)
+c_glueVBal_case_9 x1 x2 x3 x14 x15 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal_case_9(x1)(x2)(x3)(x14)(x15)(x)(st))(i)(xs)(st)
+c_glueVBal_case_9 x1 x2 x3 x14 x15 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal_case_9")(x)
+
+
+
+c_glueVBal_case_8 x1 x2 x3 x14 x15 x16@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch(Curry.Module.FiniteMap.c_glueVBal'46_'35selFP16'35key_l(x2)(st))(Curry.Module.FiniteMap.c_glueVBal'46_'35selFP17'35elt_l(x2)(st))(Curry.Module.FiniteMap.c_glueVBal'46_'35selFP18'35fm_ll(x2)(st))(Curry.Module.FiniteMap.c_glueVBal(x1)(Curry.Module.FiniteMap.c_glueVBal'46_'35selFP19'35fm_lr(x2)(st))(x3)(st))(st)
+c_glueVBal_case_8 x1 x2 x3 x14 x15 x16@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_glueBal(x1)(x2)(x3)(st)
+c_glueVBal_case_8 x1 x2 x3 x14 x15 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueVBal_case_8(x1)(x2)(x3)(x14)(x15)(x)(st))(i)(xs)(st)
+c_glueVBal_case_8 x1 x2 x3 x14 x15 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueVBal_case_8")(x)
+
+
+
+c_glueBal_case_14 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x3
+c_glueBal_case_14 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_glueBal_case_13(x1)(x2)(x3)(Curry.Module.FiniteMap.c_isEmptyFM'39(x3)(st))(st)
+c_glueBal_case_14 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueBal_case_14(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_glueBal_case_14 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueBal_case_14")(x)
+
+
+
+c_glueBal_case_13 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x2
+c_glueBal_case_13 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = let {x4 = Curry.Module.FiniteMap.c_findMax(x2)(st)} in let {x7 = Curry.Module.FiniteMap.c_findMin(x3)(st)} in Curry.Module.FiniteMap.c_glueBal_case_12(x1)(x2)(x3)(x4)(x7)(Curry.Module.Prelude.op_62(Curry.Module.FiniteMap.c_sizeFM'39(x3)(st))(Curry.Module.FiniteMap.c_sizeFM'39(x2)(st))(st))(st)
+c_glueBal_case_13 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueBal_case_13(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_glueBal_case_13 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueBal_case_13")(x)
+
+
+
+c_glueBal_case_12 x1 x2 x3 x4 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch(Curry.Module.FiniteMap.c_glueBal'46_'35selFP6'35mid_key2(x7)(st))(Curry.Module.FiniteMap.c_glueBal'46_'35selFP7'35mid_elt2(x7)(st))(x2)(Curry.Module.FiniteMap.c_deleteMin(x1)(x3)(st))(st)
+c_glueBal_case_12 x1 x2 x3 x4 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkBalBranch(Curry.Module.FiniteMap.c_glueBal'46_'35selFP8'35mid_key1(x4)(st))(Curry.Module.FiniteMap.c_glueBal'46_'35selFP9'35mid_elt1(x4)(st))(Curry.Module.FiniteMap.c_deleteMax(x1)(x2)(st))(x3)(st)
+c_glueBal_case_12 x1 x2 x3 x4 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_glueBal_case_12(x1)(x2)(x3)(x4)(x7)(x)(st))(i)(xs)(st)
+c_glueBal_case_12 x1 x2 x3 x4 x7 x st = Curry.RunTimeSystem.patternFail("FiniteMap.glueBal_case_12")(x)
+
+
+
+c_mkVBalBranch_case_18 x1 x2 x3 x6 x7 x8 x9 x10 x5@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.c_addToFM'39(x1)(Curry.Module.FiniteMap.C_Branch(x6)(x7)(x8)(x9)(x10))(x2)(x3)(st)
+c_mkVBalBranch_case_18 x1 x2 x3 x6 x7 x8 x9 x10 x5@(Curry.Module.FiniteMap.C_Branch x11 x12 x13 x14 x15) st = let {x16 = Curry.Module.FiniteMap.C_Branch(x6)(x7)(x8)(x9)(x10)} in let {x17 = Curry.Module.FiniteMap.C_Branch(x11)(x12)(x13)(x14)(x15)} in let {x18 = Curry.Module.FiniteMap.c_sizeFM'39(x16)(st)} in let {x19 = Curry.Module.FiniteMap.c_sizeFM'39(x17)(st)} in Curry.Module.FiniteMap.c_mkVBalBranch_case_17(x1)(x2)(x3)(x6)(x7)(x9)(x10)(x11)(x12)(x14)(x15)(x16)(x17)(x18)(x19)(Curry.Module.Prelude.op_60(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x18)(st))(x19)(st))(st)
+c_mkVBalBranch_case_18 x1 x2 x3 x6 x7 x8 x9 x10 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkVBalBranch_case_18(x1)(x2)(x3)(x6)(x7)(x8)(x9)(x10)(x)(st))(i)(xs)(st)
+c_mkVBalBranch_case_18 x1 x2 x3 x6 x7 x8 x9 x10 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkVBalBranch_case_18")(x)
+
+
+
+c_mkVBalBranch_case_17 x1 x2 x3 x6 x7 x9 x10 x11 x12 x14 x15 x16 x17 x18 x19 x20@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch(x11)(x12)(Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x2)(x3)(x16)(x14)(st))(x15)(st)
+c_mkVBalBranch_case_17 x1 x2 x3 x6 x7 x9 x10 x11 x12 x14 x15 x16 x17 x18 x19 x20@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkVBalBranch_case_16(x1)(x2)(x3)(x6)(x7)(x9)(x10)(x16)(x17)(x18)(x19)(Curry.Module.Prelude.op_60(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x19)(st))(x18)(st))(st)
+c_mkVBalBranch_case_17 x1 x2 x3 x6 x7 x9 x10 x11 x12 x14 x15 x16 x17 x18 x19 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkVBalBranch_case_17(x1)(x2)(x3)(x6)(x7)(x9)(x10)(x11)(x12)(x14)(x15)(x16)(x17)(x18)(x19)(x)(st))(i)(xs)(st)
+c_mkVBalBranch_case_17 x1 x2 x3 x6 x7 x9 x10 x11 x12 x14 x15 x16 x17 x18 x19 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkVBalBranch_case_17")(x)
+
+
+
+c_mkVBalBranch_case_16 x1 x2 x3 x6 x7 x9 x10 x16 x17 x18 x19 x20@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch(x6)(x7)(x9)(Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x2)(x3)(x10)(x17)(st))(st)
+c_mkVBalBranch_case_16 x1 x2 x3 x6 x7 x9 x10 x16 x17 x18 x19 x20@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkVBalBranch_case_15(x2)(x3)(x16)(x17)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_mkVBalBranch_case_16 x1 x2 x3 x6 x7 x9 x10 x16 x17 x18 x19 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkVBalBranch_case_16(x1)(x2)(x3)(x6)(x7)(x9)(x10)(x16)(x17)(x18)(x19)(x)(st))(i)(xs)(st)
+c_mkVBalBranch_case_16 x1 x2 x3 x6 x7 x9 x10 x16 x17 x18 x19 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkVBalBranch_case_16")(x)
+
+
+
+c_mkVBalBranch_case_15 x2 x3 x16 x17 x18@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(x2)(x3)(x16)(x17)(st)
+c_mkVBalBranch_case_15 x2 x3 x16 x17 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkVBalBranch_case_15(x2)(x3)(x16)(x17)(x)(st))(i)(xs)(st)
+c_mkVBalBranch_case_15 x2 x3 x16 x17 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkVBalBranch_case_15")(x)
+
+
+
+c_mkBalBranch'46double_R'46273_case_19 x1 x2 x4 x5 x6 x8 x9@(Curry.Module.FiniteMap.C_Branch x10 x11 x12 x13 x14) st = Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(x10)(x11)(Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(x5)(x6)(x8)(x13)(st))(Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(x2)(x1)(x14)(x4)(st))(st)
+c_mkBalBranch'46double_R'46273_case_19 x1 x2 x4 x5 x6 x8 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch'46double_R'46273_case_19(x1)(x2)(x4)(x5)(x6)(x8)(x)(st))(i)(xs)(st)
+c_mkBalBranch'46double_R'46273_case_19 x1 x2 x4 x5 x6 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch.double_R.273_case_19")(x)
+
+
+
+c_mkBalBranch'46double_L'46273_case_20 x1 x2 x3 x5 x6 x9 x8@(Curry.Module.FiniteMap.C_Branch x10 x11 x12 x13 x14) st = Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x10)(x11)(Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(x2)(x1)(x3)(x13)(st))(Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(x5)(x6)(x14)(x9)(st))(st)
+c_mkBalBranch'46double_L'46273_case_20 x1 x2 x3 x5 x6 x9 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch'46double_L'46273_case_20(x1)(x2)(x3)(x5)(x6)(x9)(x)(st))(i)(xs)(st)
+c_mkBalBranch'46double_L'46273_case_20 x1 x2 x3 x5 x6 x9 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch.double_L.273_case_20")(x)
+
+
+
+c_mkBalBranch_case_28 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(x1)(x2)(x3)(x4)(st)
+c_mkBalBranch_case_28 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkBalBranch_case_27(x1)(x2)(x3)(x4)(x5)(x6)(Curry.Module.Prelude.op_62(x6)(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x5)(st))(st))(st)
+c_mkBalBranch_case_28 x1 x2 x3 x4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch_case_28(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_mkBalBranch_case_28 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch_case_28")(x)
+
+
+
+c_mkBalBranch_case_27 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch_case_26(x1)(x2)(x3)(x4)(st)
+c_mkBalBranch_case_27 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkBalBranch_case_24(x1)(x2)(x3)(x4)(x5)(x6)(Curry.Module.Prelude.op_62(x5)(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x6)(st))(st))(st)
+c_mkBalBranch_case_27 x1 x2 x3 x4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch_case_27(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_mkBalBranch_case_27 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch_case_27")(x)
+
+
+
+c_mkBalBranch_case_24 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch_case_23(x1)(x2)(x4)(x3)(st)
+c_mkBalBranch_case_24 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkBalBranch_case_21(x1)(x2)(x3)(x4)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_mkBalBranch_case_24 x1 x2 x3 x4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch_case_24(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_mkBalBranch_case_24 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch_case_24")(x)
+
+
+
+c_mkBalBranch_case_21 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBranch(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x1)(x2)(x3)(x4)(st)
+c_mkBalBranch_case_21 x1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch_case_21(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_mkBalBranch_case_21 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch_case_21")(x)
+
+
+
+c_mkBalBranch_case_23 x1 x2 x4 x3@(Curry.Module.FiniteMap.C_Branch x12 x13 x14 x15 x16) st = Curry.Module.FiniteMap.c_mkBalBranch_case_22(x1)(x2)(x3)(x4)(x15)(x16)(Curry.Module.Prelude.op_60(Curry.Module.FiniteMap.c_sizeFM'39(x16)(st))(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.FiniteMap.c_sizeFM'39(x15)(st))(st))(st))(st)
+c_mkBalBranch_case_23 x1 x2 x4 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch_case_23(x1)(x2)(x4)(x)(st))(i)(xs)(st)
+c_mkBalBranch_case_23 x1 x2 x4 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch_case_23")(x)
+
+
+
+c_mkBalBranch_case_22 x1 x2 x3 x4 x15 x16 x17@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch'46single_R'46273(x2)(x1)(x3)(x4)(st)
+c_mkBalBranch_case_22 x1 x2 x3 x4 x15 x16 x17@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkBalBranch'46double_R'46273(x2)(x1)(x3)(x4)(st)
+c_mkBalBranch_case_22 x1 x2 x3 x4 x15 x16 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch_case_22(x1)(x2)(x3)(x4)(x15)(x16)(x)(st))(i)(xs)(st)
+c_mkBalBranch_case_22 x1 x2 x3 x4 x15 x16 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch_case_22")(x)
+
+
+
+c_mkBalBranch_case_26 x1 x2 x3 x4@(Curry.Module.FiniteMap.C_Branch x7 x8 x9 x10 x11) st = Curry.Module.FiniteMap.c_mkBalBranch_case_25(x1)(x2)(x3)(x4)(x10)(x11)(Curry.Module.Prelude.op_60(Curry.Module.FiniteMap.c_sizeFM'39(x10)(st))(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.FiniteMap.c_sizeFM'39(x11)(st))(st))(st))(st)
+c_mkBalBranch_case_26 x1 x2 x3 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch_case_26(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_mkBalBranch_case_26 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch_case_26")(x)
+
+
+
+c_mkBalBranch_case_25 x1 x2 x3 x4 x10 x11 x12@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch'46single_L'46273(x2)(x1)(x3)(x4)(st)
+c_mkBalBranch_case_25 x1 x2 x3 x4 x10 x11 x12@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkBalBranch'46double_L'46273(x2)(x1)(x3)(x4)(st)
+c_mkBalBranch_case_25 x1 x2 x3 x4 x10 x11 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_mkBalBranch_case_25(x1)(x2)(x3)(x4)(x10)(x11)(x)(st))(i)(xs)(st)
+c_mkBalBranch_case_25 x1 x2 x3 x4 x10 x11 x st = Curry.RunTimeSystem.patternFail("FiniteMap.mkBalBranch_case_25")(x)
+
+
+
+c_maxFM'46max'46223_case_30 x2 x3 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Just(Curry.Module.Prelude.T2(x2)(x3))
+c_maxFM'46max'46223_case_30 x2 x3 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_maxFM'46max'46223_case_29(x6)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_maxFM'46max'46223_case_30 x2 x3 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_maxFM'46max'46223_case_30(x2)(x3)(x6)(x)(st))(i)(xs)(st)
+c_maxFM'46max'46223_case_30 x2 x3 x6 x st = Curry.RunTimeSystem.patternFail("FiniteMap.maxFM.max.223_case_30")(x)
+
+
+
+c_maxFM'46max'46223_case_29 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_maxFM'46max'46223(x6)(st)
+c_maxFM'46max'46223_case_29 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_maxFM'46max'46223_case_29(x6)(x)(st))(i)(xs)(st)
+c_maxFM'46max'46223_case_29 x6 x st = Curry.RunTimeSystem.patternFail("FiniteMap.maxFM.max.223_case_29")(x)
+
+
+
+c_minFM'46min'46215_case_32 x2 x3 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Just(Curry.Module.Prelude.T2(x2)(x3))
+c_minFM'46min'46215_case_32 x2 x3 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_minFM'46min'46215_case_31(x5)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_minFM'46min'46215_case_32 x2 x3 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_minFM'46min'46215_case_32(x2)(x3)(x5)(x)(st))(i)(xs)(st)
+c_minFM'46min'46215_case_32 x2 x3 x5 x st = Curry.RunTimeSystem.patternFail("FiniteMap.minFM.min.215_case_32")(x)
+
+
+
+c_minFM'46min'46215_case_31 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_minFM'46min'46215(x5)(st)
+c_minFM'46min'46215_case_31 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_minFM'46min'46215_case_31(x5)(x)(st))(i)(xs)(st)
+c_minFM'46min'46215_case_31 x5 x st = Curry.RunTimeSystem.patternFail("FiniteMap.minFM.min.215_case_31")(x)
+
+
+
+c_lookupWithDefaultFM_case_33 x1 x2 x3 x4@Curry.Module.Prelude.C_Nothing st = x2
+c_lookupWithDefaultFM_case_33 x1 x2 x3 (Curry.Module.Prelude.C_Just x4) st = x4
+c_lookupWithDefaultFM_case_33 x1 x2 x3 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_lookupWithDefaultFM_case_33(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_lookupWithDefaultFM_case_33 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("FiniteMap.lookupWithDefaultFM_case_33")(x)
+
+
+
+c_lookupFM'39_case_35 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_lookupFM'39(x1)(x7)(x3)(st)
+c_lookupFM'39_case_35 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_lookupFM'39_case_34(x1)(x3)(x4)(x5)(x8)(Curry.Module.Prelude.op_61_61(x3)(x4)(st))(st)
+c_lookupFM'39_case_35 x1 x3 x4 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_lookupFM'39_case_35(x1)(x3)(x4)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_lookupFM'39_case_35 x1 x3 x4 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.lookupFM'_case_35")(x)
+
+
+
+c_lookupFM'39_case_34 x1 x3 x4 x5 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Just(x5)
+c_lookupFM'39_case_34 x1 x3 x4 x5 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_lookupFM'39(x1)(x8)(x3)(st)
+c_lookupFM'39_case_34 x1 x3 x4 x5 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_lookupFM'39_case_34(x1)(x3)(x4)(x5)(x8)(x)(st))(i)(xs)(st)
+c_lookupFM'39_case_34 x1 x3 x4 x5 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.lookupFM'_case_34")(x)
+
+
+
+c_sizeFM_case_36 x3@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.Prelude.C_Zero
+c_sizeFM_case_36 x3@(Curry.Module.FiniteMap.C_Branch x4 x5 x6 x7 x8) st = x6
+c_sizeFM_case_36 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_sizeFM_case_36(x)(st))(i)(xs)(st)
+c_sizeFM_case_36 x st = Curry.RunTimeSystem.patternFail("FiniteMap.sizeFM_case_36")(x)
+
+
+
+c_filterFM'39_case_38 x1 x2 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x4)(x5)(Curry.Module.FiniteMap.c_filterFM'39(x1)(x2)(x7)(st))(Curry.Module.FiniteMap.c_filterFM'39(x1)(x2)(x8)(st))(st)
+c_filterFM'39_case_38 x1 x2 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_filterFM'39_case_37(x1)(x2)(x7)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_filterFM'39_case_38 x1 x2 x4 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_filterFM'39_case_38(x1)(x2)(x4)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_filterFM'39_case_38 x1 x2 x4 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.filterFM'_case_38")(x)
+
+
+
+c_filterFM'39_case_37 x1 x2 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_glueVBal(x1)(Curry.Module.FiniteMap.c_filterFM'39(x1)(x2)(x7)(st))(Curry.Module.FiniteMap.c_filterFM'39(x1)(x2)(x8)(st))(st)
+c_filterFM'39_case_37 x1 x2 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_filterFM'39_case_37(x1)(x2)(x7)(x8)(x)(st))(i)(xs)(st)
+c_filterFM'39_case_37 x1 x2 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.filterFM'_case_37")(x)
+
+
+
+c_intersectFM_C'39_case_41 x1 x2 x5 x6 x8 x9 x3@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_EmptyFM
+c_intersectFM_C'39_case_41 x1 x2 x5 x6 x8 x9 x3@(Curry.Module.FiniteMap.C_Branch x10 x11 x12 x13 x14) st = let {x15 = Curry.Module.FiniteMap.C_Branch(x10)(x11)(x12)(x13)(x14)} in let {x16 = Curry.Module.FiniteMap.c_splitLT(x1)(x15)(x5)(st)} in let {x17 = Curry.Module.FiniteMap.c_splitGT(x1)(x15)(x5)(st)} in let {x18 = Curry.Module.FiniteMap.c_lookupFM'39(x1)(x15)(x5)(st)} in Curry.Module.FiniteMap.c_intersectFM_C'39_case_40(x1)(x2)(x5)(x6)(x8)(x9)(x16)(x17)(x18)(Curry.Module.Maybe.c_isJust(x18)(st))(st)
+c_intersectFM_C'39_case_41 x1 x2 x5 x6 x8 x9 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM_C'39_case_41(x1)(x2)(x5)(x6)(x8)(x9)(x)(st))(i)(xs)(st)
+c_intersectFM_C'39_case_41 x1 x2 x5 x6 x8 x9 x st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM_C'_case_41")(x)
+
+
+
+c_intersectFM_C'39_case_40 x1 x2 x5 x6 x8 x9 x16 x17 x18 x19@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x5)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(Curry.Module.FiniteMap.c_intersectFM_C'39'46_'35selFP3'35elt1'39(x18)(st))(st))(x6)(st))(Curry.Module.FiniteMap.c_intersectFM_C'39(x1)(x2)(x16)(x8)(st))(Curry.Module.FiniteMap.c_intersectFM_C'39(x1)(x2)(x17)(x9)(st))(st)
+c_intersectFM_C'39_case_40 x1 x2 x5 x6 x8 x9 x16 x17 x18 x19@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_intersectFM_C'39_case_39(x1)(x2)(x8)(x9)(x16)(x17)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_intersectFM_C'39_case_40 x1 x2 x5 x6 x8 x9 x16 x17 x18 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM_C'39_case_40(x1)(x2)(x5)(x6)(x8)(x9)(x16)(x17)(x18)(x)(st))(i)(xs)(st)
+c_intersectFM_C'39_case_40 x1 x2 x5 x6 x8 x9 x16 x17 x18 x st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM_C'_case_40")(x)
+
+
+
+c_intersectFM_C'39_case_39 x1 x2 x8 x9 x16 x17 x18@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_glueVBal(x1)(Curry.Module.FiniteMap.c_intersectFM_C'39(x1)(x2)(x16)(x8)(st))(Curry.Module.FiniteMap.c_intersectFM_C'39(x1)(x2)(x17)(x9)(st))(st)
+c_intersectFM_C'39_case_39 x1 x2 x8 x9 x16 x17 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM_C'39_case_39(x1)(x2)(x8)(x9)(x16)(x17)(x)(st))(i)(xs)(st)
+c_intersectFM_C'39_case_39 x1 x2 x8 x9 x16 x17 x st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM_C'_case_39")(x)
+
+
+
+c_intersectFM_C_case_42 x1 x4 x5 x3@(Curry.Module.FiniteMap.C_FM x6 x7) st = Curry.Module.FiniteMap.C_FM(x4)(Curry.Module.FiniteMap.c_intersectFM_C'39(x4)(x1)(x5)(x7)(st))
+c_intersectFM_C_case_42 x1 x4 x5 (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM_C_case_42(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_intersectFM_C_case_42 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM_C_case_42")(x)
+
+
+
+c_intersectFM_case_43 x3 x4 x2@(Curry.Module.FiniteMap.C_FM x5 x6) st = Curry.Module.FiniteMap.C_FM(x3)(Curry.Module.FiniteMap.c_intersectFM'39(x3)(x4)(x6)(st))
+c_intersectFM_case_43 x3 x4 (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_intersectFM_case_43(x3)(x4)(x)(st))(i)(xs)(st)
+c_intersectFM_case_43 x3 x4 x st = Curry.RunTimeSystem.patternFail("FiniteMap.intersectFM_case_43")(x)
+
+
+
+c_minusFM'39_case_44 x1 x4 x5 x6 x7 x8 x3@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_Branch(x4)(x5)(x6)(x7)(x8)
+c_minusFM'39_case_44 x1 x4 x5 x6 x7 x8 x3@(Curry.Module.FiniteMap.C_Branch x9 x10 x11 x12 x13) st = let {x14 = Curry.Module.FiniteMap.C_Branch(x4)(x5)(x6)(x7)(x8)} in Curry.Module.FiniteMap.c_glueVBal(x1)(Curry.Module.FiniteMap.c_minusFM'39(x1)(Curry.Module.FiniteMap.c_splitLT(x1)(x14)(x9)(st))(x12)(st))(Curry.Module.FiniteMap.c_minusFM'39(x1)(Curry.Module.FiniteMap.c_splitGT(x1)(x14)(x9)(st))(x13)(st))(st)
+c_minusFM'39_case_44 x1 x4 x5 x6 x7 x8 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_minusFM'39_case_44(x1)(x4)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_minusFM'39_case_44 x1 x4 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.minusFM'_case_44")(x)
+
+
+
+c_minusFM_case_45 x3 x4 x2@(Curry.Module.FiniteMap.C_FM x5 x6) st = Curry.Module.FiniteMap.C_FM(x3)(Curry.Module.FiniteMap.c_minusFM'39(x3)(x4)(x6)(st))
+c_minusFM_case_45 x3 x4 (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_minusFM_case_45(x3)(x4)(x)(st))(i)(xs)(st)
+c_minusFM_case_45 x3 x4 x st = Curry.RunTimeSystem.patternFail("FiniteMap.minusFM_case_45")(x)
+
+
+
+c_plusFM_C'39_case_47 x1 x2 x5 x6 x7 x8 x9 x4@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_Branch(x5)(x6)(x7)(x8)(x9)
+c_plusFM_C'39_case_47 x1 x2 x5 x6 x7 x8 x9 x4@(Curry.Module.FiniteMap.C_Branch x10 x11 x12 x13 x14) st = let {x15 = Curry.Module.FiniteMap.C_Branch(x5)(x6)(x7)(x8)(x9)} in Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x10)(Curry.Module.FiniteMap.c_plusFM_C'39_case_46(x1)(x2)(x10)(x11)(x15)(Curry.Module.FiniteMap.c_lookupFM'39(x1)(x15)(x10)(st))(st))(Curry.Module.FiniteMap.c_plusFM_C'39(x1)(x2)(Curry.Module.FiniteMap.c_splitLT(x1)(x15)(x10)(st))(x13)(st))(Curry.Module.FiniteMap.c_plusFM_C'39(x1)(x2)(Curry.Module.FiniteMap.c_splitGT(x1)(x15)(x10)(st))(x14)(st))(st)
+c_plusFM_C'39_case_47 x1 x2 x5 x6 x7 x8 x9 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM_C'39_case_47(x1)(x2)(x5)(x6)(x7)(x8)(x9)(x)(st))(i)(xs)(st)
+c_plusFM_C'39_case_47 x1 x2 x5 x6 x7 x8 x9 x st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM_C'_case_47")(x)
+
+
+
+c_plusFM_C'39_case_46 x1 x2 x10 x11 x15 x16@Curry.Module.Prelude.C_Nothing st = x11
+c_plusFM_C'39_case_46 x1 x2 x10 x11 x15 x16@(Curry.Module.Prelude.C_Just x19) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x19)(st))(x11)(st)
+c_plusFM_C'39_case_46 x1 x2 x10 x11 x15 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM_C'39_case_46(x1)(x2)(x10)(x11)(x15)(x)(st))(i)(xs)(st)
+c_plusFM_C'39_case_46 x1 x2 x10 x11 x15 x st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM_C'_case_46")(x)
+
+
+
+c_plusFM_C_case_48 x1 x4 x5 x3@(Curry.Module.FiniteMap.C_FM x6 x7) st = Curry.Module.FiniteMap.C_FM(x4)(Curry.Module.FiniteMap.c_plusFM_C'39(x4)(x1)(x5)(x7)(st))
+c_plusFM_C_case_48 x1 x4 x5 (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM_C_case_48(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_plusFM_C_case_48 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM_C_case_48")(x)
+
+
+
+c_plusFM'39_case_49 x1 x4 x5 x6 x7 x8 x3@Curry.Module.FiniteMap.C_EmptyFM st = Curry.Module.FiniteMap.C_Branch(x4)(x5)(x6)(x7)(x8)
+c_plusFM'39_case_49 x1 x4 x5 x6 x7 x8 x3@(Curry.Module.FiniteMap.C_Branch x9 x10 x11 x12 x13) st = let {x14 = Curry.Module.FiniteMap.C_Branch(x4)(x5)(x6)(x7)(x8)} in Curry.Module.FiniteMap.c_mkVBalBranch(x1)(x9)(x10)(Curry.Module.FiniteMap.c_plusFM'39(x1)(Curry.Module.FiniteMap.c_splitLT(x1)(x14)(x9)(st))(x12)(st))(Curry.Module.FiniteMap.c_plusFM'39(x1)(Curry.Module.FiniteMap.c_splitGT(x1)(x14)(x9)(st))(x13)(st))(st)
+c_plusFM'39_case_49 x1 x4 x5 x6 x7 x8 (Curry.Module.FiniteMap.C_FiniteMapOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM'39_case_49(x1)(x4)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_plusFM'39_case_49 x1 x4 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM'_case_49")(x)
+
+
+
+c_plusFM_case_50 x3 x4 x2@(Curry.Module.FiniteMap.C_FM x5 x6) st = Curry.Module.FiniteMap.C_FM(x3)(Curry.Module.FiniteMap.c_plusFM'39(x3)(x4)(x6)(st))
+c_plusFM_case_50 x3 x4 (Curry.Module.FiniteMap.C_FMOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_plusFM_case_50(x3)(x4)(x)(st))(i)(xs)(st)
+c_plusFM_case_50 x3 x4 x st = Curry.RunTimeSystem.patternFail("FiniteMap.plusFM_case_50")(x)
+
+
+
+c_updFM'46upd'4649_case_53 x1 x2 x3 x5 x6 x7 x8 x9 x10@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.C_Branch(x5)(Curry.Module.Prelude.c_apply(x1)(x6)(st))(x7)(x8)(x9)
+c_updFM'46upd'4649_case_53 x1 x2 x3 x5 x6 x7 x8 x9 x10@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_updFM'46upd'4649_case_52(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x9)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(x2)(st))(x5)(st))(st)
+c_updFM'46upd'4649_case_53 x1 x2 x3 x5 x6 x7 x8 x9 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_updFM'46upd'4649_case_53(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x9)(x)(st))(i)(xs)(st)
+c_updFM'46upd'4649_case_53 x1 x2 x3 x5 x6 x7 x8 x9 x st = Curry.RunTimeSystem.patternFail("FiniteMap.updFM.upd.49_case_53")(x)
+
+
+
+c_updFM'46upd'4649_case_52 x1 x2 x3 x5 x6 x7 x8 x9 x10@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.C_Branch(x5)(x6)(x7)(Curry.Module.FiniteMap.c_updFM'46upd'4649(x1)(x2)(x3)(x8)(st))(x9)
+c_updFM'46upd'4649_case_52 x1 x2 x3 x5 x6 x7 x8 x9 x10@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_updFM'46upd'4649_case_51(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x9)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_updFM'46upd'4649_case_52 x1 x2 x3 x5 x6 x7 x8 x9 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_updFM'46upd'4649_case_52(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x9)(x)(st))(i)(xs)(st)
+c_updFM'46upd'4649_case_52 x1 x2 x3 x5 x6 x7 x8 x9 x st = Curry.RunTimeSystem.patternFail("FiniteMap.updFM.upd.49_case_52")(x)
+
+
+
+c_updFM'46upd'4649_case_51 x1 x2 x3 x5 x6 x7 x8 x9 x10@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.C_Branch(x5)(x6)(x7)(x8)(Curry.Module.FiniteMap.c_updFM'46upd'4649(x1)(x2)(x3)(x9)(st))
+c_updFM'46upd'4649_case_51 x1 x2 x3 x5 x6 x7 x8 x9 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_updFM'46upd'4649_case_51(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x9)(x)(st))(i)(xs)(st)
+c_updFM'46upd'4649_case_51 x1 x2 x3 x5 x6 x7 x8 x9 x st = Curry.RunTimeSystem.patternFail("FiniteMap.updFM.upd.49_case_51")(x)
+
+
+
+c_delFromFM'39_case_55 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch(x4)(x5)(Curry.Module.FiniteMap.c_delFromFM'39(x1)(x7)(x3)(st))(x8)(st)
+c_delFromFM'39_case_55 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_delFromFM'39_case_54(x1)(x3)(x4)(x5)(x7)(x8)(Curry.Module.Prelude.op_61_61(x3)(x4)(st))(st)
+c_delFromFM'39_case_55 x1 x3 x4 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_delFromFM'39_case_55(x1)(x3)(x4)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_delFromFM'39_case_55 x1 x3 x4 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.delFromFM'_case_55")(x)
+
+
+
+c_delFromFM'39_case_54 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_glueBal(x1)(x7)(x8)(st)
+c_delFromFM'39_case_54 x1 x3 x4 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkBalBranch(x4)(x5)(x7)(Curry.Module.FiniteMap.c_delFromFM'39(x1)(x8)(x3)(st))(st)
+c_delFromFM'39_case_54 x1 x3 x4 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_delFromFM'39_case_54(x1)(x3)(x4)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_delFromFM'39_case_54 x1 x3 x4 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("FiniteMap.delFromFM'_case_54")(x)
+
+
+
+c_addToFM_C'39_case_57 x1 x2 x4 x5 x6 x7 x8 x9 x10 x11@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.c_mkBalBranch(x6)(x7)(Curry.Module.FiniteMap.c_addToFM_C'39(x1)(x2)(x9)(x4)(x5)(st))(x10)(st)
+c_addToFM_C'39_case_57 x1 x2 x4 x5 x6 x7 x8 x9 x10 x11@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_addToFM_C'39_case_56(x1)(x2)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(Curry.Module.Prelude.op_61_61(x4)(x6)(st))(st)
+c_addToFM_C'39_case_57 x1 x2 x4 x5 x6 x7 x8 x9 x10 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_addToFM_C'39_case_57(x1)(x2)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x)(st))(i)(xs)(st)
+c_addToFM_C'39_case_57 x1 x2 x4 x5 x6 x7 x8 x9 x10 x st = Curry.RunTimeSystem.patternFail("FiniteMap.addToFM_C'_case_57")(x)
+
+
+
+c_addToFM_C'39_case_56 x1 x2 x4 x5 x6 x7 x8 x9 x10 x11@Curry.Module.Prelude.C_True st = Curry.Module.FiniteMap.C_Branch(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x7)(st))(x5)(st))(x8)(x9)(x10)
+c_addToFM_C'39_case_56 x1 x2 x4 x5 x6 x7 x8 x9 x10 x11@Curry.Module.Prelude.C_False st = Curry.Module.FiniteMap.c_mkBalBranch(x6)(x7)(x9)(Curry.Module.FiniteMap.c_addToFM_C'39(x1)(x2)(x10)(x4)(x5)(st))(st)
+c_addToFM_C'39_case_56 x1 x2 x4 x5 x6 x7 x8 x9 x10 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.FiniteMap.c_addToFM_C'39_case_56(x1)(x2)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x)(st))(i)(xs)(st)
+c_addToFM_C'39_case_56 x1 x2 x4 x5 x6 x7 x8 x9 x10 x st = Curry.RunTimeSystem.patternFail("FiniteMap.addToFM_C'_case_56")(x)
+
+
diff --git a/dist/build/Curry/Module/Float.hs b/dist/build/Curry/Module/Float.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Float.hs
@@ -0,0 +1,274 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Float (module Curry.Module.Float) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+instance Fractional C_Float where
+  fromRational x = PrimValue (fromRational x)
+  recip (PrimValue x) = PrimValue (recip x)
+
+instance Floating C_Float where
+  pi = PrimValue pi
+  exp (PrimValue x) = PrimValue (exp x)
+  log (PrimValue x) = PrimValue (log x)
+  sin (PrimValue x) = PrimValue (sin x)
+  cos (PrimValue x) = PrimValue (cos x)
+  sinh (PrimValue x) = PrimValue (sinh x)
+  cosh (PrimValue x) = PrimValue (cosh x)
+  asin (PrimValue x) = PrimValue (asin x)
+  acos (PrimValue x) = PrimValue (acos x)
+  atan (PrimValue x) = PrimValue (atan x)
+  asinh (PrimValue x) = PrimValue (asinh x)
+  acosh (PrimValue x) = PrimValue (acosh x)
+  atanh (PrimValue x) = PrimValue (atanh x)
+  
+instance RealFrac C_Float where
+  properFraction (PrimValue x) = case properFraction x of (b,a) -> (b,PrimValue a)
+
+prim_Float_plus :: C_Float -> C_Float -> Result C_Float
+prim_Float_plus x y _ = x+y
+
+prim_Float_minus :: C_Float -> C_Float -> Result C_Float
+prim_Float_minus x y _ = x-y
+
+prim_Float_times :: C_Float -> C_Float -> Result C_Float
+prim_Float_times x y _ = x*y
+
+prim_Float_divide :: C_Float -> C_Float -> Result C_Float
+prim_Float_divide x y _ = x/y
+
+prim_Float_lt :: C_Float -> C_Float -> Result C_Bool
+prim_Float_lt x y _ = toCurry (x<y)
+
+prim_Float_gt :: C_Float -> C_Float -> Result C_Bool
+prim_Float_gt x y _ = toCurry (x>y)
+
+prim_Float_leq :: C_Float -> C_Float -> Result C_Bool
+prim_Float_leq x y _ = toCurry (x<=y)
+
+prim_Float_geq :: C_Float -> C_Float -> Result C_Bool
+prim_Float_geq x y _ = toCurry (x>=y)
+
+prim_i2f :: C_Int -> Result C_Float
+prim_i2f x _ = fromInteger (fromCurry x)
+
+prim_truncate :: C_Float -> Result C_Int
+prim_truncate x _ = toCurry (truncate x :: Integer)
+
+prim_round :: C_Float  -> Result C_Int
+prim_round x _ = toCurry (round x :: Integer)
+
+prim_sqrt :: C_Float  -> Result C_Float
+prim_sqrt x _ = sqrt x
+
+prim_log :: C_Float   -> Result C_Float
+prim_log x _ = log x
+
+prim_exp :: C_Float   -> Result C_Float
+prim_exp x _ = exp x
+
+prim_sin :: C_Float   -> Result C_Float
+prim_sin x _ = sin x
+
+prim_cos :: C_Float   -> Result C_Float
+prim_cos x _ = cos x
+
+prim_tan :: C_Float   -> Result C_Float
+prim_tan x _ = tan x
+
+prim_atan :: C_Float   -> Result C_Float
+prim_atan x _ = atan x
+
+
+
+-- end included
+
+op_43_46 :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+op_43_46 x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Float.c_prim_Float_plus))(x1)(st))(x2)(st)
+
+
+
+op_45_46 :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+op_45_46 x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Float.c_prim_Float_minus))(x1)(st))(x2)(st)
+
+
+
+op_42_46 :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+op_42_46 x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Float.c_prim_Float_times))(x1)(st))(x2)(st)
+
+
+
+op_47_46 :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+op_47_46 x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Float.c_prim_Float_divide))(x1)(st))(x2)(st)
+
+
+
+op_60_46 :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_60_46 x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Float.c_prim_Float_lt))(x1)(st))(x2)(st)
+
+
+
+op_62_46 :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_62_46 x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Float.c_prim_Float_gt))(x1)(st))(x2)(st)
+
+
+
+op_60_61_46 :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_60_61_46 x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Float.c_prim_Float_leq))(x1)(st))(x2)(st)
+
+
+
+op_62_61_46 :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_62_61_46 x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Float.c_prim_Float_geq))(x1)(st))(x2)(st)
+
+
+
+c_i2f :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_i2f x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_i2f))(x1)(st)
+
+
+
+c_truncate :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_truncate x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_truncate))(x1)(st)
+
+
+
+c_round :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_round x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_round))(x1)(st)
+
+
+
+c_sqrt :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_sqrt x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_sqrt))(x1)(st)
+
+
+
+c_log :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_log x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_log))(x1)(st)
+
+
+
+c_exp :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_exp x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_exp))(x1)(st)
+
+
+
+c_sin :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_sin x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_sin))(x1)(st)
+
+
+
+c_cos :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_cos x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_cos))(x1)(st)
+
+
+
+c_tan :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_tan x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_tan))(x1)(st)
+
+
+
+c_atan :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_atan x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Float.c_prim_atan))(x1)(st)
+
+
+
+c_prim_Float_plus :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_Float_plus x1 x2 st = Curry.Module.Float.prim_Float_plus(x1)(x2)(st)
+
+
+
+c_prim_Float_minus :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_Float_minus x1 x2 st = Curry.Module.Float.prim_Float_minus(x1)(x2)(st)
+
+
+
+c_prim_Float_times :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_Float_times x1 x2 st = Curry.Module.Float.prim_Float_times(x1)(x2)(st)
+
+
+
+c_prim_Float_divide :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_Float_divide x1 x2 st = Curry.Module.Float.prim_Float_divide(x1)(x2)(st)
+
+
+
+c_prim_Float_lt :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_prim_Float_lt x1 x2 st = Curry.Module.Float.prim_Float_lt(x1)(x2)(st)
+
+
+
+c_prim_Float_gt :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_prim_Float_gt x1 x2 st = Curry.Module.Float.prim_Float_gt(x1)(x2)(st)
+
+
+
+c_prim_Float_leq :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_prim_Float_leq x1 x2 st = Curry.Module.Float.prim_Float_leq(x1)(x2)(st)
+
+
+
+c_prim_Float_geq :: Curry.Module.Prelude.C_Float -> Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_prim_Float_geq x1 x2 st = Curry.Module.Float.prim_Float_geq(x1)(x2)(st)
+
+
+
+c_prim_i2f :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_i2f x1 st = Curry.Module.Float.prim_i2f(x1)(st)
+
+
+
+c_prim_truncate :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_prim_truncate x1 st = Curry.Module.Float.prim_truncate(x1)(st)
+
+
+
+c_prim_round :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_prim_round x1 st = Curry.Module.Float.prim_round(x1)(st)
+
+
+
+c_prim_sqrt :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_sqrt x1 st = Curry.Module.Float.prim_sqrt(x1)(st)
+
+
+
+c_prim_log :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_log x1 st = Curry.Module.Float.prim_log(x1)(st)
+
+
+
+c_prim_exp :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_exp x1 st = Curry.Module.Float.prim_exp(x1)(st)
+
+
+
+c_prim_sin :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_sin x1 st = Curry.Module.Float.prim_sin(x1)(st)
+
+
+
+c_prim_cos :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_cos x1 st = Curry.Module.Float.prim_cos(x1)(st)
+
+
+
+c_prim_tan :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_tan x1 st = Curry.Module.Float.prim_tan(x1)(st)
+
+
+
+c_prim_atan :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Float
+c_prim_atan x1 st = Curry.Module.Float.prim_atan(x1)(st)
+
+
diff --git a/dist/build/Curry/Module/Global.hs b/dist/build/Curry/Module/Global.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Global.hs
@@ -0,0 +1,166 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Global (module Curry.Module.Global) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+import System.IO.Unsafe
+import qualified Data.IORef as Ref
+
+type C_Global t0 = Prim (Ref.IORef t0)
+
+global :: (Curry t0) => t0 -> C_GlobalSpec -> Result (C_Global t0)
+global x spec = ref `seq` (\ _ -> PrimValue ref)
+  where ref = unsafePerformIO (Ref.newIORef x) 
+
+prim_readGlobal :: (Curry t0) => C_Global t0 -> Result (C_IO t0)
+prim_readGlobal  = prim_readIORef
+
+prim_writeGlobal :: (Curry t0) => C_Global t0 -> t0 -> Result (C_IO T0)
+prim_writeGlobal  = prim_writeIORef
+
+----------------------
+-- preparing io ref
+----------------------
+
+type C_IORef a = Prim (Ref.IORef a)
+
+instance Show (Ref.IORef a) where
+  show _ = "IOREF"
+
+instance Read (Ref.IORef a) where
+  readsPrec = error "reading IOREF"
+
+instance Generate (Ref.IORef a) where
+  genFree    = error "free variable of type IOExts.IORef"
+  maxArity _ = error "free variable of type IOExts.IORef"
+
+newIORef :: Curry t0 => t0 -> Result (C_IO (C_IORef t0))
+newIORef x = ioFunc0 (Ref.newIORef x) 
+
+prim_readIORef :: Curry t0 => C_IORef t0 -> Result (C_IO t0)
+prim_readIORef (PrimValue ref) _ = 
+   C_IO (\ _ -> do 
+           v <- Ref.readIORef ref 
+           Prelude.return (IOVal v))
+
+prim_writeIORef :: Curry t0 => C_IORef t0 -> t0 -> Result (C_IO T0)
+prim_writeIORef (PrimValue ref) x = ioFunc0 (Ref.writeIORef ref x) 
+
+
+-- end included
+
+data C_GlobalSpec = C_Temporary
+  | C_Persistent (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+  | C_GlobalSpecFail Curry.RunTimeSystem.C_Exceptions
+  | C_GlobalSpecOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Global.C_GlobalSpec)
+
+instance BaseCurry Curry.Module.Global.C_GlobalSpec where
+  nf f (Curry.Module.Global.C_Persistent x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Global.C_Persistent(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Global.C_Persistent x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Global.C_Persistent(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Global.C_GlobalSpecOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Global.C_Temporary,Curry.Module.Global.C_Persistent(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(1)
+
+  failed  = Curry.Module.Global.C_GlobalSpecFail
+
+  branching  = Curry.Module.Global.C_GlobalSpecOr
+
+  consKind (Curry.Module.Global.C_GlobalSpecOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Global.C_GlobalSpecFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Global.C_GlobalSpecFail x) = x
+
+  orRef (Curry.Module.Global.C_GlobalSpecOr x _) = x
+
+  branches (Curry.Module.Global.C_GlobalSpecOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.Global.C_GlobalSpec where
+  strEq Curry.Module.Global.C_Temporary Curry.Module.Global.C_Temporary st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.Global.C_Persistent x1) (Curry.Module.Global.C_Persistent y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Global.C_Temporary Curry.Module.Global.C_Temporary st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.Global.C_Persistent x1) (Curry.Module.Global.C_Persistent y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Global.C_Temporary st = Curry.Module.Global.C_Temporary
+  propagate f (Curry.Module.Global.C_Persistent x1) st = Curry.Module.Global.C_Persistent(f((0::Int))(x1)(st))
+
+  foldCurry f c Curry.Module.Global.C_Temporary st = c
+  foldCurry f c (Curry.Module.Global.C_Persistent x1) st = f(x1)(c)(st)
+
+  typeName _ = "GlobalSpec"
+
+  showQ _ Curry.Module.Global.C_Temporary = Prelude.showString("Global.Temporary")
+  showQ d (Curry.Module.Global.C_Persistent x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Global.Persistent "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ (Curry.Module.Global.C_GlobalSpecOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Global.C_GlobalSpec where
+  showsPrec _ Curry.Module.Global.C_Temporary = Prelude.showString("Temporary")
+  showsPrec d (Curry.Module.Global.C_Persistent x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Persistent "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ (Curry.Module.Global.C_GlobalSpecOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.Global.C_GlobalSpec where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Global.C_Temporary)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Global")("Temporary")(r)])(r))(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Global.C_Persistent(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Global")("Persistent")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))
+
+
+
+
+
+c_readGlobal :: (Curry t0) => (Curry.Module.Global.C_Global t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_readGlobal x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Global.c_prim_readGlobal))(x1)(st)
+
+
+
+c_writeGlobal :: (Curry t0) => (Curry.Module.Global.C_Global t0) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_writeGlobal x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Global.c_prim_writeGlobal))(x1)(st))(x2)(st)
+
+
+
+c_global :: (Curry t0) => t0 -> Curry.Module.Global.C_GlobalSpec -> Curry.RunTimeSystem.State -> Curry.Module.Global.C_Global t0
+c_global x1 x2 st = Curry.Module.Global.global(x1)(x2)(st)
+
+
+
+c_prim_readGlobal :: (Curry t0) => (Curry.Module.Global.C_Global t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_prim_readGlobal x1 st = Curry.Module.Global.prim_readGlobal(x1)(st)
+
+
+
+c_prim_writeGlobal :: (Curry t0) => (Curry.Module.Global.C_Global t0) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_writeGlobal x1 x2 st = Curry.Module.Global.prim_writeGlobal(x1)(x2)(st)
+
+
diff --git a/dist/build/Curry/Module/GraphInductive.hs b/dist/build/Curry/Module/GraphInductive.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/GraphInductive.hs
@@ -0,0 +1,1020 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.GraphInductive (module Curry.Module.GraphInductive) where
+
+import Curry.RunTimeSystem
+import Curry.Module.FiniteMap
+import Curry.Module.Maybe
+import Curry.Module.Prelude
+import Curry.Module.Sort
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_Node = Curry.Module.Prelude.C_Int
+
+type C_LNode t0 = Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0
+
+type C_UNode = Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.T0
+
+type C_Edge = Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int
+
+type C_LEdge t0 = Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t0
+
+type C_UEdge = Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int Curry.Module.Prelude.T0
+
+type C_Context t0 t1 = Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int))
+
+type C_Adj t0 = Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)
+
+type C_MContext t0 t1 = Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)))
+
+type C_Context'39 t0 t1 = Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int))
+
+type C_UContext = Curry.Module.Prelude.T3 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+
+type C_GDecomp t0 t1 = Curry.Module.Prelude.T2 (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int))) (Curry.Module.GraphInductive.C_Graph t0 t1)
+
+type C_Decomp t0 t1 = Curry.Module.Prelude.T2 (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)))) (Curry.Module.GraphInductive.C_Graph t0 t1)
+
+type C_UDecomp t0 = Curry.Module.Prelude.T2 (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) t0
+
+type C_Path = Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+
+type C_LPath t0 = Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0)
+
+type C_UPath = Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.T0)
+
+type C_GraphRep t0 t1 = Curry.Module.FiniteMap.C_FM Curry.Module.Prelude.C_Int (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)))
+
+type C_UGr = Curry.Module.GraphInductive.C_Graph Curry.Module.Prelude.T0 Curry.Module.Prelude.T0
+
+data C_Graph t0 t1 = C_Gr (Curry.Module.FiniteMap.C_FM Curry.Module.Prelude.C_Int (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int))))
+  | C_GraphFail Curry.RunTimeSystem.C_Exceptions
+  | C_GraphOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.GraphInductive.C_Graph t0 t1))
+
+instance (BaseCurry t0,BaseCurry t1) => BaseCurry (Curry.Module.GraphInductive.C_Graph t0 t1) where
+  nf f (Curry.Module.GraphInductive.C_Gr x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.GraphInductive.C_Gr(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.GraphInductive.C_Gr x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.GraphInductive.C_Gr(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.GraphInductive.C_GraphOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.GraphInductive.C_Gr(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(1)
+
+  failed  = Curry.Module.GraphInductive.C_GraphFail
+
+  branching  = Curry.Module.GraphInductive.C_GraphOr
+
+  consKind (Curry.Module.GraphInductive.C_GraphOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.GraphInductive.C_GraphFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.GraphInductive.C_GraphFail x) = x
+
+  orRef (Curry.Module.GraphInductive.C_GraphOr x _) = x
+
+  branches (Curry.Module.GraphInductive.C_GraphOr _ x) = x
+
+
+
+
+
+instance (Curry t0,Curry t1) => Curry (Curry.Module.GraphInductive.C_Graph t0 t1) where
+  strEq (Curry.Module.GraphInductive.C_Gr x1) (Curry.Module.GraphInductive.C_Gr y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.GraphInductive.C_Gr x1) (Curry.Module.GraphInductive.C_Gr y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.GraphInductive.C_Gr x1) st = Curry.Module.GraphInductive.C_Gr(f((0::Int))(x1)(st))
+
+  foldCurry f c (Curry.Module.GraphInductive.C_Gr x1) st = f(x1)(c)(st)
+
+  typeName _ = "Graph"
+
+  showQ d (Curry.Module.GraphInductive.C_Gr x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("GraphInductive.Gr "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ (Curry.Module.GraphInductive.C_GraphOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1) => Show (Curry.Module.GraphInductive.C_Graph t0 t1) where
+  showsPrec d (Curry.Module.GraphInductive.C_Gr x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Gr "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ (Curry.Module.GraphInductive.C_GraphOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Read t0,Read t1) => Read (Curry.Module.GraphInductive.C_Graph t0 t1) where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.GraphInductive.C_Gr(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("GraphInductive")("Gr")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r)
+
+
+
+
+
+op_58_38 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> (Curry.Module.GraphInductive.C_Graph t1 t0) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t1 t0
+op_58_38 x1@(Curry.Module.Prelude.T4 x3 x4 x5 x6) x2 st = Curry.Module.GraphInductive.c_'58'38_case_38(x3)(x4)(x5)(x6)(x2)(st)
+op_58_38 (Curry.Module.Prelude.T4Or i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.op_58_38(x)(x2)(st))(i)(xs)(st)
+op_58_38 x x2 st = Curry.RunTimeSystem.patternFail("GraphInductive.:&")(x)
+
+
+
+c_matchAny :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int))) (Curry.Module.GraphInductive.C_Graph t0 t1)
+c_matchAny x1@(Curry.Module.GraphInductive.C_Gr x2) st = Curry.Module.GraphInductive.c_matchAny_case_35(x2)(Curry.Module.FiniteMap.c_isEmptyFM(x2)(st))(st)
+c_matchAny (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_matchAny(x)(st))(i)(xs)(st)
+c_matchAny x st = Curry.RunTimeSystem.patternFail("GraphInductive.matchAny")(x)
+
+
+
+c_empty :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t0 t1
+c_empty st = Curry.Module.GraphInductive.C_Gr(Curry.Module.FiniteMap.c_emptyFM(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_60))(st))
+
+
+
+c_mkGraph :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0)) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t1)) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t0 t1
+c_mkGraph x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_insEdges(x2)))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_insNodes(x1)))(st))(Curry.Module.GraphInductive.c_empty(st))(st)
+
+
+
+c_buildGr :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)))) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t1 t0)
+c_buildGr 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.GraphInductive.op_58_38))(Curry.Module.GraphInductive.c_empty(st)))
+
+
+
+c_mkUGraph :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph Curry.Module.Prelude.T0 Curry.Module.Prelude.T0
+c_mkUGraph x1 x2 st = Curry.Module.GraphInductive.c_mkGraph(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_labUNodes(st))(x1)(st))(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_labUEdges(st))(x2)(st))(st)
+
+
+
+c_insNode :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t0 t1)
+c_insNode x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Prelude.pf(Curry.Module.GraphInductive.op_58_38(Curry.Module.Prelude.T4(Curry.Module.Prelude.List)(x2)(x3)(Curry.Module.Prelude.List)))
+c_insNode (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insNode(x)(st))(i)(xs)(st)
+c_insNode x st = Curry.RunTimeSystem.patternFail("GraphInductive.insNode")(x)
+
+
+
+c_insEdge :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t0) -> (Curry.Module.GraphInductive.C_Graph t1 t0) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t1 t0
+c_insEdge x1@(Curry.Module.Prelude.T3 x3 x4 x5) x2 st = let {x6 = Curry.Module.GraphInductive.c_match(x3)(x2)(st)} in Curry.Module.GraphInductive.op_58_38(Curry.Module.Prelude.T4(Curry.Module.GraphInductive.c_insEdge'46_'35selFP3'35pr(x6)(st))(x3)(Curry.Module.GraphInductive.c_insEdge'46_'35selFP4'35la(x6)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2(x5)(x4))(Curry.Module.GraphInductive.c_insEdge'46_'35selFP5'35su(x6)(st))))(Curry.Module.GraphInductive.c_insEdge'46_'35selFP6'35g'39(x6)(st))(st)
+c_insEdge (Curry.Module.Prelude.T3Or i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge(x)(x2)(st))(i)(xs)(st)
+c_insEdge x x2 st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge")(x)
+
+
+
+c_insEdge'46_'35selFP3'35pr :: (Curry t213,Curry t212) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t212 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)))) (Curry.Module.GraphInductive.C_Graph t212 t213)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)
+c_insEdge'46_'35selFP3'35pr x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.GraphInductive.c_insEdge'46_'35selFP3'35pr_case_30(x2)(st)
+c_insEdge'46_'35selFP3'35pr (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP3'35pr(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP3'35pr x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP3#pr")(x)
+
+
+
+c_insEdge'46_'35selFP4'35la :: (Curry t213,Curry t212) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t212 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)))) (Curry.Module.GraphInductive.C_Graph t212 t213)) -> Curry.RunTimeSystem.State -> t212
+c_insEdge'46_'35selFP4'35la x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.GraphInductive.c_insEdge'46_'35selFP4'35la_case_28(x2)(st)
+c_insEdge'46_'35selFP4'35la (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP4'35la(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP4'35la x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP4#la")(x)
+
+
+
+c_insEdge'46_'35selFP5'35su :: (Curry t213,Curry t212) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t212 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)))) (Curry.Module.GraphInductive.C_Graph t212 t213)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)
+c_insEdge'46_'35selFP5'35su x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.GraphInductive.c_insEdge'46_'35selFP5'35su_case_26(x2)(st)
+c_insEdge'46_'35selFP5'35su (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP5'35su(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP5'35su x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP5#su")(x)
+
+
+
+c_insEdge'46_'35selFP6'35g'39 :: (Curry t213,Curry t212) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t212 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t213 Curry.Module.Prelude.C_Int)))) (Curry.Module.GraphInductive.C_Graph t212 t213)) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t212 t213
+c_insEdge'46_'35selFP6'35g'39 x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.GraphInductive.c_insEdge'46_'35selFP6'35g'39_case_24(x3)(x2)(st)
+c_insEdge'46_'35selFP6'35g'39 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP6'35g'39(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP6'35g'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP6#g'")(x)
+
+
+
+c_delNode :: (Curry t0,Curry t1) => Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t0 t1)
+c_delNode x1 st = Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_delNodes((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List)))
+
+
+
+c_delEdge :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t0 t1
+c_delEdge x1@(Curry.Module.Prelude.T2 x3 x4) x2 st = Curry.Module.GraphInductive.c_delEdge_case_22(x2)(x3)(x4)(Curry.Module.GraphInductive.c_match(x3)(x2)(st))(st)
+c_delEdge (Curry.Module.Prelude.T2Or i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_delEdge(x)(x2)(st))(i)(xs)(st)
+c_delEdge x x2 st = Curry.RunTimeSystem.patternFail("GraphInductive.delEdge")(x)
+
+
+
+c_insNodes :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0)) -> (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t0 t1
+c_insNodes x1 x2 st = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_insNode))(x2)(x1)(st)
+
+
+
+c_insEdges :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t0)) -> (Curry.Module.GraphInductive.C_Graph t1 t0) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t1 t0
+c_insEdges x1 x2 st = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_insEdge))(x2)(x1)(st)
+
+
+
+c_delNodes :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t0 t1
+c_delNodes x1@Curry.Module.Prelude.List x2 st = x2
+c_delNodes x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.GraphInductive.c_delNodes(x4)(Curry.Module.Prelude.c_snd(Curry.Module.GraphInductive.c_match(x3)(x2)(st))(st))(st)
+c_delNodes (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_delNodes(x)(x2)(st))(i)(xs)(st)
+c_delNodes x x2 st = Curry.RunTimeSystem.patternFail("GraphInductive.delNodes")(x)
+
+
+
+c_delEdges :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int)) -> (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t0 t1
+c_delEdges x1 x2 st = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_delEdge))(x2)(x1)(st)
+
+
+
+c_isEmpty :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isEmpty x1@(Curry.Module.GraphInductive.C_Gr x2) st = Curry.Module.FiniteMap.c_isEmptyFM(x2)(st)
+c_isEmpty (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_isEmpty(x)(st))(i)(xs)(st)
+c_isEmpty x st = Curry.RunTimeSystem.patternFail("GraphInductive.isEmpty")(x)
+
+
+
+c_match :: (Curry t0,Curry t1) => Curry.Module.Prelude.C_Int -> (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)))) (Curry.Module.GraphInductive.C_Graph t0 t1)
+c_match x1 x2@(Curry.Module.GraphInductive.C_Gr x3) st = Curry.Module.Prelude.c_maybe(Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Nothing)(Curry.Module.GraphInductive.C_Gr(x3)))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_match'46_'35lambda5(x1)))(Curry.Module.FiniteMap.c_splitFM(x3)(x1)(st))(st)
+c_match x1 (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_match(x1)(x)(st))(i)(xs)(st)
+c_match x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.match")(x)
+
+
+
+c_match'46_'35lambda5 :: (Curry t146,Curry t148) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 (Curry.Module.FiniteMap.C_FM Curry.Module.Prelude.C_Int (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t146 Curry.Module.Prelude.C_Int)) t148 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t146 Curry.Module.Prelude.C_Int)))) (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t146 Curry.Module.Prelude.C_Int)) t148 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t146 Curry.Module.Prelude.C_Int))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t146 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t148 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t146 Curry.Module.Prelude.C_Int)))) (Curry.Module.GraphInductive.C_Graph t148 t146)
+c_match'46_'35lambda5 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.GraphInductive.c_match'46_'35lambda5_case_19(x1)(x3)(x4)(st)
+c_match'46_'35lambda5 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_match'46_'35lambda5(x1)(x)(st))(i)(xs)(st)
+c_match'46_'35lambda5 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.match._#lambda5")(x)
+
+
+
+c_noNodes :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_noNodes x1@(Curry.Module.GraphInductive.C_Gr x2) st = Curry.Module.FiniteMap.c_sizeFM(x2)(st)
+c_noNodes (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_noNodes(x)(st))(i)(xs)(st)
+c_noNodes x st = Curry.RunTimeSystem.patternFail("GraphInductive.noNodes")(x)
+
+
+
+c_nodeRange :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int
+c_nodeRange x1@(Curry.Module.GraphInductive.C_Gr x2) st = let {x3 = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))(Curry.Module.Prelude.pf(Curry.Module.Maybe.c_fromJust))(st)} in Curry.Module.GraphInductive.c_nodeRange_case_17(x2)(x3)(Curry.Module.FiniteMap.c_isEmptyFM(x2)(st))(st)
+c_nodeRange (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_nodeRange(x)(st))(i)(xs)(st)
+c_nodeRange x st = Curry.RunTimeSystem.patternFail("GraphInductive.nodeRange")(x)
+
+
+
+c_context :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t0 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int))
+c_context x1 x2 st = Curry.Module.GraphInductive.c_context_case_15(x1)(x2)(Curry.Module.GraphInductive.c_match(x2)(x1)(st))(st)
+
+
+
+c_lab :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t0
+c_lab x1 x2 st = Curry.Module.Maybe.op_62_62_45(Curry.Module.Prelude.c_fst(Curry.Module.GraphInductive.c_match(x2)(x1)(st))(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.Prelude.C_Just))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_lab'39))(st))(st)
+
+
+
+c_neighbors :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))
+c_neighbors st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_neighbors'46_'35lambda7))(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_context))(st)
+
+
+
+c_neighbors'46_'35lambda7 :: (Curry t416,Curry t415) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t416 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t415 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t416 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_neighbors'46_'35lambda7 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(Curry.Module.Prelude.op_43_43(x2)(x5)(st))(st)
+c_neighbors'46_'35lambda7 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_neighbors'46_'35lambda7(x)(st))(i)(xs)(st)
+c_neighbors'46_'35lambda7 x st = Curry.RunTimeSystem.patternFail("GraphInductive.neighbors._#lambda7")(x)
+
+
+
+c_suc :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))
+c_suc st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))))(st))(Curry.Module.GraphInductive.c_context4(st))(st)
+
+
+
+c_pre :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))
+c_pre st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))))(st))(Curry.Module.GraphInductive.c_context1(st))(st)
+
+
+
+c_lsuc :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t1)))
+c_lsuc st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_flip2))))(st))(Curry.Module.GraphInductive.c_context4(st))(st)
+
+
+
+c_lpre :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t1)))
+c_lpre st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_flip2))))(st))(Curry.Module.GraphInductive.c_context1(st))(st)
+
+
+
+c_out :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t1)
+c_out x1 x2 st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_out'46_'35lambda8(x2)))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_context4(st))(x1)(st))(x2)(st))(st)
+
+
+
+c_out'46_'35lambda8 :: (Curry t511) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 t511 Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t511
+c_out'46_'35lambda8 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.T3(x1)(x4)(x3)
+c_out'46_'35lambda8 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_out'46_'35lambda8(x1)(x)(st))(i)(xs)(st)
+c_out'46_'35lambda8 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.out._#lambda8")(x)
+
+
+
+c_inn :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t1)
+c_inn x1 x2 st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_inn'46_'35lambda9(x2)))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_context1(st))(x1)(st))(x2)(st))(st)
+
+
+
+c_inn'46_'35lambda9 :: (Curry t521) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 t521 Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t521
+c_inn'46_'35lambda9 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.T3(x4)(x1)(x3)
+c_inn'46_'35lambda9 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_inn'46_'35lambda9(x1)(x)(st))(i)(xs)(st)
+c_inn'46_'35lambda9 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.inn._#lambda9")(x)
+
+
+
+c_outdeg :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int))
+c_outdeg st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_length))(st))(Curry.Module.GraphInductive.c_context4(st))(st)
+
+
+
+c_indeg :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int))
+c_indeg st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_length))(st))(Curry.Module.GraphInductive.c_context1(st))(st)
+
+
+
+c_deg :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int))
+c_deg st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_deg'46_'35lambda10))(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_context))(st)
+
+
+
+c_deg'46_'35lambda10 :: (Curry t553,Curry t552) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t553 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t552 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t553 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_deg'46_'35lambda10 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_length(x2)(st))(Curry.Module.Prelude.c_length(x5)(st))(st)
+c_deg'46_'35lambda10 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_deg'46_'35lambda10(x)(st))(i)(xs)(st)
+c_deg'46_'35lambda10 x st = Curry.RunTimeSystem.patternFail("GraphInductive.deg._#lambda10")(x)
+
+
+
+c_gelem :: (Curry t0,Curry t1) => Curry.Module.Prelude.C_Int -> (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_gelem x1 x2 st = Curry.Module.Maybe.c_isJust(Curry.Module.Prelude.c_fst(Curry.Module.GraphInductive.c_match(x1)(x2)(st))(st))(st)
+
+
+
+c_equal :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_equal x1 x2 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_slabNodes(st))(x1)(st))(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_slabNodes(st))(x2)(st))(st))(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_slabEdges(st))(x1)(st))(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_slabEdges(st))(x2)(st))(st))(st)
+
+
+
+c_nodeComp :: (Curry t0) => (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0) -> (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_nodeComp x1 x2 st = Curry.Module.GraphInductive.c_nodeComp_case_13(x1)(x2)(Curry.Module.Prelude.op_61_61(x1)(x2)(st))(st)
+
+
+
+c_slabNodes :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0))
+c_slabNodes st = Curry.Module.Prelude.op_46(Curry.Module.GraphInductive.c_sortBy(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_nodeComp))(st))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labNodes))(st)
+
+
+
+c_edgeComp :: (Curry t0) => (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t0) -> (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_edgeComp x1 x2 st = let {x4 = Curry.Module.GraphInductive.c_edgeComp'46_'35selFP11'35v(x1)(st)} in let {x7 = Curry.Module.GraphInductive.c_edgeComp'46_'35selFP9'35x(x2)(st)} in Curry.Module.GraphInductive.c_edgeComp_case_10(x1)(x2)(x4)(x7)(Curry.Module.Prelude.op_61_61(x1)(x2)(st))(st)
+
+
+
+c_edgeComp'46_'35selFP11'35v :: (Curry t613) => (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t613) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_edgeComp'46_'35selFP11'35v x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x2
+c_edgeComp'46_'35selFP11'35v (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_edgeComp'46_'35selFP11'35v(x)(st))(i)(xs)(st)
+c_edgeComp'46_'35selFP11'35v x st = Curry.RunTimeSystem.patternFail("GraphInductive.edgeComp._#selFP11#v")(x)
+
+
+
+c_edgeComp'46_'35selFP12'35w :: (Curry t613) => (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t613) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_edgeComp'46_'35selFP12'35w x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x3
+c_edgeComp'46_'35selFP12'35w (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_edgeComp'46_'35selFP12'35w(x)(st))(i)(xs)(st)
+c_edgeComp'46_'35selFP12'35w x st = Curry.RunTimeSystem.patternFail("GraphInductive.edgeComp._#selFP12#w")(x)
+
+
+
+c_edgeComp'46_'35selFP9'35x :: (Curry t613) => (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t613) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_edgeComp'46_'35selFP9'35x x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x2
+c_edgeComp'46_'35selFP9'35x (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_edgeComp'46_'35selFP9'35x(x)(st))(i)(xs)(st)
+c_edgeComp'46_'35selFP9'35x x st = Curry.RunTimeSystem.patternFail("GraphInductive.edgeComp._#selFP9#x")(x)
+
+
+
+c_edgeComp'46_'35selFP10'35y :: (Curry t613) => (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t613) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_edgeComp'46_'35selFP10'35y x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x3
+c_edgeComp'46_'35selFP10'35y (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_edgeComp'46_'35selFP10'35y(x)(st))(i)(xs)(st)
+c_edgeComp'46_'35selFP10'35y x st = Curry.RunTimeSystem.patternFail("GraphInductive.edgeComp._#selFP10#y")(x)
+
+
+
+c_slabEdges :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t1))
+c_slabEdges st = Curry.Module.Prelude.op_46(Curry.Module.GraphInductive.c_sortBy(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_edgeComp))(st))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labEdges))(st)
+
+
+
+c_node'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_node'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_node'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_node'39(x)(st))(i)(xs)(st)
+c_node'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.node'")(x)
+
+
+
+c_lab'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> t1
+c_lab'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_lab'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_lab'39(x)(st))(i)(xs)(st)
+c_lab'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.lab'")(x)
+
+
+
+c_labNode'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t1
+c_labNode'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.T2(x3)(x4)
+c_labNode'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labNode'39(x)(st))(i)(xs)(st)
+c_labNode'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.labNode'")(x)
+
+
+
+c_neighbors'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_neighbors'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(x2)(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(x5)(st))(st)
+c_neighbors'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_neighbors'39(x)(st))(i)(xs)(st)
+c_neighbors'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.neighbors'")(x)
+
+
+
+c_suc'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_suc'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(x5)(st)
+c_suc'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_suc'39(x)(st))(i)(xs)(st)
+c_suc'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.suc'")(x)
+
+
+
+c_pre'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_pre'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(x2)(st)
+c_pre'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_pre'39(x)(st))(i)(xs)(st)
+c_pre'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.pre'")(x)
+
+
+
+c_lpre'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0)
+c_lpre'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_flip2))(x2)(st)
+c_lpre'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_lpre'39(x)(st))(i)(xs)(st)
+c_lpre'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.lpre'")(x)
+
+
+
+c_lsuc'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0)
+c_lsuc'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_flip2))(x5)(st)
+c_lsuc'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_lsuc'39(x)(st))(i)(xs)(st)
+c_lsuc'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.lsuc'")(x)
+
+
+
+c_out'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t0)
+c_out'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_out'39'46_'35lambda11(x3)))(x5)(st)
+c_out'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_out'39(x)(st))(i)(xs)(st)
+c_out'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.out'")(x)
+
+
+
+c_out'39'46_'35lambda11 :: (Curry t732) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 t732 Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t732
+c_out'39'46_'35lambda11 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.T3(x1)(x4)(x3)
+c_out'39'46_'35lambda11 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_out'39'46_'35lambda11(x1)(x)(st))(i)(xs)(st)
+c_out'39'46_'35lambda11 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.out'._#lambda11")(x)
+
+
+
+c_inn'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t0)
+c_inn'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_inn'39'46_'35lambda12(x3)))(x2)(st)
+c_inn'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_inn'39(x)(st))(i)(xs)(st)
+c_inn'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.inn'")(x)
+
+
+
+c_inn'39'46_'35lambda12 :: (Curry t742) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 t742 Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t742
+c_inn'39'46_'35lambda12 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.T3(x4)(x1)(x3)
+c_inn'39'46_'35lambda12 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_inn'39'46_'35lambda12(x1)(x)(st))(i)(xs)(st)
+c_inn'39'46_'35lambda12 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.inn'._#lambda12")(x)
+
+
+
+c_outdeg'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_outdeg'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_length(x5)(st)
+c_outdeg'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_outdeg'39(x)(st))(i)(xs)(st)
+c_outdeg'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.outdeg'")(x)
+
+
+
+c_indeg'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_indeg'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.c_length(x2)(st)
+c_indeg'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_indeg'39(x)(st))(i)(xs)(st)
+c_indeg'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.indeg'")(x)
+
+
+
+c_deg'39 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_deg'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_length(x2)(st))(Curry.Module.Prelude.c_length(x5)(st))(st)
+c_deg'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_deg'39(x)(st))(i)(xs)(st)
+c_deg'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.deg'")(x)
+
+
+
+c_labNodes :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t0)
+c_labNodes x1@(Curry.Module.GraphInductive.C_Gr x2) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labNodes'46_'35lambda13))(Curry.Module.FiniteMap.c_fmToList(x2)(st))(st)
+c_labNodes (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labNodes(x)(st))(i)(xs)(st)
+c_labNodes x st = Curry.RunTimeSystem.patternFail("GraphInductive.labNodes")(x)
+
+
+
+c_labNodes'46_'35lambda13 :: (Curry t574,Curry t573) => (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t574 Curry.Module.Prelude.C_Int)) t573 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t574 Curry.Module.Prelude.C_Int)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int t573
+c_labNodes'46_'35lambda13 x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.GraphInductive.c_labNodes'46_'35lambda13_case_7(x2)(x3)(st)
+c_labNodes'46_'35lambda13 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labNodes'46_'35lambda13(x)(st))(i)(xs)(st)
+c_labNodes'46_'35lambda13 x st = Curry.RunTimeSystem.patternFail("GraphInductive.labNodes._#lambda13")(x)
+
+
+
+c_labEdges :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t1)
+c_labEdges x1@(Curry.Module.GraphInductive.C_Gr x2) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labEdges'46_'35lambda14))(st))(Curry.Module.FiniteMap.c_fmToList(x2)(st))(st)
+c_labEdges (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labEdges(x)(st))(i)(xs)(st)
+c_labEdges x st = Curry.RunTimeSystem.patternFail("GraphInductive.labEdges")(x)
+
+
+
+c_labEdges'46_'35lambda14 :: (Curry t620,Curry t619) => (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t620 Curry.Module.Prelude.C_Int)) t619 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t620 Curry.Module.Prelude.C_Int)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t620)
+c_labEdges'46_'35lambda14 x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.GraphInductive.c_labEdges'46_'35lambda14_case_6(x2)(x3)(st)
+c_labEdges'46_'35lambda14 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labEdges'46_'35lambda14(x)(st))(i)(xs)(st)
+c_labEdges'46_'35lambda14 x st = Curry.RunTimeSystem.patternFail("GraphInductive.labEdges._#lambda14")(x)
+
+
+
+c_labEdges'46_'35lambda14'46_'35lambda15 :: (Curry t620) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 t620 Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t620
+c_labEdges'46_'35lambda14'46_'35lambda15 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.T3(x1)(x4)(x3)
+c_labEdges'46_'35lambda14'46_'35lambda15 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labEdges'46_'35lambda14'46_'35lambda15(x1)(x)(st))(i)(xs)(st)
+c_labEdges'46_'35lambda14'46_'35lambda15 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.labEdges._#lambda14._#lambda15")(x)
+
+
+
+c_nodes :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_nodes st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labNodes))(st)
+
+
+
+c_edges :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int))
+c_edges st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_edges'46_'35lambda16))))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labEdges))(st)
+
+
+
+c_edges'46_'35lambda16 :: (Curry t788) => (Curry.Module.Prelude.T3 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int t788) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int
+c_edges'46_'35lambda16 x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = Curry.Module.Prelude.T2(x2)(x3)
+c_edges'46_'35lambda16 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_edges'46_'35lambda16(x)(st))(i)(xs)(st)
+c_edges'46_'35lambda16 x st = Curry.RunTimeSystem.patternFail("GraphInductive.edges._#lambda16")(x)
+
+
+
+c_newNodes :: (Curry t0,Curry t1) => Curry.Module.Prelude.C_Int -> (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_newNodes x1 x2 st = let {x4 = Curry.Module.GraphInductive.c_newNodes'46_'35selFP14'35n(Curry.Module.GraphInductive.c_nodeRange(x2)(st))(st)} in Curry.Module.Prelude.c_enumFromTo(Curry.Module.Prelude.op_43(x4)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.op_43(x4)(x1)(st))(st)
+
+
+
+c_newNodes'46_'35selFP14'35n :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_newNodes'46_'35selFP14'35n x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_newNodes'46_'35selFP14'35n (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_newNodes'46_'35selFP14'35n(x)(st))(i)(xs)(st)
+c_newNodes'46_'35selFP14'35n x st = Curry.RunTimeSystem.patternFail("GraphInductive.newNodes._#selFP14#n")(x)
+
+
+
+c_ufold :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t2))) -> t2 -> (Curry.Module.GraphInductive.C_Graph t1 t0) -> Curry.RunTimeSystem.State -> t2
+c_ufold x1 x2 x3 st = let {x4 = Curry.Module.GraphInductive.c_matchAny(x3)(st)} in Curry.Module.GraphInductive.c_ufold_case_5(x1)(x2)(x3)(x4)(Curry.Module.GraphInductive.c_isEmpty(x3)(st))(st)
+
+
+
+c_ufold'46_'35selFP16'35c :: (Curry t807,Curry t806) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t807 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t806 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t807 Curry.Module.Prelude.C_Int))) (Curry.Module.GraphInductive.C_Graph t806 t807)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t807 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t806 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t807 Curry.Module.Prelude.C_Int))
+c_ufold'46_'35selFP16'35c x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_ufold'46_'35selFP16'35c (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_ufold'46_'35selFP16'35c(x)(st))(i)(xs)(st)
+c_ufold'46_'35selFP16'35c x st = Curry.RunTimeSystem.patternFail("GraphInductive.ufold._#selFP16#c")(x)
+
+
+
+c_ufold'46_'35selFP17'35g'39 :: (Curry t807,Curry t806) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t807 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t806 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t807 Curry.Module.Prelude.C_Int))) (Curry.Module.GraphInductive.C_Graph t806 t807)) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t806 t807
+c_ufold'46_'35selFP17'35g'39 x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_ufold'46_'35selFP17'35g'39 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_ufold'46_'35selFP17'35g'39(x)(st))(i)(xs)(st)
+c_ufold'46_'35selFP17'35g'39 x st = Curry.RunTimeSystem.patternFail("GraphInductive.ufold._#selFP17#g'")(x)
+
+
+
+c_gmap :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t2 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t2 Curry.Module.Prelude.C_Int)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t1 t0) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t3 t2)
+c_gmap x1 st = Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_ufold(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_gmap'46_'35lambda17(x1)))(Curry.Module.GraphInductive.c_empty(st)))
+
+
+
+c_gmap'46_'35lambda17 :: (Curry t821,Curry t822,Curry t830,Curry t829) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t821 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t822 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t821 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t830 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t829 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t830 Curry.Module.Prelude.C_Int)))) -> (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t821 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t822 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t821 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t829 t830) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t829 t830)
+c_gmap'46_'35lambda17 x1 x2 st = Curry.Module.Prelude.pf(Curry.Module.GraphInductive.op_58_38(Curry.Module.Prelude.c_apply(x1)(x2)(st)))
+
+
+
+c_nmap :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t2) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t1 t2)
+c_nmap x1 st = Curry.Module.GraphInductive.c_gmap(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_nmap'46_'35lambda18(x1)))(st)
+
+
+
+c_nmap'46_'35lambda18 :: (Curry t841,Curry t844,Curry t837) => (Curry.Module.Prelude.Prim (t841 -> Curry.RunTimeSystem.State -> t844)) -> (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t837 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t841 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t837 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t837 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t844 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t837 Curry.Module.Prelude.C_Int))
+c_nmap'46_'35lambda18 x1 x2@(Curry.Module.Prelude.T4 x3 x4 x5 x6) st = Curry.Module.Prelude.T4(x3)(x4)(Curry.Module.Prelude.c_apply(x1)(x5)(st))(x6)
+c_nmap'46_'35lambda18 x1 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_nmap'46_'35lambda18(x1)(x)(st))(i)(xs)(st)
+c_nmap'46_'35lambda18 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.nmap._#lambda18")(x)
+
+
+
+c_emap :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t2 t0) -> Curry.RunTimeSystem.State -> Curry.Module.GraphInductive.C_Graph t2 t1)
+c_emap x1 st = Curry.Module.GraphInductive.c_gmap(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_emap'46_'35lambda20(x1)))(st)
+
+
+
+c_emap'46map1'46213 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t2)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 t2))
+c_emap'46map1'46213 x1 st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_emap'46map1'46213'46_'35lambda19(x1))))
+
+
+
+c_emap'46map1'46213'46_'35lambda19 :: (Curry t853,Curry t856,Curry t854) => (Curry.Module.Prelude.Prim (t853 -> Curry.RunTimeSystem.State -> t856)) -> (Curry.Module.Prelude.T2 t853 t854) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 t856 t854
+c_emap'46map1'46213'46_'35lambda19 x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.T2(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x4)
+c_emap'46map1'46213'46_'35lambda19 x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_emap'46map1'46213'46_'35lambda19(x1)(x)(st))(i)(xs)(st)
+c_emap'46map1'46213'46_'35lambda19 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.emap.map1.213._#lambda19")(x)
+
+
+
+c_emap'46_'35lambda20 :: (Curry t865,Curry t866,Curry t863) => (Curry.Module.Prelude.Prim (t865 -> Curry.RunTimeSystem.State -> t866)) -> (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t865 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t863 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t865 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t866 Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int t863 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t866 Curry.Module.Prelude.C_Int))
+c_emap'46_'35lambda20 x1 x2@(Curry.Module.Prelude.T4 x3 x4 x5 x6) st = Curry.Module.Prelude.T4(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_emap'46map1'46213(x1)(st))(x3)(st))(x4)(x5)(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.c_emap'46map1'46213(x1)(st))(x6)(st))
+c_emap'46_'35lambda20 x1 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_emap'46_'35lambda20(x1)(x)(st))(i)(xs)(st)
+c_emap'46_'35lambda20 x1 x st = Curry.RunTimeSystem.patternFail("GraphInductive.emap._#lambda20")(x)
+
+
+
+c_labUEdges :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 t0 t1 Curry.Module.Prelude.T0))
+c_labUEdges st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labUEdges'46_'35lambda21)))
+
+
+
+c_labUEdges'46_'35lambda21 :: (Curry t249,Curry t250) => (Curry.Module.Prelude.T2 t249 t250) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 t249 t250 Curry.Module.Prelude.T0
+c_labUEdges'46_'35lambda21 x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Prelude.T3(x2)(x3)(Curry.Module.Prelude.T0)
+c_labUEdges'46_'35lambda21 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labUEdges'46_'35lambda21(x)(st))(i)(xs)(st)
+c_labUEdges'46_'35lambda21 x st = Curry.RunTimeSystem.patternFail("GraphInductive.labUEdges._#lambda21")(x)
+
+
+
+c_labUNodes :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.T0))
+c_labUNodes st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labUNodes'46_'35lambda22)))
+
+
+
+c_labUNodes'46_'35lambda22 :: (Curry t254) => t254 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 t254 Curry.Module.Prelude.T0
+c_labUNodes'46_'35lambda22 x1 st = Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.T0)
+
+
+
+c_showGraph :: (Curry t0,Curry t1) => (Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showGraph x1@(Curry.Module.GraphInductive.C_Gr x2) st = Curry.Module.Prelude.c_unlines(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_showNode))(Curry.Module.FiniteMap.c_fmToList(x2)(st))(st))(st)
+c_showGraph (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_showGraph(x)(st))(i)(xs)(st)
+c_showGraph x st = Curry.RunTimeSystem.patternFail("GraphInductive.showGraph")(x)
+
+
+
+c_showNode :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.T2 t0 (Curry.Module.Prelude.T3 t1 t2 t3)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showNode x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.GraphInductive.c_showNode_case_3(x2)(x3)(st)
+c_showNode (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_showNode(x)(st))(i)(xs)(st)
+c_showNode x st = Curry.RunTimeSystem.patternFail("GraphInductive.showNode")(x)
+
+
+
+op_46_58 :: (Curry t0,Curry t1,Curry t2,Curry t3) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t0))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t1))))
+op_46_58 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_46))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_46))(st)
+
+
+
+c_fst4 :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.T4 t0 t1 t2 t3) -> Curry.RunTimeSystem.State -> t0
+c_fst4 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_fst4 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_fst4(x)(st))(i)(xs)(st)
+c_fst4 x st = Curry.RunTimeSystem.patternFail("GraphInductive.fst4")(x)
+
+
+
+c_fth4 :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.T4 t0 t1 t2 t3) -> Curry.RunTimeSystem.State -> t3
+c_fth4 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_fth4 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_fth4(x)(st))(i)(xs)(st)
+c_fth4 x st = Curry.RunTimeSystem.patternFail("GraphInductive.fth4")(x)
+
+
+
+c_flip2 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T2 t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 t1 t0
+c_flip2 x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Prelude.T2(x3)(x2)
+c_flip2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_flip2(x)(st))(i)(xs)(st)
+c_flip2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.flip2")(x)
+
+
+
+c_context1 :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)))
+c_context1 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_fst4))(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_context))(st)
+
+
+
+c_context4 :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.GraphInductive.C_Graph t0 t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 Curry.Module.Prelude.C_Int)))
+c_context4 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.GraphInductive.op_46_58(st))(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_fth4))(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_context))(st)
+
+
+
+c_addSucc :: (Curry t0,Curry t1,Curry t2,Curry t3) => t0 -> t1 -> (Curry.Module.Prelude.T3 t2 t3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 t0))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 t2 t3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 t0))
+c_addSucc x1 x2 x3@(Curry.Module.Prelude.T3 x4 x5 x6) st = Curry.Module.Prelude.T3(x4)(x5)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2(x2)(x1))(x6))
+c_addSucc x1 x2 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_addSucc(x1)(x2)(x)(st))(i)(xs)(st)
+c_addSucc x1 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.addSucc")(x)
+
+
+
+c_addPred :: (Curry t0,Curry t1,Curry t2,Curry t3) => t0 -> t1 -> (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 t0)) t2 t3) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t1 t0)) t2 t3
+c_addPred x1 x2 x3@(Curry.Module.Prelude.T3 x4 x5 x6) st = Curry.Module.Prelude.T3((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2(x2)(x1))(x4))(x5)(x6)
+c_addPred x1 x2 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_addPred(x1)(x2)(x)(st))(i)(xs)(st)
+c_addPred x1 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.addPred")(x)
+
+
+
+c_clearSucc :: (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4) => t0 -> t1 -> (Curry.Module.Prelude.T3 t2 t3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t4 t0))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 t2 t3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t4 t0))
+c_clearSucc x1 x2 x3@(Curry.Module.Prelude.T3 x4 x5 x6) st = Curry.Module.Prelude.T3(x4)(x5)(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(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))(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(st))(x6)(st))
+c_clearSucc x1 x2 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_clearSucc(x1)(x2)(x)(st))(i)(xs)(st)
+c_clearSucc x1 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.clearSucc")(x)
+
+
+
+c_clearPred :: (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4) => t0 -> t1 -> (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t2 t0)) t3 t4) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t2 t0)) t3 t4
+c_clearPred x1 x2 x3@(Curry.Module.Prelude.T3 x4 x5 x6) st = Curry.Module.Prelude.T3(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(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))(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(st))(x4)(st))(x5)(x6)
+c_clearPred x1 x2 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_clearPred(x1)(x2)(x)(st))(i)(xs)(st)
+c_clearPred x1 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.clearPred")(x)
+
+
+
+c_updAdj :: (Curry t0,Curry t1) => (Curry.Module.FiniteMap.C_FM Curry.Module.Prelude.C_Int (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int))))) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM Curry.Module.Prelude.C_Int (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)) t1 (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 Curry.Module.Prelude.C_Int)))
+c_updAdj x1 x2@Curry.Module.Prelude.List x3 st = x1
+c_updAdj x1 x2@((Curry.Module.Prelude.:<) x4 x5) x3 st = Curry.Module.GraphInductive.c_updAdj_case_2(x1)(x3)(x5)(x4)(st)
+c_updAdj x1 (Curry.Module.Prelude.ListOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_updAdj(x1)(x)(x3)(st))(i)(xs)(st)
+c_updAdj x1 x x3 st = Curry.RunTimeSystem.patternFail("GraphInductive.updAdj")(x)
+
+
+
+c_sortBy :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_sortBy x1 st = Curry.Module.Prelude.pf(Curry.Module.Sort.c_mergeSort(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_sortBy'46_'35lambda23(x1))))
+
+
+
+c_sortBy'46_'35lambda23 :: (Curry t587) => (Curry.Module.Prelude.Prim (t587 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t587 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering))) -> t587 -> t587 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_sortBy'46_'35lambda23 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(x3)(st)} in Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.C_EQ)(st))(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.C_LT)(st))(st)
+
+
+
+c_updAdj_case_2 x1 x3 x5 x4@(Curry.Module.Prelude.T2 x6 x7) st = Curry.Module.GraphInductive.c_updAdj_case_1(x1)(x3)(x5)(x6)(x7)(Curry.Module.FiniteMap.c_elemFM(x7)(x1)(st))(st)
+c_updAdj_case_2 x1 x3 x5 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_updAdj_case_2(x1)(x3)(x5)(x)(st))(i)(xs)(st)
+c_updAdj_case_2 x1 x3 x5 x st = Curry.RunTimeSystem.patternFail("GraphInductive.updAdj_case_2")(x)
+
+
+
+c_updAdj_case_1 x1 x3 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.GraphInductive.c_updAdj(Curry.Module.FiniteMap.c_updFM(x1)(x7)(Curry.Module.Prelude.c_apply(x3)(x6)(st))(st))(x5)(x3)(st)
+c_updAdj_case_1 x1 x3 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_updAdj_case_0(x7)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_updAdj_case_1 x1 x3 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_updAdj_case_1(x1)(x3)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_updAdj_case_1 x1 x3 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("GraphInductive.updAdj_case_1")(x)
+
+
+
+c_updAdj_case_0 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_error(Curry.Module.Prelude.op_43_43((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('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('E'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((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('p'))((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('N'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))))))))))))(Curry.Module.Prelude.c_show(x7)(st))(st))(st)
+c_updAdj_case_0 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_updAdj_case_0(x7)(x)(st))(i)(xs)(st)
+c_updAdj_case_0 x7 x st = Curry.RunTimeSystem.patternFail("GraphInductive.updAdj_case_0")(x)
+
+
+
+c_showNode_case_3 x2 x3@(Curry.Module.Prelude.T3 x4 x5 x6) st = Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x2)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x5)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))(Curry.Module.Prelude.List)))(Curry.Module.Prelude.c_show(x6)(st))(st))(st))(st))(st)
+c_showNode_case_3 x2 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_showNode_case_3(x2)(x)(st))(i)(xs)(st)
+c_showNode_case_3 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.showNode_case_3")(x)
+
+
+
+c_ufold_case_5 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = x2
+c_ufold_case_5 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_ufold_case_4(x1)(x2)(x4)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_ufold_case_5 x1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_ufold_case_5(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_ufold_case_5 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("GraphInductive.ufold_case_5")(x)
+
+
+
+c_ufold_case_4 x1 x2 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(Curry.Module.GraphInductive.c_ufold'46_'35selFP16'35c(x4)(st))(st))(Curry.Module.GraphInductive.c_ufold(x1)(x2)(Curry.Module.GraphInductive.c_ufold'46_'35selFP17'35g'39(x4)(st))(st))(st)
+c_ufold_case_4 x1 x2 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_ufold_case_4(x1)(x2)(x4)(x)(st))(i)(xs)(st)
+c_ufold_case_4 x1 x2 x4 x st = Curry.RunTimeSystem.patternFail("GraphInductive.ufold_case_4")(x)
+
+
+
+c_labEdges'46_'35lambda14_case_6 x2 x3@(Curry.Module.Prelude.T3 x4 x5 x6) st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.GraphInductive.c_labEdges'46_'35lambda14'46_'35lambda15(x2)))(x6)(st)
+c_labEdges'46_'35lambda14_case_6 x2 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labEdges'46_'35lambda14_case_6(x2)(x)(st))(i)(xs)(st)
+c_labEdges'46_'35lambda14_case_6 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.labEdges._#lambda14_case_6")(x)
+
+
+
+c_labNodes'46_'35lambda13_case_7 x2 x3@(Curry.Module.Prelude.T3 x4 x5 x6) st = Curry.Module.Prelude.T2(x2)(x5)
+c_labNodes'46_'35lambda13_case_7 x2 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_labNodes'46_'35lambda13_case_7(x2)(x)(st))(i)(xs)(st)
+c_labNodes'46_'35lambda13_case_7 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.labNodes._#lambda13_case_7")(x)
+
+
+
+c_edgeComp_case_10 x1 x2 x4 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_EQ
+c_edgeComp_case_10 x1 x2 x4 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_edgeComp_case_9(x1)(x2)(x4)(x7)(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_60(x4)(x7)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x4)(x7)(st))(Curry.Module.Prelude.op_60(Curry.Module.GraphInductive.c_edgeComp'46_'35selFP12'35w(x1)(st))(Curry.Module.GraphInductive.c_edgeComp'46_'35selFP10'35y(x2)(st))(st))(st))(st))(st)
+c_edgeComp_case_10 x1 x2 x4 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_edgeComp_case_10(x1)(x2)(x4)(x7)(x)(st))(i)(xs)(st)
+c_edgeComp_case_10 x1 x2 x4 x7 x st = Curry.RunTimeSystem.patternFail("GraphInductive.edgeComp_case_10")(x)
+
+
+
+c_edgeComp_case_9 x1 x2 x4 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_LT
+c_edgeComp_case_9 x1 x2 x4 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_edgeComp_case_8(Curry.Module.Prelude.c_otherwise(st))(st)
+c_edgeComp_case_9 x1 x2 x4 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_edgeComp_case_9(x1)(x2)(x4)(x7)(x)(st))(i)(xs)(st)
+c_edgeComp_case_9 x1 x2 x4 x7 x st = Curry.RunTimeSystem.patternFail("GraphInductive.edgeComp_case_9")(x)
+
+
+
+c_edgeComp_case_8 x1@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_GT
+c_edgeComp_case_8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_edgeComp_case_8(x)(st))(i)(xs)(st)
+c_edgeComp_case_8 x st = Curry.RunTimeSystem.patternFail("GraphInductive.edgeComp_case_8")(x)
+
+
+
+c_nodeComp_case_13 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_EQ
+c_nodeComp_case_13 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_nodeComp_case_12(x1)(x2)(Curry.Module.Prelude.op_60(Curry.Module.Prelude.c_fst(x1)(st))(Curry.Module.Prelude.c_fst(x2)(st))(st))(st)
+c_nodeComp_case_13 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_nodeComp_case_13(x1)(x2)(x)(st))(i)(xs)(st)
+c_nodeComp_case_13 x1 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.nodeComp_case_13")(x)
+
+
+
+c_nodeComp_case_12 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_LT
+c_nodeComp_case_12 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_nodeComp_case_11(Curry.Module.Prelude.c_otherwise(st))(st)
+c_nodeComp_case_12 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_nodeComp_case_12(x1)(x2)(x)(st))(i)(xs)(st)
+c_nodeComp_case_12 x1 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.nodeComp_case_12")(x)
+
+
+
+c_nodeComp_case_11 x1@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_GT
+c_nodeComp_case_11 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_nodeComp_case_11(x)(st))(i)(xs)(st)
+c_nodeComp_case_11 x st = Curry.RunTimeSystem.patternFail("GraphInductive.nodeComp_case_11")(x)
+
+
+
+c_context_case_15 x1 x2 (Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.GraphInductive.c_context_case_14(x2)(x3)(st)
+c_context_case_15 x1 x2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_context_case_15(x1)(x2)(x)(st))(i)(xs)(st)
+c_context_case_15 x1 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.context_case_15")(x)
+
+
+
+c_context_case_14 x2 x3@Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.c_error(Curry.Module.Prelude.op_43_43((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('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(' '))((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('c'))((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('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('N'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))))))))(Curry.Module.Prelude.c_show(x2)(st))(st))(st)
+c_context_case_14 x2 x3@(Curry.Module.Prelude.C_Just x5) st = x5
+c_context_case_14 x2 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_context_case_14(x2)(x)(st))(i)(xs)(st)
+c_context_case_14 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.context_case_14")(x)
+
+
+
+c_nodeRange_case_17 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.C_Zero)
+c_nodeRange_case_17 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_nodeRange_case_16(x2)(x3)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_nodeRange_case_17 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_nodeRange_case_17(x2)(x3)(x)(st))(i)(xs)(st)
+c_nodeRange_case_17 x2 x3 x st = Curry.RunTimeSystem.patternFail("GraphInductive.nodeRange_case_17")(x)
+
+
+
+c_nodeRange_case_16 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2(Curry.Module.Prelude.c_apply(x3)(Curry.Module.Prelude.c_apply(Curry.Module.FiniteMap.c_minFM(st))(x2)(st))(st))(Curry.Module.Prelude.c_apply(x3)(Curry.Module.Prelude.c_apply(Curry.Module.FiniteMap.c_maxFM(st))(x2)(st))(st))
+c_nodeRange_case_16 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_nodeRange_case_16(x2)(x3)(x)(st))(i)(xs)(st)
+c_nodeRange_case_16 x2 x3 x st = Curry.RunTimeSystem.patternFail("GraphInductive.nodeRange_case_16")(x)
+
+
+
+c_match'46_'35lambda5_case_19 x1 x3 x4@(Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.GraphInductive.c_match'46_'35lambda5_case_18(x1)(x3)(x6)(st)
+c_match'46_'35lambda5_case_19 x1 x3 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_match'46_'35lambda5_case_19(x1)(x3)(x)(st))(i)(xs)(st)
+c_match'46_'35lambda5_case_19 x1 x3 x st = Curry.RunTimeSystem.patternFail("GraphInductive.match._#lambda5_case_19")(x)
+
+
+
+c_match'46_'35lambda5_case_18 x1 x3 x6@(Curry.Module.Prelude.T3 x7 x8 x9) st = let {x11 = Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(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))(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(st))(x7)(st)} in Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Just(Curry.Module.Prelude.T4(x11)(x1)(x8)(x9)))(Curry.Module.GraphInductive.C_Gr(Curry.Module.GraphInductive.c_updAdj(Curry.Module.GraphInductive.c_updAdj(x3)(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(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))(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(st))(x9)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_clearPred(x1)))(st))(x11)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_clearSucc(x1)))(st)))
+c_match'46_'35lambda5_case_18 x1 x3 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_match'46_'35lambda5_case_18(x1)(x3)(x)(st))(i)(xs)(st)
+c_match'46_'35lambda5_case_18 x1 x3 x st = Curry.RunTimeSystem.patternFail("GraphInductive.match._#lambda5_case_18")(x)
+
+
+
+c_delEdge_case_22 x2 x3 x4 (Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.GraphInductive.c_delEdge_case_21(x2)(x4)(x6)(x5)(st)
+c_delEdge_case_22 x2 x3 x4 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_delEdge_case_22(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_delEdge_case_22 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("GraphInductive.delEdge_case_22")(x)
+
+
+
+c_delEdge_case_21 x2 x4 x6 x5@Curry.Module.Prelude.C_Nothing st = x2
+c_delEdge_case_21 x2 x4 x6 x5@(Curry.Module.Prelude.C_Just x7) st = Curry.Module.GraphInductive.c_delEdge_case_20(x4)(x6)(x7)(st)
+c_delEdge_case_21 x2 x4 x6 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_delEdge_case_21(x2)(x4)(x6)(x)(st))(i)(xs)(st)
+c_delEdge_case_21 x2 x4 x6 x st = Curry.RunTimeSystem.patternFail("GraphInductive.delEdge_case_21")(x)
+
+
+
+c_delEdge_case_20 x4 x6 x7@(Curry.Module.Prelude.T4 x8 x9 x10 x11) st = Curry.Module.GraphInductive.op_58_38(Curry.Module.Prelude.T4(x8)(x9)(x10)(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(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))(x4)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(st))(x11)(st)))(x6)(st)
+c_delEdge_case_20 x4 x6 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_delEdge_case_20(x4)(x6)(x)(st))(i)(xs)(st)
+c_delEdge_case_20 x4 x6 x st = Curry.RunTimeSystem.patternFail("GraphInductive.delEdge_case_20")(x)
+
+
+
+c_insEdge'46_'35selFP6'35g'39_case_24 x3 x2@(Curry.Module.Prelude.C_Just x4) st = Curry.Module.GraphInductive.c_insEdge'46_'35selFP6'35g'39_case_23(x3)(x4)(st)
+c_insEdge'46_'35selFP6'35g'39_case_24 x3 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP6'35g'39_case_24(x3)(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP6'35g'39_case_24 x3 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP6#g'_case_24")(x)
+
+
+
+c_insEdge'46_'35selFP6'35g'39_case_23 x3 x4@(Curry.Module.Prelude.T4 x5 x6 x7 x8) st = x3
+c_insEdge'46_'35selFP6'35g'39_case_23 x3 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP6'35g'39_case_23(x3)(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP6'35g'39_case_23 x3 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP6#g'_case_23")(x)
+
+
+
+c_insEdge'46_'35selFP5'35su_case_26 x2@(Curry.Module.Prelude.C_Just x4) st = Curry.Module.GraphInductive.c_insEdge'46_'35selFP5'35su_case_25(x4)(st)
+c_insEdge'46_'35selFP5'35su_case_26 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP5'35su_case_26(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP5'35su_case_26 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP5#su_case_26")(x)
+
+
+
+c_insEdge'46_'35selFP5'35su_case_25 x4@(Curry.Module.Prelude.T4 x5 x6 x7 x8) st = x8
+c_insEdge'46_'35selFP5'35su_case_25 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP5'35su_case_25(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP5'35su_case_25 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP5#su_case_25")(x)
+
+
+
+c_insEdge'46_'35selFP4'35la_case_28 x2@(Curry.Module.Prelude.C_Just x4) st = Curry.Module.GraphInductive.c_insEdge'46_'35selFP4'35la_case_27(x4)(st)
+c_insEdge'46_'35selFP4'35la_case_28 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP4'35la_case_28(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP4'35la_case_28 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP4#la_case_28")(x)
+
+
+
+c_insEdge'46_'35selFP4'35la_case_27 x4@(Curry.Module.Prelude.T4 x5 x6 x7 x8) st = x7
+c_insEdge'46_'35selFP4'35la_case_27 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP4'35la_case_27(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP4'35la_case_27 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP4#la_case_27")(x)
+
+
+
+c_insEdge'46_'35selFP3'35pr_case_30 x2@(Curry.Module.Prelude.C_Just x4) st = Curry.Module.GraphInductive.c_insEdge'46_'35selFP3'35pr_case_29(x4)(st)
+c_insEdge'46_'35selFP3'35pr_case_30 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP3'35pr_case_30(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP3'35pr_case_30 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP3#pr_case_30")(x)
+
+
+
+c_insEdge'46_'35selFP3'35pr_case_29 x4@(Curry.Module.Prelude.T4 x5 x6 x7 x8) st = x5
+c_insEdge'46_'35selFP3'35pr_case_29 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_insEdge'46_'35selFP3'35pr_case_29(x)(st))(i)(xs)(st)
+c_insEdge'46_'35selFP3'35pr_case_29 x st = Curry.RunTimeSystem.patternFail("GraphInductive.insEdge._#selFP3#pr_case_29")(x)
+
+
+
+c_matchAny_case_35 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_error((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('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(' '))((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('c'))((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('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('E'))((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('t'))((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('r'))((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('h'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))(st)
+c_matchAny_case_35 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_matchAny_case_34(x2)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_matchAny_case_35 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_matchAny_case_35(x2)(x)(st))(i)(xs)(st)
+c_matchAny_case_35 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.matchAny_case_35")(x)
+
+
+
+c_matchAny_case_34 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.GraphInductive.c_matchAny_case_33(x2)(Curry.Module.Prelude.c_head(Curry.Module.FiniteMap.c_fmToListPreOrder(x2)(st))(st))(st)
+c_matchAny_case_34 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_matchAny_case_34(x2)(x)(st))(i)(xs)(st)
+c_matchAny_case_34 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.matchAny_case_34")(x)
+
+
+
+c_matchAny_case_33 x2 (Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.GraphInductive.c_matchAny_case_32(x2)(x3)(Curry.Module.GraphInductive.c_match(x3)(Curry.Module.GraphInductive.C_Gr(x2))(st))(st)
+c_matchAny_case_33 x2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_matchAny_case_33(x2)(x)(st))(i)(xs)(st)
+c_matchAny_case_33 x2 x st = Curry.RunTimeSystem.patternFail("GraphInductive.matchAny_case_33")(x)
+
+
+
+c_matchAny_case_32 x2 x3 x4@(Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.GraphInductive.c_matchAny_case_31(x6)(x5)(st)
+c_matchAny_case_32 x2 x3 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_matchAny_case_32(x2)(x3)(x)(st))(i)(xs)(st)
+c_matchAny_case_32 x2 x3 x st = Curry.RunTimeSystem.patternFail("GraphInductive.matchAny_case_32")(x)
+
+
+
+c_matchAny_case_31 x6 x5@(Curry.Module.Prelude.C_Just x7) st = Curry.Module.Prelude.T2(x7)(x6)
+c_matchAny_case_31 x6 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_matchAny_case_31(x6)(x)(st))(i)(xs)(st)
+c_matchAny_case_31 x6 x st = Curry.RunTimeSystem.patternFail("GraphInductive.matchAny_case_31")(x)
+
+
+
+c_'58'38_case_38 x3 x4 x5 x6 x2@(Curry.Module.GraphInductive.C_Gr x7) st = Curry.Module.GraphInductive.c_'58'38_case_37(x3)(x4)(x5)(x6)(x7)(Curry.Module.FiniteMap.c_elemFM(x4)(x7)(st))(st)
+c_'58'38_case_38 x3 x4 x5 x6 (Curry.Module.GraphInductive.C_GraphOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_'58'38_case_38(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_'58'38_case_38 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("GraphInductive.:&_case_38")(x)
+
+
+
+c_'58'38_case_37 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_error(Curry.Module.Prelude.op_43_43((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('d'))((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('E'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((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('p'))((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('N'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))))))))))))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x4)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))(Curry.Module.Prelude.c_show(x5)(st))(st))(st))(st))(st)
+c_'58'38_case_37 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.GraphInductive.c_'58'38_case_36(x3)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_'58'38_case_37 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_'58'38_case_37(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_'58'38_case_37 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("GraphInductive.:&_case_37")(x)
+
+
+
+c_'58'38_case_36 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.GraphInductive.C_Gr(Curry.Module.GraphInductive.c_updAdj(Curry.Module.GraphInductive.c_updAdj(Curry.Module.FiniteMap.c_addToFM(x7)(x4)(Curry.Module.Prelude.T3(x3)(x5)(x6))(st))(x3)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_addSucc(x4)))(st))(x6)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.GraphInductive.c_addPred(x4)))(st))
+c_'58'38_case_36 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.GraphInductive.c_'58'38_case_36(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_'58'38_case_36 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("GraphInductive.:&_case_36")(x)
+
+
diff --git a/dist/build/Curry/Module/IO.hs b/dist/build/Curry/Module/IO.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/IO.hs
@@ -0,0 +1,490 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.IO (module Curry.Module.IO) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+import System.IO
+import qualified System.IO as SI
+import Control.Concurrent
+import qualified Control.Exception as CE
+
+-- somehow using an either type did not get the curry class for prim through.
+data IOHandle = One Handle | Two Handle Handle deriving (Show,Eq)
+type C_Handle = Prim IOHandle
+
+inputHandle, outputHandle :: IOHandle -> Handle
+inputHandle  (One h)   = h
+inputHandle  (Two h _) = h
+outputHandle (One h)   = h
+outputHandle (Two _ h) = h
+
+
+instance Read IOHandle where
+  readsPrec = error "reading Handle"
+
+instance Generate IOHandle where
+  genFree    = error "free variable of type IO-Handle"
+  maxArity _ = error "free variable of type IO-Handle"
+
+
+instance ConvertCH C_IOMode SI.IOMode where
+  toCurry SI.ReadMode = C_ReadMode
+  toCurry SI.WriteMode = C_WriteMode
+  toCurry SI.AppendMode = C_AppendMode
+
+  fromCurry C_ReadMode = SI.ReadMode
+  fromCurry C_WriteMode = SI.WriteMode
+  fromCurry C_AppendMode = SI.AppendMode
+
+instance ConvertCH C_SeekMode SI.SeekMode where
+  toCurry SI.AbsoluteSeek = C_AbsoluteSeek
+  toCurry SI.RelativeSeek = C_RelativeSeek
+  toCurry SI.SeekFromEnd  = C_SeekFromEnd
+
+  fromCurry C_AbsoluteSeek = SI.AbsoluteSeek
+  fromCurry C_RelativeSeek = SI.RelativeSeek
+  fromCurry C_SeekFromEnd  = SI.SeekFromEnd
+
+stdin :: Result C_Handle
+stdin _ = PrimValue (One SI.stdin)
+
+stdout :: Result C_Handle
+stdout _ = PrimValue (One SI.stdout)
+
+stderr :: Result C_Handle
+stderr _ = PrimValue (One SI.stderr)
+
+prim_openFile :: List C_Char -> C_IOMode -> Result (C_IO C_Handle)
+prim_openFile = ioFunc2 (\ s m -> do
+  h <- SI.openFile s m
+  Prelude.return (One h))
+
+prim_hClose :: C_Handle -> Result (C_IO T0)
+prim_hClose = ioFunc1 (\ eh -> case eh of
+  One h     -> SI.hClose h
+  Two h1 h2 -> SI.hClose h1 Prelude.>> SI.hClose h2)
+
+prim_hFlush :: C_Handle -> Result (C_IO T0)
+prim_hFlush = ioFunc1 (SI.hFlush . outputHandle)
+
+prim_hIsEOF :: C_Handle -> Result (C_IO C_Bool)
+prim_hIsEOF = ioFunc1 (SI.hIsEOF . inputHandle)
+
+prim_hSeek :: C_Handle -> C_SeekMode -> C_Int -> Result (C_IO T0)
+prim_hSeek = ioFunc3 (\ h -> SI.hSeek (inputHandle h))
+
+prim_hWaitForInput ::  C_Handle -> C_Int -> Result (C_IO C_Bool)
+prim_hWaitForInput = ioFunc2 (\ h -> myhWaitForInput (inputHandle h))
+
+myhWaitForInput :: SI.Handle -> Int -> IO Bool
+myhWaitForInput h i =
+  if i Prelude.< 0 
+  then SI.hIsEOF h Prelude.>>= Prelude.return . Prelude.not
+  else SI.hWaitForInput h i 
+
+selectHandle :: [IOHandle] -> Int -> IO Int
+selectHandle handles t = do
+  mvar <- newEmptyMVar
+  threads <- mapM (\ (i,h) -> forkIO (waitOnHandle (inputHandle h) i t mvar)) 
+                  (zip [0..] handles)
+  inspectRes (length handles) mvar threads
+
+inspectRes :: Int -> MVar (Maybe Int) -> [ThreadId] ->  IO Int
+inspectRes 0 _    _       = Prelude.return (-1)
+inspectRes n mvar threads = do
+  res <- readMVar mvar
+  case res of 
+    Nothing -> inspectRes (n-1) mvar threads
+    Just v  -> mapM_ killThread threads Prelude.>> Prelude.return v
+
+waitOnHandle :: SI.Handle -> Int -> Int -> MVar (Maybe Int) -> IO ()
+waitOnHandle h v t mvar = do
+   	    ready <- myhWaitForInput h t
+  	    putMVar mvar (if ready then Just v else Nothing)
+
+prim_hWaitForInputs :: List C_Handle -> C_Int -> Result (C_IO C_Int)
+prim_hWaitForInputs  = ioFunc2 selectHandle
+
+prim_hGetChar :: C_Handle -> Result (C_IO C_Char)
+prim_hGetChar = ioFunc1 (SI.hGetChar . inputHandle)
+
+prim_hPutChar :: C_Handle -> C_Char -> Result (C_IO T0)
+prim_hPutChar = ioFunc2 (SI.hPutChar . outputHandle)
+
+prim_hIsReadable :: C_Handle -> Result (C_IO C_Bool)
+prim_hIsReadable = ioFunc1 (SI.hIsReadable . inputHandle)
+
+prim_hIsWritable :: C_Handle -> Result (C_IO C_Bool)
+prim_hIsWritable = ioFunc1 (SI.hIsWritable . outputHandle)
+
+
+-- end included
+
+data C_IOMode = C_ReadMode
+  | C_WriteMode
+  | C_AppendMode
+  | C_IOModeFail Curry.RunTimeSystem.C_Exceptions
+  | C_IOModeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.IO.C_IOMode)
+
+data C_SeekMode = C_AbsoluteSeek
+  | C_RelativeSeek
+  | C_SeekFromEnd
+  | C_SeekModeFail Curry.RunTimeSystem.C_Exceptions
+  | C_SeekModeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.IO.C_SeekMode)
+
+instance BaseCurry Curry.Module.IO.C_IOMode where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.IO.C_IOModeOr(Curry.RunTimeSystem.mkRef(r)(0)(i))([Curry.Module.IO.C_ReadMode,Curry.Module.IO.C_WriteMode,Curry.Module.IO.C_AppendMode]))(0)
+
+  failed  = Curry.Module.IO.C_IOModeFail
+
+  branching  = Curry.Module.IO.C_IOModeOr
+
+  consKind (Curry.Module.IO.C_IOModeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.IO.C_IOModeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.IO.C_IOModeFail x) = x
+
+  orRef (Curry.Module.IO.C_IOModeOr x _) = x
+
+  branches (Curry.Module.IO.C_IOModeOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.IO.C_SeekMode where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.IO.C_SeekModeOr(Curry.RunTimeSystem.mkRef(r)(0)(i))([Curry.Module.IO.C_AbsoluteSeek,Curry.Module.IO.C_RelativeSeek,Curry.Module.IO.C_SeekFromEnd]))(0)
+
+  failed  = Curry.Module.IO.C_SeekModeFail
+
+  branching  = Curry.Module.IO.C_SeekModeOr
+
+  consKind (Curry.Module.IO.C_SeekModeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.IO.C_SeekModeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.IO.C_SeekModeFail x) = x
+
+  orRef (Curry.Module.IO.C_SeekModeOr x _) = x
+
+  branches (Curry.Module.IO.C_SeekModeOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.IO.C_IOMode where
+  strEq Curry.Module.IO.C_ReadMode Curry.Module.IO.C_ReadMode st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.IO.C_WriteMode Curry.Module.IO.C_WriteMode st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.IO.C_AppendMode Curry.Module.IO.C_AppendMode st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.IO.C_ReadMode Curry.Module.IO.C_ReadMode st = Curry.Module.Prelude.C_True
+  eq Curry.Module.IO.C_WriteMode Curry.Module.IO.C_WriteMode st = Curry.Module.Prelude.C_True
+  eq Curry.Module.IO.C_AppendMode Curry.Module.IO.C_AppendMode st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.IO.C_ReadMode st = Curry.Module.IO.C_ReadMode
+  propagate f Curry.Module.IO.C_WriteMode st = Curry.Module.IO.C_WriteMode
+  propagate f Curry.Module.IO.C_AppendMode st = Curry.Module.IO.C_AppendMode
+
+  foldCurry f c Curry.Module.IO.C_ReadMode st = c
+  foldCurry f c Curry.Module.IO.C_WriteMode st = c
+  foldCurry f c Curry.Module.IO.C_AppendMode st = c
+
+  typeName _ = "IOMode"
+
+  showQ _ Curry.Module.IO.C_ReadMode = Prelude.showString("IO.ReadMode")
+  showQ _ Curry.Module.IO.C_WriteMode = Prelude.showString("IO.WriteMode")
+  showQ _ Curry.Module.IO.C_AppendMode = Prelude.showString("IO.AppendMode")
+  showQ _ (Curry.Module.IO.C_IOModeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.IO.C_SeekMode where
+  strEq Curry.Module.IO.C_AbsoluteSeek Curry.Module.IO.C_AbsoluteSeek st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.IO.C_RelativeSeek Curry.Module.IO.C_RelativeSeek st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.IO.C_SeekFromEnd Curry.Module.IO.C_SeekFromEnd st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.IO.C_AbsoluteSeek Curry.Module.IO.C_AbsoluteSeek st = Curry.Module.Prelude.C_True
+  eq Curry.Module.IO.C_RelativeSeek Curry.Module.IO.C_RelativeSeek st = Curry.Module.Prelude.C_True
+  eq Curry.Module.IO.C_SeekFromEnd Curry.Module.IO.C_SeekFromEnd st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.IO.C_AbsoluteSeek st = Curry.Module.IO.C_AbsoluteSeek
+  propagate f Curry.Module.IO.C_RelativeSeek st = Curry.Module.IO.C_RelativeSeek
+  propagate f Curry.Module.IO.C_SeekFromEnd st = Curry.Module.IO.C_SeekFromEnd
+
+  foldCurry f c Curry.Module.IO.C_AbsoluteSeek st = c
+  foldCurry f c Curry.Module.IO.C_RelativeSeek st = c
+  foldCurry f c Curry.Module.IO.C_SeekFromEnd st = c
+
+  typeName _ = "SeekMode"
+
+  showQ _ Curry.Module.IO.C_AbsoluteSeek = Prelude.showString("IO.AbsoluteSeek")
+  showQ _ Curry.Module.IO.C_RelativeSeek = Prelude.showString("IO.RelativeSeek")
+  showQ _ Curry.Module.IO.C_SeekFromEnd = Prelude.showString("IO.SeekFromEnd")
+  showQ _ (Curry.Module.IO.C_SeekModeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.IO.C_IOMode where
+  showsPrec _ Curry.Module.IO.C_ReadMode = Prelude.showString("ReadMode")
+  showsPrec _ Curry.Module.IO.C_WriteMode = Prelude.showString("WriteMode")
+  showsPrec _ Curry.Module.IO.C_AppendMode = Prelude.showString("AppendMode")
+  showsPrec _ (Curry.Module.IO.C_IOModeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.IO.C_SeekMode where
+  showsPrec _ Curry.Module.IO.C_AbsoluteSeek = Prelude.showString("AbsoluteSeek")
+  showsPrec _ Curry.Module.IO.C_RelativeSeek = Prelude.showString("RelativeSeek")
+  showsPrec _ Curry.Module.IO.C_SeekFromEnd = Prelude.showString("SeekFromEnd")
+  showsPrec _ (Curry.Module.IO.C_SeekModeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.IO.C_IOMode where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.IO.C_ReadMode)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("IO")("ReadMode")(r)])(r))((Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.IO.C_WriteMode)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("IO")("WriteMode")(r)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.IO.C_AppendMode)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("IO")("AppendMode")(r)])(r)))
+
+
+
+
+
+instance Read Curry.Module.IO.C_SeekMode where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.IO.C_AbsoluteSeek)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("IO")("AbsoluteSeek")(r)])(r))((Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.IO.C_RelativeSeek)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("IO")("RelativeSeek")(r)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.IO.C_SeekFromEnd)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("IO")("SeekFromEnd")(r)])(r)))
+
+
+
+
+
+c_openFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.IO.C_IOMode -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.IO.C_Handle
+c_openFile x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.IO.c_prim_openFile))(x1)(st))(x2)(st)
+
+
+
+c_hClose :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_hClose x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.IO.c_prim_hClose))(x1)(st)
+
+
+
+c_hFlush :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_hFlush x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.IO.c_prim_hFlush))(x1)(st)
+
+
+
+c_hIsEOF :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_hIsEOF x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.IO.c_prim_hIsEOF))(x1)(st)
+
+
+
+c_isEOF :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_isEOF st = Curry.Module.IO.c_hIsEOF(Curry.Module.IO.c_stdin(st))(st)
+
+
+
+c_hSeek :: Curry.Module.IO.C_Handle -> Curry.Module.IO.C_SeekMode -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_hSeek x1 x2 x3 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35(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.IO.c_prim_hSeek))(x1)(st))(x2)(st))(x3)(st)
+
+
+
+c_hWaitForInput :: Curry.Module.IO.C_Handle -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_hWaitForInput x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.IO.c_prim_hWaitForInput))(x1)(st))(x2)(st)
+
+
+
+c_hWaitForInputs :: (Curry.Module.Prelude.List Curry.Module.IO.C_Handle) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_hWaitForInputs x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.IO.c_prim_hWaitForInputs))(x1)(st))(x2)(st)
+
+
+
+c_hReady :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_hReady x1 st = Curry.Module.IO.c_hWaitForInput(x1)(Curry.Module.Prelude.C_Zero)(st)
+
+
+
+c_hGetChar :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Char
+c_hGetChar x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.IO.c_prim_hGetChar))(x1)(st)
+
+
+
+c_hGetLine :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_hGetLine x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IO.c_hGetChar(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.IO.c_hGetLine'46_'35lambda2(x1)))(st)
+
+
+
+c_hGetLine'46_'35lambda2 :: Curry.Module.IO.C_Handle -> Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_hGetLine'46_'35lambda2 x1 x2 st = Curry.Module.IO.c_hGetLine'46_'35lambda2_case_0(x1)(x2)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Char('\n'))(st))(st)
+
+
+
+c_hGetLine'46_'35lambda2'46_'35lambda3 :: 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.List Curry.Module.Prelude.C_Char)
+c_hGetLine'46_'35lambda2'46_'35lambda3 x1 x2 st = Curry.Module.Prelude.c_return((Curry.Module.Prelude.:<)(x1)(x2))(st)
+
+
+
+c_hGetContents :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_hGetContents x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IO.c_hIsEOF(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.IO.c_hGetContents'46_'35lambda4(x1)))(st)
+
+
+
+c_hGetContents'46_'35lambda4 :: Curry.Module.IO.C_Handle -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_hGetContents'46_'35lambda4 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_62_62(Curry.Module.IO.c_hClose(x1)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.List)(st))(st)
+c_hGetContents'46_'35lambda4 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IO.c_hGetChar(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.IO.c_hGetContents'46_'35lambda4'46_'35lambda5(x1)))(st)
+c_hGetContents'46_'35lambda4 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.IO.c_hGetContents'46_'35lambda4(x1)(x)(st))(i)(xs)(st)
+c_hGetContents'46_'35lambda4 x1 x st = Curry.RunTimeSystem.patternFail("IO.hGetContents._#lambda4")(x)
+
+
+
+c_hGetContents'46_'35lambda4'46_'35lambda5 :: Curry.Module.IO.C_Handle -> Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_hGetContents'46_'35lambda4'46_'35lambda5 x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IO.c_hGetContents(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.IO.c_hGetContents'46_'35lambda4'46_'35lambda5'46_'35lambda6(x2)))(st)
+
+
+
+c_hGetContents'46_'35lambda4'46_'35lambda5'46_'35lambda6 :: 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.List Curry.Module.Prelude.C_Char)
+c_hGetContents'46_'35lambda4'46_'35lambda5'46_'35lambda6 x1 x2 st = Curry.Module.Prelude.c_return((Curry.Module.Prelude.:<)(x1)(x2))(st)
+
+
+
+c_getContents :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getContents st = Curry.Module.IO.c_hGetContents(Curry.Module.IO.c_stdin(st))(st)
+
+
+
+c_hPutChar :: Curry.Module.IO.C_Handle -> Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_hPutChar x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.IO.c_prim_hPutChar))(x1)(st))(x2)(st)
+
+
+
+c_hPutStr :: Curry.Module.IO.C_Handle -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_hPutStr x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_done(st)
+c_hPutStr x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.op_62_62(Curry.Module.IO.c_hPutChar(x1)(x3)(st))(Curry.Module.IO.c_hPutStr(x1)(x4)(st))(st)
+c_hPutStr x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.IO.c_hPutStr(x1)(x)(st))(i)(xs)(st)
+c_hPutStr x1 x st = Curry.RunTimeSystem.patternFail("IO.hPutStr")(x)
+
+
+
+c_hPutStrLn :: Curry.Module.IO.C_Handle -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_hPutStrLn x1 x2 st = Curry.Module.Prelude.op_62_62(Curry.Module.IO.c_hPutStr(x1)(x2)(st))(Curry.Module.IO.c_hPutChar(x1)(Curry.Module.Prelude.C_Char('\n'))(st))(st)
+
+
+
+c_hPrint :: (Curry t0) => Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_hPrint x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.IO.c_hPutStrLn(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_show))(st)
+
+
+
+c_hIsReadable :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_hIsReadable x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.IO.c_prim_hIsReadable))(x1)(st)
+
+
+
+c_hIsWritable :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_hIsWritable x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.IO.c_prim_hIsWritable))(x1)(st)
+
+
+
+c_hGetLine'46_'35lambda2_case_0 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.List)(st)
+c_hGetLine'46_'35lambda2_case_0 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IO.c_hGetLine(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.IO.c_hGetLine'46_'35lambda2'46_'35lambda3(x2)))(st)
+c_hGetLine'46_'35lambda2_case_0 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.IO.c_hGetLine'46_'35lambda2_case_0(x1)(x2)(x)(st))(i)(xs)(st)
+c_hGetLine'46_'35lambda2_case_0 x1 x2 x st = Curry.RunTimeSystem.patternFail("IO.hGetLine._#lambda2_case_0")(x)
+
+
+
+c_stdin :: Curry.RunTimeSystem.State -> Curry.Module.IO.C_Handle
+c_stdin st = Curry.Module.IO.stdin(st)
+
+
+
+c_stdout :: Curry.RunTimeSystem.State -> Curry.Module.IO.C_Handle
+c_stdout st = Curry.Module.IO.stdout(st)
+
+
+
+c_stderr :: Curry.RunTimeSystem.State -> Curry.Module.IO.C_Handle
+c_stderr st = Curry.Module.IO.stderr(st)
+
+
+
+c_prim_openFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.IO.C_IOMode -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.IO.C_Handle
+c_prim_openFile x1 x2 st = Curry.Module.IO.prim_openFile(x1)(x2)(st)
+
+
+
+c_prim_hClose :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_hClose x1 st = Curry.Module.IO.prim_hClose(x1)(st)
+
+
+
+c_prim_hFlush :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_hFlush x1 st = Curry.Module.IO.prim_hFlush(x1)(st)
+
+
+
+c_prim_hIsEOF :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_prim_hIsEOF x1 st = Curry.Module.IO.prim_hIsEOF(x1)(st)
+
+
+
+c_prim_hSeek :: Curry.Module.IO.C_Handle -> Curry.Module.IO.C_SeekMode -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_hSeek x1 x2 x3 st = Curry.Module.IO.prim_hSeek(x1)(x2)(x3)(st)
+
+
+
+c_prim_hWaitForInput :: Curry.Module.IO.C_Handle -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_prim_hWaitForInput x1 x2 st = Curry.Module.IO.prim_hWaitForInput(x1)(x2)(st)
+
+
+
+c_prim_hWaitForInputs :: (Curry.Module.Prelude.List Curry.Module.IO.C_Handle) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_prim_hWaitForInputs x1 x2 st = Curry.Module.IO.prim_hWaitForInputs(x1)(x2)(st)
+
+
+
+c_prim_hGetChar :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Char
+c_prim_hGetChar x1 st = Curry.Module.IO.prim_hGetChar(x1)(st)
+
+
+
+c_prim_hPutChar :: Curry.Module.IO.C_Handle -> Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_hPutChar x1 x2 st = Curry.Module.IO.prim_hPutChar(x1)(x2)(st)
+
+
+
+c_prim_hIsReadable :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_prim_hIsReadable x1 st = Curry.Module.IO.prim_hIsReadable(x1)(st)
+
+
+
+c_prim_hIsWritable :: Curry.Module.IO.C_Handle -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_prim_hIsWritable x1 st = Curry.Module.IO.prim_hIsWritable(x1)(st)
+
+
diff --git a/dist/build/Curry/Module/IOExts.hs b/dist/build/Curry/Module/IOExts.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/IOExts.hs
@@ -0,0 +1,194 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.IOExts (module Curry.Module.IOExts) where
+
+import Curry.RunTimeSystem
+import Curry.Module.IO
+import Curry.Module.Prelude
+import Curry.Module.System
+
+
+
+-- begin included
+
+
+
+import Data.IORef
+import qualified Data.IORef as Ref
+import System.Process
+import Network
+import qualified Network.Socket as SO
+import System.IO.Unsafe
+import Control.Concurrent
+import System.IO
+
+import Curry.Module.IO
+import qualified Curry.Module.Global
+
+instance Eq (List C_Char) where
+  List == List = True
+  List == (_ :< _) = False
+  (_ :< _) == List = False
+  (C_Char c :< xs) == (C_Char c' :< ys) = c Prelude.== c' && xs Prelude.== ys
+
+type Assocs = [(C_String,C_String)]
+
+assocs :: Ref.IORef Assocs
+assocs = unsafePerformIO (Ref.newIORef [])
+
+getAssocs :: IO Assocs
+getAssocs = Ref.readIORef assocs
+
+setAssocs :: Assocs -> IO ()
+setAssocs as = Ref.writeIORef assocs as
+
+prim_execCmd :: List C_Char -> Result (C_IO (T3 C_Handle C_Handle C_Handle))
+prim_execCmd = ioFunc1 (\s -> do
+     (h1,h2,h3,_) <- runInteractiveCommand s
+     Prelude.return (One h1,One h2,One h3))
+
+prim_connectToCmd :: List C_Char -> Result (C_IO C_Handle)
+prim_connectToCmd = ioFunc1 (\s -> do
+  (hin,hout,herr,_) <- runInteractiveCommand s
+  forkIO (forwardError herr)
+  Prelude.return (Two hout hin))
+
+forwardError :: Handle -> IO ()
+forwardError h = do
+   eof <- hIsEOF h 
+   if eof then Prelude.return ()
+          else do
+            line <- hGetLine h 
+            hPutStrLn System.IO.stderr line
+            forwardError h
+
+prim_setAssoc :: List C_Char -> List C_Char -> Result (C_IO T0)
+prim_setAssoc key val = ioFunc0 (do 
+                    as <- getAssocs 
+                    setAssocs ((key,val):as))
+
+
+prim_getAssoc :: List C_Char -> Result (C_IO (C_Maybe (List C_Char)))
+prim_getAssoc key _ = C_IO (\_ -> do 
+         as <- getAssocs
+         Prelude.return (IOVal (maybe C_Nothing C_Just (lookup key as))))
+
+
+type C_IORef a = Curry.Module.Global.C_IORef a
+
+newIORef :: Curry t0 => t0 -> Result (C_IO (C_IORef t0))
+newIORef = Curry.Module.Global.newIORef
+
+prim_readIORef :: Curry t0 => C_IORef t0 -> Result (C_IO t0)
+prim_readIORef = Curry.Module.Global.prim_readIORef
+
+prim_writeIORef :: Curry t0 => C_IORef t0 -> t0 -> Result (C_IO T0)
+prim_writeIORef = Curry.Module.Global.prim_writeIORef
+
+
+-- end included
+
+c_execCmd :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T3 Curry.Module.IO.C_Handle Curry.Module.IO.C_Handle Curry.Module.IO.C_Handle)
+c_execCmd x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_prim_execCmd))(x1)(st)
+
+
+
+c_connectToCommand :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.IO.C_Handle
+c_connectToCommand x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_prim_connectToCmd))(x1)(st)
+
+
+
+c_readCompleteFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_readCompleteFile x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_readFile(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_readCompleteFile'46_'35lambda2))(st)
+
+
+
+c_readCompleteFile'46f'467 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List t0) -> t1 -> Curry.RunTimeSystem.State -> t1
+c_readCompleteFile'46f'467 x1@Curry.Module.Prelude.List x2 st = x2
+c_readCompleteFile'46f'467 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.IOExts.c_readCompleteFile'46f'467(x4)(x2)(st)
+c_readCompleteFile'46f'467 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.IOExts.c_readCompleteFile'46f'467(x)(x2)(st))(i)(xs)(st)
+c_readCompleteFile'46f'467 x x2 st = Curry.RunTimeSystem.patternFail("IOExts.readCompleteFile.f.7")(x)
+
+
+
+c_readCompleteFile'46_'35lambda2 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_readCompleteFile'46_'35lambda2 x1 st = Curry.Module.IOExts.c_readCompleteFile'46f'467(x1)(Curry.Module.Prelude.c_return(x1)(st))(st)
+
+
+
+c_updateFile :: (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.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_updateFile x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readCompleteFile(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_updateFile'46_'35lambda3(x1)(x2)))(st)
+
+
+
+c_updateFile'46_'35lambda3 :: (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.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_updateFile'46_'35lambda3 x1 x2 x3 st = Curry.Module.Prelude.c_writeFile(x2)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+c_exclusiveIO :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.C_IO t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_exclusiveIO x1 x2 st = Curry.Module.Prelude.op_62_62(Curry.Module.System.c_system(Curry.Module.Prelude.op_43_43((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('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('k'))((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(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('1'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))(x1)(st))(st))(Curry.Module.Prelude.c_catchFail(Curry.Module.Prelude.op_62_62_61(x2)(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_exclusiveIO'46_'35lambda4(x1)))(st))(Curry.Module.Prelude.op_62_62(Curry.Module.System.c_system(Curry.Module.Prelude.op_43_43((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(' '))((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.List)))))))(x1)(st))(st))(Curry.Module.Prelude.c_failed(st))(st))(st))(st)
+
+
+
+c_exclusiveIO'46_'35lambda4 :: (Curry t44) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t44 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t44
+c_exclusiveIO'46_'35lambda4 x1 x2 st = Curry.Module.Prelude.op_62_62(Curry.Module.System.c_system(Curry.Module.Prelude.op_43_43((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(' '))((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.List)))))))(x1)(st))(st))(Curry.Module.Prelude.c_return(x2)(st))(st)
+
+
+
+c_setAssoc :: (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_setAssoc x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.IOExts.c_prim_setAssoc))(x1)(st))(x2)(st)
+
+
+
+c_getAssoc :: (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.Prelude.C_Char))
+c_getAssoc x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_prim_getAssoc))(x1)(st)
+
+
+
+c_readIORef :: (Curry t0) => (Curry.Module.IOExts.C_IORef t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_readIORef x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_prim_readIORef))(x1)(st)
+
+
+
+c_writeIORef :: (Curry t0) => (Curry.Module.IOExts.C_IORef t0) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_writeIORef x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.IOExts.c_prim_writeIORef))(x1)(st))(x2)(st)
+
+
+
+c_prim_execCmd :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T3 Curry.Module.IO.C_Handle Curry.Module.IO.C_Handle Curry.Module.IO.C_Handle)
+c_prim_execCmd x1 st = Curry.Module.IOExts.prim_execCmd(x1)(st)
+
+
+
+c_prim_connectToCmd :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.IO.C_Handle
+c_prim_connectToCmd x1 st = Curry.Module.IOExts.prim_connectToCmd(x1)(st)
+
+
+
+c_prim_setAssoc :: (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_prim_setAssoc x1 x2 st = Curry.Module.IOExts.prim_setAssoc(x1)(x2)(st)
+
+
+
+c_prim_getAssoc :: (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.Prelude.C_Char))
+c_prim_getAssoc x1 st = Curry.Module.IOExts.prim_getAssoc(x1)(st)
+
+
+
+c_newIORef :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.IOExts.C_IORef t0)
+c_newIORef x1 st = Curry.Module.IOExts.newIORef(x1)(st)
+
+
+
+c_prim_readIORef :: (Curry t0) => (Curry.Module.IOExts.C_IORef t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_prim_readIORef x1 st = Curry.Module.IOExts.prim_readIORef(x1)(st)
+
+
+
+c_prim_writeIORef :: (Curry t0) => (Curry.Module.IOExts.C_IORef t0) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_writeIORef x1 x2 st = Curry.Module.IOExts.prim_writeIORef(x1)(x2)(st)
+
+
diff --git a/dist/build/Curry/Module/Integer.hs b/dist/build/Curry/Module/Integer.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Integer.hs
@@ -0,0 +1,312 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Integer (module Curry.Module.Integer) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_pow :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_pow x1 x2 st = Curry.Module.Integer.c_pow_case_25(x1)(x2)(Curry.Module.Prelude.op_62_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_pow'46powaux'463 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_pow'46powaux'463 x1 x2 x3 st = Curry.Module.Integer.c_pow'46powaux'463_case_24(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_ilog :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ilog x1 st = Curry.Module.Integer.c_ilog_case_22(x1)(Curry.Module.Prelude.op_62(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_isqrt :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_isqrt x1 st = Curry.Module.Integer.c_isqrt_case_20(x1)(Curry.Module.Prelude.op_62_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_isqrt'46aux'4621 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_isqrt'46aux'4621 x1 x2 x3 st = Curry.Module.Integer.c_isqrt'46aux'4621_case_17(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.op_43(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st)
+
+
+
+c_factorial :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_factorial x1 st = Curry.Module.Integer.c_factorial_case_15(x1)(Curry.Module.Prelude.op_62_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_binomial :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_binomial x1 x2 st = Curry.Module.Integer.c_binomial_case_13(x1)(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62(x2)(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Prelude.op_62_61(x1)(x2)(st))(st))(st)
+
+
+
+c_binomial'46aux'4641 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_binomial'46aux'4641 x1 x2 st = Curry.Module.Integer.c_binomial'46aux'4641_case_12(x1)(x2)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_abs :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_abs x1 st = Curry.Module.Integer.c_abs_case_11(x1)(Curry.Module.Prelude.op_60(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_max :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_max x1 x2 st = Curry.Module.Integer.c_max_case_10(x1)(x2)(Curry.Module.Prelude.op_60(x1)(x2)(st))(st)
+
+
+
+c_min :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_min x1 x2 st = Curry.Module.Integer.c_min_case_9(x1)(x2)(Curry.Module.Prelude.op_60(x1)(x2)(st))(st)
+
+
+
+c_max3 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_max3 x1 x2 x3 st = Curry.Module.Integer.c_max(x1)(Curry.Module.Integer.c_max(x2)(x3)(st))(st)
+
+
+
+c_min3 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_min3 x1 x2 x3 st = Curry.Module.Integer.c_min(x1)(Curry.Module.Integer.c_min(x2)(x3)(st))(st)
+
+
+
+c_maxlist :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_maxlist x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Integer.c_maxlist_case_8(x2)(x3)(st)
+c_maxlist (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_maxlist(x)(st))(i)(xs)(st)
+c_maxlist x st = Curry.RunTimeSystem.patternFail("Integer.maxlist")(x)
+
+
+
+c_minlist :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_minlist x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Integer.c_minlist_case_7(x2)(x3)(st)
+c_minlist (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_minlist(x)(st))(i)(xs)(st)
+c_minlist x st = Curry.RunTimeSystem.patternFail("Integer.minlist")(x)
+
+
+
+c_bitTrunc :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_bitTrunc x1 x2 st = Curry.Module.Integer.c_bitAnd(Curry.Module.Prelude.op_45(Curry.Module.Integer.c_pow(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x1)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x2)(st)
+
+
+
+c_bitAnd :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_bitAnd x1 x2 st = Curry.Module.Integer.c_bitAnd_case_6(x1)(x2)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_bitOr :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_bitOr x1 x2 st = Curry.Module.Integer.c_bitOr_case_4(x1)(x2)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_bitNot :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_bitNot x1 st = Curry.Module.Integer.c_bitNot'46aux'46100(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(x1)(st)
+
+
+
+c_bitNot'46aux'46100 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_bitNot'46aux'46100 x1 x2 st = Curry.Module.Integer.c_bitNot'46aux'46100_case_2(x1)(x2)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_bitXor :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_bitXor x1 x2 st = Curry.Module.Integer.c_bitXor_case_1(x1)(x2)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_even :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_even x1 st = Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Zero)(st)
+
+
+
+c_odd :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_odd x1 st = Curry.Module.Prelude.op_47_61(Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Zero)(st)
+
+
+
+c_bitXor_case_1 x1 x2 x3@Curry.Module.Prelude.C_True st = x1
+c_bitXor_case_1 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Integer.c_bitXor(Curry.Module.Prelude.c_div(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.c_div(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(Curry.Module.Integer.c_bitXor_case_0(x1)(x2)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(st)
+c_bitXor_case_1 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_bitXor_case_1(x1)(x2)(x)(st))(i)(xs)(st)
+c_bitXor_case_1 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.bitXor_case_1")(x)
+
+
+
+c_bitXor_case_0 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
+c_bitXor_case_0 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_bitXor_case_0 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_bitXor_case_0(x1)(x2)(x)(st))(i)(xs)(st)
+c_bitXor_case_0 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.bitXor_case_0")(x)
+
+
+
+c_bitNot'46aux'46100_case_2 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
+c_bitNot'46aux'46100_case_2 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Integer.c_bitNot'46aux'46100(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.c_div(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(Curry.Module.Prelude.op_45(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st)
+c_bitNot'46aux'46100_case_2 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_bitNot'46aux'46100_case_2(x1)(x2)(x)(st))(i)(xs)(st)
+c_bitNot'46aux'46100_case_2 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.bitNot.aux.100_case_2")(x)
+
+
+
+c_bitOr_case_4 x1 x2 x3@Curry.Module.Prelude.C_True st = x1
+c_bitOr_case_4 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Integer.c_bitOr(Curry.Module.Prelude.c_div(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.c_div(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(Curry.Module.Integer.c_bitOr_case_3(x1)(x2)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st)
+c_bitOr_case_4 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_bitOr_case_4(x1)(x2)(x)(st))(i)(xs)(st)
+c_bitOr_case_4 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.bitOr_case_4")(x)
+
+
+
+c_bitOr_case_3 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_bitOr_case_3 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st)
+c_bitOr_case_3 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_bitOr_case_3(x1)(x2)(x)(st))(i)(xs)(st)
+c_bitOr_case_3 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.bitOr_case_3")(x)
+
+
+
+c_bitAnd_case_6 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
+c_bitAnd_case_6 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Integer.c_bitAnd(Curry.Module.Prelude.c_div(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.c_div(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(Curry.Module.Integer.c_bitAnd_case_5(x1)(x2)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Zero)(st))(st))(st)
+c_bitAnd_case_6 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_bitAnd_case_6(x1)(x2)(x)(st))(i)(xs)(st)
+c_bitAnd_case_6 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.bitAnd_case_6")(x)
+
+
+
+c_bitAnd_case_5 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
+c_bitAnd_case_5 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st)
+c_bitAnd_case_5 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_bitAnd_case_5(x1)(x2)(x)(st))(i)(xs)(st)
+c_bitAnd_case_5 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.bitAnd_case_5")(x)
+
+
+
+c_minlist_case_7 x2 x3@Curry.Module.Prelude.List st = x2
+c_minlist_case_7 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Integer.c_min(x2)(Curry.Module.Integer.c_minlist((Curry.Module.Prelude.:<)(x4)(x5))(st))(st)
+c_minlist_case_7 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_minlist_case_7(x2)(x)(st))(i)(xs)(st)
+c_minlist_case_7 x2 x st = Curry.RunTimeSystem.patternFail("Integer.minlist_case_7")(x)
+
+
+
+c_maxlist_case_8 x2 x3@Curry.Module.Prelude.List st = x2
+c_maxlist_case_8 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Integer.c_max(x2)(Curry.Module.Integer.c_maxlist((Curry.Module.Prelude.:<)(x4)(x5))(st))(st)
+c_maxlist_case_8 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_maxlist_case_8(x2)(x)(st))(i)(xs)(st)
+c_maxlist_case_8 x2 x st = Curry.RunTimeSystem.patternFail("Integer.maxlist_case_8")(x)
+
+
+
+c_min_case_9 x1 x2 x3@Curry.Module.Prelude.C_True st = x1
+c_min_case_9 x1 x2 x3@Curry.Module.Prelude.C_False st = x2
+c_min_case_9 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_min_case_9(x1)(x2)(x)(st))(i)(xs)(st)
+c_min_case_9 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.min_case_9")(x)
+
+
+
+c_max_case_10 x1 x2 x3@Curry.Module.Prelude.C_True st = x2
+c_max_case_10 x1 x2 x3@Curry.Module.Prelude.C_False st = x1
+c_max_case_10 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_max_case_10(x1)(x2)(x)(st))(i)(xs)(st)
+c_max_case_10 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.max_case_10")(x)
+
+
+
+c_abs_case_11 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_negate(x1)(st)
+c_abs_case_11 x1 x2@Curry.Module.Prelude.C_False st = x1
+c_abs_case_11 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_abs_case_11(x1)(x)(st))(i)(xs)(st)
+c_abs_case_11 x1 x st = Curry.RunTimeSystem.patternFail("Integer.abs_case_11")(x)
+
+
+
+c_binomial'46aux'4641_case_12 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_binomial'46aux'4641_case_12 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_42(x2)(Curry.Module.Integer.c_binomial'46aux'4641(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st)
+c_binomial'46aux'4641_case_12 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_binomial'46aux'4641_case_12(x1)(x2)(x)(st))(i)(xs)(st)
+c_binomial'46aux'4641_case_12 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.binomial.aux.41_case_12")(x)
+
+
+
+c_binomial_case_13 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_div(Curry.Module.Integer.c_binomial'46aux'4641(x2)(x1)(st))(Curry.Module.Integer.c_factorial(x2)(st))(st)
+c_binomial_case_13 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_binomial_case_13(x1)(x2)(x)(st))(i)(xs)(st)
+c_binomial_case_13 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.binomial_case_13")(x)
+
+
+
+c_factorial_case_15 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Integer.c_factorial_case_14(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_factorial_case_15 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_factorial_case_15(x1)(x)(st))(i)(xs)(st)
+c_factorial_case_15 x1 x st = Curry.RunTimeSystem.patternFail("Integer.factorial_case_15")(x)
+
+
+
+c_factorial_case_14 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_factorial_case_14 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_42(x1)(Curry.Module.Integer.c_factorial(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st)
+c_factorial_case_14 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_factorial_case_14(x1)(x)(st))(i)(xs)(st)
+c_factorial_case_14 x1 x st = Curry.RunTimeSystem.patternFail("Integer.factorial_case_14")(x)
+
+
+
+c_isqrt'46aux'4621_case_17 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x2
+c_isqrt'46aux'4621_case_17 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = let {x4 = Curry.Module.Prelude.c_div(Curry.Module.Prelude.op_43(x3)(x2)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st)} in Curry.Module.Integer.c_isqrt'46aux'4621_case_16(x1)(x2)(x3)(x4)(Curry.Module.Prelude.op_62(Curry.Module.Prelude.op_42(x4)(x4)(st))(x1)(st))(st)
+c_isqrt'46aux'4621_case_17 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_isqrt'46aux'4621_case_17(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_isqrt'46aux'4621_case_17 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Integer.isqrt.aux.21_case_17")(x)
+
+
+
+c_isqrt'46aux'4621_case_16 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Integer.c_isqrt'46aux'4621(x1)(x2)(x4)(st)
+c_isqrt'46aux'4621_case_16 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Integer.c_isqrt'46aux'4621(x1)(x4)(x3)(st)
+c_isqrt'46aux'4621_case_16 x1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_isqrt'46aux'4621_case_16(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_isqrt'46aux'4621_case_16 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Integer.isqrt.aux.21_case_16")(x)
+
+
+
+c_isqrt_case_20 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Integer.c_isqrt_case_19(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_isqrt_case_20 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_isqrt_case_20(x1)(x)(st))(i)(xs)(st)
+c_isqrt_case_20 x1 x st = Curry.RunTimeSystem.patternFail("Integer.isqrt_case_20")(x)
+
+
+
+c_isqrt_case_19 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
+c_isqrt_case_19 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Integer.c_isqrt_case_18(x1)(Curry.Module.Prelude.op_60(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(st))(st)
+c_isqrt_case_19 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_isqrt_case_19(x1)(x)(st))(i)(xs)(st)
+c_isqrt_case_19 x1 x st = Curry.RunTimeSystem.patternFail("Integer.isqrt_case_19")(x)
+
+
+
+c_isqrt_case_18 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_isqrt_case_18 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Integer.c_isqrt'46aux'4621(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(x1)(st)
+c_isqrt_case_18 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_isqrt_case_18(x1)(x)(st))(i)(xs)(st)
+c_isqrt_case_18 x1 x st = Curry.RunTimeSystem.patternFail("Integer.isqrt_case_18")(x)
+
+
+
+c_ilog_case_22 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Integer.c_ilog_case_21(x1)(Curry.Module.Prelude.op_60(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(st)
+c_ilog_case_22 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_ilog_case_22(x1)(x)(st))(i)(xs)(st)
+c_ilog_case_22 x1 x st = Curry.RunTimeSystem.patternFail("Integer.ilog_case_22")(x)
+
+
+
+c_ilog_case_21 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
+c_ilog_case_21 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Integer.c_ilog(Curry.Module.Prelude.c_div(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(st))(st)
+c_ilog_case_21 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_ilog_case_21(x1)(x)(st))(i)(xs)(st)
+c_ilog_case_21 x1 x st = Curry.RunTimeSystem.patternFail("Integer.ilog_case_21")(x)
+
+
+
+c_pow'46powaux'463_case_24 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x1
+c_pow'46powaux'463_case_24 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Integer.c_pow'46powaux'463(Curry.Module.Prelude.op_42(x1)(Curry.Module.Integer.c_pow'46powaux'463_case_23(x2)(x3)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st))(Curry.Module.Prelude.op_42(x2)(x2)(st))(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st)
+c_pow'46powaux'463_case_24 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_pow'46powaux'463_case_24(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_pow'46powaux'463_case_24 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Integer.pow.powaux.3_case_24")(x)
+
+
+
+c_pow'46powaux'463_case_23 x2 x3 x4@Curry.Module.Prelude.C_True st = x2
+c_pow'46powaux'463_case_23 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_pow'46powaux'463_case_23 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_pow'46powaux'463_case_23(x2)(x3)(x)(st))(i)(xs)(st)
+c_pow'46powaux'463_case_23 x2 x3 x st = Curry.RunTimeSystem.patternFail("Integer.pow.powaux.3_case_23")(x)
+
+
+
+c_pow_case_25 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Integer.c_pow'46powaux'463(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(x1)(x2)(st)
+c_pow_case_25 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Integer.c_pow_case_25(x1)(x2)(x)(st))(i)(xs)(st)
+c_pow_case_25 x1 x2 x st = Curry.RunTimeSystem.patternFail("Integer.pow_case_25")(x)
+
+
diff --git a/dist/build/Curry/Module/Interactive.hs b/dist/build/Curry/Module/Interactive.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Interactive.hs
@@ -0,0 +1,66 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Interactive (module Curry.Module.Interactive) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+printTerm :: (Show t0,Curry t0) => t0 -> Result (C_IO T0)
+printTerm x _ = C_IO (\ _ -> do print x 
+                                Prelude.return (IOVal T0))
+
+
+-- end included
+
+c_interactiveSols :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_interactiveSols x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_putStrLn((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(' '))((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('r'))((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('s'))(Curry.Module.Prelude.List))))))))))))))))))(st)
+c_interactiveSols x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.op_62_62(Curry.Module.Interactive.c_printTerm(x2)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStrLn((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('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('?'))(Curry.Module.Prelude.List))))))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_getLine(st))(Curry.Module.Prelude.pf(Curry.Module.Interactive.c_interactiveSols'46_'35lambda2(x3)))(st))(st))(st)
+c_interactiveSols (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Interactive.c_interactiveSols(x)(st))(i)(xs)(st)
+c_interactiveSols x st = Curry.RunTimeSystem.patternFail("Interactive.interactiveSols")(x)
+
+
+
+c_interactiveSols'46_'35lambda2 :: (Curry t5) => (Curry.Module.Prelude.List t5) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_interactiveSols'46_'35lambda2 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Interactive.c_interactiveSols'46_'35lambda2_case_1(x1)(x3)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Char('n'))(st))(st)
+c_interactiveSols'46_'35lambda2 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Interactive.c_interactiveSols(x1)(st)
+c_interactiveSols'46_'35lambda2 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Interactive.c_interactiveSols'46_'35lambda2(x1)(x)(st))(i)(xs)(st)
+c_interactiveSols'46_'35lambda2 x1 x st = Curry.RunTimeSystem.patternFail("Interactive.interactiveSols._#lambda2")(x)
+
+
+
+c_printIO :: (Curry t0) => (Curry.Module.Prelude.C_IO t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_printIO x1 st = Curry.Module.Prelude.op_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Interactive.c_printIO'46_'35lambda4))(st)
+
+
+
+c_printIO'46_'35lambda4 :: (Curry t25) => t25 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_printIO'46_'35lambda4 x1 st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStr((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(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))(st))(Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.Interactive.c_printTerm))(x1)(st))(st)
+
+
+
+c_interactiveSols'46_'35lambda2_case_1 x1 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T0)(st)
+c_interactiveSols'46_'35lambda2_case_1 x1 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Interactive.c_interactiveSols'46_'35lambda2_case_0(x1)(x3)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Char('N'))(st))(st)
+c_interactiveSols'46_'35lambda2_case_1 x1 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Interactive.c_interactiveSols'46_'35lambda2_case_1(x1)(x3)(x)(st))(i)(xs)(st)
+c_interactiveSols'46_'35lambda2_case_1 x1 x3 x st = Curry.RunTimeSystem.patternFail("Interactive.interactiveSols._#lambda2_case_1")(x)
+
+
+
+c_interactiveSols'46_'35lambda2_case_0 x1 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T0)(st)
+c_interactiveSols'46_'35lambda2_case_0 x1 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Interactive.c_interactiveSols(x1)(st)
+c_interactiveSols'46_'35lambda2_case_0 x1 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Interactive.c_interactiveSols'46_'35lambda2_case_0(x1)(x3)(x)(st))(i)(xs)(st)
+c_interactiveSols'46_'35lambda2_case_0 x1 x3 x st = Curry.RunTimeSystem.patternFail("Interactive.interactiveSols._#lambda2_case_0")(x)
+
+
+
+c_printTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_printTerm x1 st = Curry.Module.Interactive.printTerm(x1)(st)
+
+
diff --git a/dist/build/Curry/Module/List.hs b/dist/build/Curry/Module/List.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/List.hs
@@ -0,0 +1,270 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.List (module Curry.Module.List) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Maybe
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_elemIndex :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe Curry.Module.Prelude.C_Int)
+c_elemIndex x1 st = Curry.Module.List.c_findIndex(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_61_61(x1)))(st)
+
+
+
+c_elemIndices :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_elemIndices x1 st = Curry.Module.Prelude.pf(Curry.Module.List.c_findIndices(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_61_61(x1))))
+
+
+
+c_find :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t0)
+c_find x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Maybe.c_listToMaybe))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_filter(x1)))(st)
+
+
+
+c_findIndex :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe Curry.Module.Prelude.C_Int)
+c_findIndex x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Maybe.c_listToMaybe))(Curry.Module.Prelude.pf(Curry.Module.List.c_findIndices(x1)))(st)
+
+
+
+c_findIndices :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_findIndices x1 x2 st = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.List.c_findIndices'46_'35lambda4(x1)))(Curry.Module.Prelude.List)(Curry.Module.Prelude.c_zip(x2)(Curry.Module.Prelude.c_enumFrom(Curry.Module.Prelude.C_Zero)(st))(st))(st)
+
+
+
+c_findIndices'46_'35lambda4 :: (Curry t7) => (Curry.Module.Prelude.Prim (t7 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.T2 t7 Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_findIndices'46_'35lambda4 x1 x2@(Curry.Module.Prelude.T2 x4 x5) x3 st = Curry.Module.Prelude.op_43_43(Curry.Module.List.c_findIndices'46_'35lambda4_case_11(x1)(x4)(x5)(Curry.Module.Prelude.c_apply(x1)(x4)(st))(st))(x3)(st)
+c_findIndices'46_'35lambda4 x1 (Curry.Module.Prelude.T2Or i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_findIndices'46_'35lambda4(x1)(x)(x3)(st))(i)(xs)(st)
+c_findIndices'46_'35lambda4 x1 x x3 st = Curry.RunTimeSystem.patternFail("List.findIndices._#lambda4")(x)
+
+
+
+c_nub :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_nub x1 st = Curry.Module.List.c_nubBy(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_61_61))(x1)(st)
+
+
+
+c_nubBy :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_nubBy x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_nubBy x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.List.c_nubBy(x1)(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.pf(Curry.Module.List.c_nubBy'46_'35lambda6(x1)(x3)))(x4)(st))(st))
+c_nubBy x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_nubBy(x1)(x)(st))(i)(xs)(st)
+c_nubBy x1 x st = Curry.RunTimeSystem.patternFail("List.nubBy")(x)
+
+
+
+c_nubBy'46_'35lambda6 :: (Curry t45) => (Curry.Module.Prelude.Prim (t45 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t45 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t45 -> t45 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_nubBy'46_'35lambda6 x1 x2 x3 st = Curry.Module.Prelude.c_not(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(x3)(st))(st)
+
+
+
+c_delete :: (Curry t0) => t0 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_delete x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_delete x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.List.c_delete_case_10(x1)(x3)(x4)(Curry.Module.Prelude.op_61_61(x1)(x3)(st))(st)
+c_delete x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_delete(x1)(x)(st))(i)(xs)(st)
+c_delete x1 x st = Curry.RunTimeSystem.patternFail("List.delete")(x)
+
+
+
+op_92_92 :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+op_92_92 x1 x2 st = Curry.Module.Prelude.c_foldl(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(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.List.c_delete))))(x1)(x2)(st)
+
+
+
+c_union :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_union x1@Curry.Module.Prelude.List x2 st = x2
+c_union x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.List.c_union_case_9(x2)(x3)(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x3)(st))(x2)(st))(st)
+c_union (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_union(x)(x2)(st))(i)(xs)(st)
+c_union x x2 st = Curry.RunTimeSystem.patternFail("List.union")(x)
+
+
+
+c_intersect :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_intersect x1@Curry.Module.Prelude.List x2 st = Curry.Module.Prelude.List
+c_intersect x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.List.c_intersect_case_8(x2)(x3)(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x3)(st))(x2)(st))(st)
+c_intersect (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_intersect(x)(x2)(st))(i)(xs)(st)
+c_intersect x x2 st = Curry.RunTimeSystem.patternFail("List.intersect")(x)
+
+
+
+c_intersperse :: (Curry t0) => t0 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_intersperse x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_intersperse x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.List.c_intersperse_case_7(x1)(x3)(x4)(st)
+c_intersperse x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_intersperse(x1)(x)(st))(i)(xs)(st)
+c_intersperse x1 x st = Curry.RunTimeSystem.patternFail("List.intersperse")(x)
+
+
+
+c_transpose :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)
+c_transpose x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_transpose x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.List.c_transpose_case_6(x3)(x2)(st)
+c_transpose (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_transpose(x)(st))(i)(xs)(st)
+c_transpose x st = Curry.RunTimeSystem.patternFail("List.transpose")(x)
+
+
+
+c_partition :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List t0)
+c_partition x1 x2 st = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.List.c_partition'46select'4653(x1)))(Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.List))(x2)(st)
+
+
+
+c_partition'46select'4653 :: (Curry t146) => (Curry.Module.Prelude.Prim (t146 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> t146 -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t146) (Curry.Module.Prelude.List t146)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t146) (Curry.Module.Prelude.List t146)
+c_partition'46select'4653 x1 x2 x3@(Curry.Module.Prelude.T2 x4 x5) st = Curry.Module.List.c_partition'46select'4653_case_5(x1)(x2)(x4)(x5)(Curry.Module.Prelude.c_apply(x1)(x2)(st))(st)
+c_partition'46select'4653 x1 x2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_partition'46select'4653(x1)(x2)(x)(st))(i)(xs)(st)
+c_partition'46select'4653 x1 x2 x st = Curry.RunTimeSystem.patternFail("List.partition.select.53")(x)
+
+
+
+c_group :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t0))
+c_group st = Curry.Module.Prelude.pf(Curry.Module.List.c_groupBy(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_61_61)))
+
+
+
+c_groupBy :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)
+c_groupBy x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_groupBy x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = let {x5 = Curry.Module.Prelude.c_span(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x4)(st)} in (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x3)(Curry.Module.List.c_groupBy'46_'35selFP3'35ys(x5)(st)))(Curry.Module.List.c_groupBy(x1)(Curry.Module.List.c_groupBy'46_'35selFP4'35zs(x5)(st))(st))
+c_groupBy x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_groupBy(x1)(x)(st))(i)(xs)(st)
+c_groupBy x1 x st = Curry.RunTimeSystem.patternFail("List.groupBy")(x)
+
+
+
+c_groupBy'46_'35selFP3'35ys :: (Curry t154) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t154) (Curry.Module.Prelude.List t154)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t154
+c_groupBy'46_'35selFP3'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_groupBy'46_'35selFP3'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_groupBy'46_'35selFP3'35ys(x)(st))(i)(xs)(st)
+c_groupBy'46_'35selFP3'35ys x st = Curry.RunTimeSystem.patternFail("List.groupBy._#selFP3#ys")(x)
+
+
+
+c_groupBy'46_'35selFP4'35zs :: (Curry t154) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t154) (Curry.Module.Prelude.List t154)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t154
+c_groupBy'46_'35selFP4'35zs x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_groupBy'46_'35selFP4'35zs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_groupBy'46_'35selFP4'35zs(x)(st))(i)(xs)(st)
+c_groupBy'46_'35selFP4'35zs x st = Curry.RunTimeSystem.patternFail("List.groupBy._#selFP4#zs")(x)
+
+
+
+c_replace :: (Curry t0) => t0 -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_replace x1 x2 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_replace x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.List.c_replace_case_4(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_replace x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_replace(x1)(x2)(x)(st))(i)(xs)(st)
+c_replace x1 x2 x st = Curry.RunTimeSystem.patternFail("List.replace")(x)
+
+
+
+c_isPrefixOf :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isPrefixOf x1@Curry.Module.Prelude.List x2 st = Curry.Module.Prelude.C_True
+c_isPrefixOf x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.List.c_isPrefixOf_case_2(x3)(x4)(x2)(st)
+c_isPrefixOf (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_isPrefixOf(x)(x2)(st))(i)(xs)(st)
+c_isPrefixOf x x2 st = Curry.RunTimeSystem.patternFail("List.isPrefixOf")(x)
+
+
+
+c_sortBy :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_sortBy 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.List.c_insertBy(x1)))(Curry.Module.Prelude.List))
+
+
+
+c_insertBy :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t0 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_insertBy x1 x2 x3@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)
+c_insertBy x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.List.c_insertBy_case_1(x1)(x2)(x4)(x5)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(x4)(st))(st)
+c_insertBy x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_insertBy(x1)(x2)(x)(st))(i)(xs)(st)
+c_insertBy x1 x2 x st = Curry.RunTimeSystem.patternFail("List.insertBy")(x)
+
+
+
+c_last :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0
+c_last x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.List.c_last_case_0(x2)(x3)(st)
+c_last (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_last(x)(st))(i)(xs)(st)
+c_last x st = Curry.RunTimeSystem.patternFail("List.last")(x)
+
+
+
+c_last_case_0 x2 x3@Curry.Module.Prelude.List st = x2
+c_last_case_0 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.List.c_last((Curry.Module.Prelude.:<)(x4)(x5))(st)
+c_last_case_0 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_last_case_0(x2)(x)(st))(i)(xs)(st)
+c_last_case_0 x2 x st = Curry.RunTimeSystem.patternFail("List.last_case_0")(x)
+
+
+
+c_insertBy_case_1 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x2)((Curry.Module.Prelude.:<)(x4)(x5))
+c_insertBy_case_1 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x4)(Curry.Module.List.c_insertBy(x1)(x2)(x5)(st))
+c_insertBy_case_1 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_insertBy_case_1(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_insertBy_case_1 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("List.insertBy_case_1")(x)
+
+
+
+c_isPrefixOf_case_2 x3 x4 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_False
+c_isPrefixOf_case_2 x3 x4 x2@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x3)(x5)(st))(Curry.Module.List.c_isPrefixOf(x4)(x6)(st))(st)
+c_isPrefixOf_case_2 x3 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_isPrefixOf_case_2(x3)(x4)(x)(st))(i)(xs)(st)
+c_isPrefixOf_case_2 x3 x4 x st = Curry.RunTimeSystem.patternFail("List.isPrefixOf_case_2")(x)
+
+
+
+c_replace_case_4 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x1)(x5)
+c_replace_case_4 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.List.c_replace_case_3(x1)(x2)(x4)(x5)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_replace_case_4 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_replace_case_4(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_replace_case_4 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("List.replace_case_4")(x)
+
+
+
+c_replace_case_3 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x4)(Curry.Module.List.c_replace(x1)(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x5)(st))
+c_replace_case_3 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_replace_case_3(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_replace_case_3 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("List.replace_case_3")(x)
+
+
+
+c_partition'46select'4653_case_5 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x2)(x4))(x5)
+c_partition'46select'4653_case_5 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.T2(x4)((Curry.Module.Prelude.:<)(x2)(x5))
+c_partition'46select'4653_case_5 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_partition'46select'4653_case_5(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_partition'46select'4653_case_5 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("List.partition.select.53_case_5")(x)
+
+
+
+c_transpose_case_6 x3 x2@Curry.Module.Prelude.List st = Curry.Module.List.c_transpose(x3)(st)
+c_transpose_case_6 x3 x2@((Curry.Module.Prelude.:<) x4 x5) st = (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x4)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_head))(x3)(st)))(Curry.Module.List.c_transpose((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_tail))(x3)(st)))(st))
+c_transpose_case_6 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_transpose_case_6(x3)(x)(st))(i)(xs)(st)
+c_transpose_case_6 x3 x st = Curry.RunTimeSystem.patternFail("List.transpose_case_6")(x)
+
+
+
+c_intersperse_case_7 x1 x3 x4@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List)
+c_intersperse_case_7 x1 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = (Curry.Module.Prelude.:<)(x3)((Curry.Module.Prelude.:<)(x1)(Curry.Module.List.c_intersperse(x1)((Curry.Module.Prelude.:<)(x5)(x6))(st)))
+c_intersperse_case_7 x1 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_intersperse_case_7(x1)(x3)(x)(st))(i)(xs)(st)
+c_intersperse_case_7 x1 x3 x st = Curry.RunTimeSystem.patternFail("List.intersperse_case_7")(x)
+
+
+
+c_intersect_case_8 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.List.c_intersect(x4)(x2)(st))
+c_intersect_case_8 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.List.c_intersect(x4)(x2)(st)
+c_intersect_case_8 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_intersect_case_8(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_intersect_case_8 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("List.intersect_case_8")(x)
+
+
+
+c_union_case_9 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.List.c_union(x4)(x2)(st)
+c_union_case_9 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.List.c_union(x4)(x2)(st))
+c_union_case_9 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_union_case_9(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_union_case_9 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("List.union_case_9")(x)
+
+
+
+c_delete_case_10 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = x4
+c_delete_case_10 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.List.c_delete(x1)(x4)(st))
+c_delete_case_10 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_delete_case_10(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_delete_case_10 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("List.delete_case_10")(x)
+
+
+
+c_findIndices'46_'35lambda4_case_11 x1 x4 x5 x6@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.List)
+c_findIndices'46_'35lambda4_case_11 x1 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.List
+c_findIndices'46_'35lambda4_case_11 x1 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.List.c_findIndices'46_'35lambda4_case_11(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_findIndices'46_'35lambda4_case_11 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("List.findIndices._#lambda4_case_11")(x)
+
+
diff --git a/dist/build/Curry/Module/Maybe.hs b/dist/build/Curry/Module/Maybe.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Maybe.hs
@@ -0,0 +1,113 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Maybe (module Curry.Module.Maybe) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_isJust :: (Curry t0) => (Curry.Module.Prelude.C_Maybe t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isJust x1@(Curry.Module.Prelude.C_Just x2) st = Curry.Module.Prelude.C_True
+c_isJust x1@Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.C_False
+c_isJust (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.c_isJust(x)(st))(i)(xs)(st)
+c_isJust x st = Curry.RunTimeSystem.patternFail("Maybe.isJust")(x)
+
+
+
+c_isNothing :: (Curry t0) => (Curry.Module.Prelude.C_Maybe t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isNothing x1@Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.C_True
+c_isNothing x1@(Curry.Module.Prelude.C_Just x2) st = Curry.Module.Prelude.C_False
+c_isNothing (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.c_isNothing(x)(st))(i)(xs)(st)
+c_isNothing x st = Curry.RunTimeSystem.patternFail("Maybe.isNothing")(x)
+
+
+
+c_fromJust :: (Curry t0) => (Curry.Module.Prelude.C_Maybe t0) -> Curry.RunTimeSystem.State -> t0
+c_fromJust x1@(Curry.Module.Prelude.C_Just x2) st = x2
+c_fromJust x1@Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.c_error((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('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((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('r'))((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('J'))((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('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('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('h'))((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)
+c_fromJust (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.c_fromJust(x)(st))(i)(xs)(st)
+c_fromJust x st = Curry.RunTimeSystem.patternFail("Maybe.fromJust")(x)
+
+
+
+c_fromMaybe :: (Curry t0) => t0 -> (Curry.Module.Prelude.C_Maybe t0) -> Curry.RunTimeSystem.State -> t0
+c_fromMaybe x1 x2@Curry.Module.Prelude.C_Nothing st = x1
+c_fromMaybe x1 x2@(Curry.Module.Prelude.C_Just x3) st = x3
+c_fromMaybe x1 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.c_fromMaybe(x1)(x)(st))(i)(xs)(st)
+c_fromMaybe x1 x st = Curry.RunTimeSystem.patternFail("Maybe.fromMaybe")(x)
+
+
+
+c_maybeToList :: (Curry t0) => (Curry.Module.Prelude.C_Maybe t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_maybeToList x1@Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.List
+c_maybeToList x1@(Curry.Module.Prelude.C_Just x2) st = (Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)
+c_maybeToList (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.c_maybeToList(x)(st))(i)(xs)(st)
+c_maybeToList x st = Curry.RunTimeSystem.patternFail("Maybe.maybeToList")(x)
+
+
+
+c_listToMaybe :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t0
+c_listToMaybe x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Nothing
+c_listToMaybe x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.C_Just(x2)
+c_listToMaybe (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.c_listToMaybe(x)(st))(i)(xs)(st)
+c_listToMaybe x st = Curry.RunTimeSystem.patternFail("Maybe.listToMaybe")(x)
+
+
+
+c_catMaybes :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.C_Maybe t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_catMaybes x1 st = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Maybe.c_catMaybes'46_'35lambda4))(Curry.Module.Prelude.List)(x1)(st)
+
+
+
+c_catMaybes'46_'35lambda4 :: (Curry t37) => (Curry.Module.Prelude.C_Maybe t37) -> (Curry.Module.Prelude.List t37) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t37
+c_catMaybes'46_'35lambda4 x1@(Curry.Module.Prelude.C_Just x3) x2 st = (Curry.Module.Prelude.:<)(x3)(x2)
+c_catMaybes'46_'35lambda4 x1@Curry.Module.Prelude.C_Nothing x2 st = x2
+c_catMaybes'46_'35lambda4 (Curry.Module.Prelude.C_MaybeOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.c_catMaybes'46_'35lambda4(x)(x2)(st))(i)(xs)(st)
+c_catMaybes'46_'35lambda4 x x2 st = Curry.RunTimeSystem.patternFail("Maybe.catMaybes._#lambda4")(x)
+
+
+
+c_mapMaybe :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1)
+c_mapMaybe x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Maybe.c_catMaybes))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(x1)))(st)
+
+
+
+op_62_62_45 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.C_Maybe t0) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1
+op_62_62_45 x1@Curry.Module.Prelude.C_Nothing x2 st = Curry.Module.Prelude.C_Nothing
+op_62_62_45 x1@(Curry.Module.Prelude.C_Just x3) x2 st = Curry.Module.Prelude.c_apply(x2)(x3)(st)
+op_62_62_45 (Curry.Module.Prelude.C_MaybeOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.op_62_62_45(x)(x2)(st))(i)(xs)(st)
+op_62_62_45 x x2 st = Curry.RunTimeSystem.patternFail("Maybe.>>-")(x)
+
+
+
+c_sequenceMaybe :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.C_Maybe t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List t0)
+c_sequenceMaybe x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Just(Curry.Module.Prelude.List)
+c_sequenceMaybe x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Maybe.op_62_62_45(x2)(Curry.Module.Prelude.pf(Curry.Module.Maybe.c_sequenceMaybe'46_'35lambda6(x3)))(st)
+c_sequenceMaybe (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Maybe.c_sequenceMaybe(x)(st))(i)(xs)(st)
+c_sequenceMaybe x st = Curry.RunTimeSystem.patternFail("Maybe.sequenceMaybe")(x)
+
+
+
+c_sequenceMaybe'46_'35lambda6 :: (Curry t66) => (Curry.Module.Prelude.List (Curry.Module.Prelude.C_Maybe t66)) -> t66 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List t66)
+c_sequenceMaybe'46_'35lambda6 x1 x2 st = Curry.Module.Maybe.op_62_62_45(Curry.Module.Maybe.c_sequenceMaybe(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Maybe.c_sequenceMaybe'46_'35lambda6'46_'35lambda7(x2)))(st)
+
+
+
+c_sequenceMaybe'46_'35lambda6'46_'35lambda7 :: (Curry t66) => t66 -> (Curry.Module.Prelude.List t66) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List t66)
+c_sequenceMaybe'46_'35lambda6'46_'35lambda7 x1 x2 st = Curry.Module.Prelude.C_Just((Curry.Module.Prelude.:<)(x1)(x2))
+
+
+
+c_mapMMaybe :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List t1))
+c_mapMMaybe x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Maybe.c_sequenceMaybe))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(x1)))(st)
+
+
diff --git a/dist/build/Curry/Module/Meta.hs b/dist/build/Curry/Module/Meta.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Meta.hs
@@ -0,0 +1,788 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Meta (module Curry.Module.Meta) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+import System.Mem.Weak ( addFinalizer )
+import Control.Concurrent
+import System.IO.Unsafe ( unsafeInterleaveIO )
+import Debug.Trace ( trace )
+import Data.List
+
+data C_OrRef = C_OrRef OrRef
+  | C_OrRefFail Curry.RunTimeSystem.C_Exceptions
+  | C_OrRefOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches C_OrRef)
+
+instance BaseCurry C_OrRef where
+  nf f x state = f(x)(state)
+
+  gnf f x state = f(x)(state)
+
+  generator _ = error "free Variable of type OrRef"
+
+  failed  = C_OrRefFail
+
+  branching  = C_OrRefOr
+
+  consKind (C_OrRefOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (C_OrRefFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (C_OrRefFail x) = x
+
+  orRef (C_OrRefOr x _) = x
+
+  branches (C_OrRefOr _ x) = x
+
+instance Curry C_OrRef where
+  strEq (C_OrRef x1) (C_OrRef y1) _ 
+     = if x1 Prelude.== y1 then strEqSuccess else strEqFail "OrRef"
+  strEq x0 _ _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (C_OrRef x1) (C_OrRef y1) _ = 
+    if x1 Prelude.== y1 then C_True else C_False
+  eq _ _ _ = C_False
+
+  typeName _ = "OrRef"
+
+  propagate _ o _ = o
+  
+  foldCurry _ c _ _ = c
+
+  showQ d (C_OrRef x1) = showParen (d>10) (showString "Unsafe.OrRef" . showsPrec d x1)
+
+
+
+
+
+instance Show C_OrRef where
+  showsPrec d (C_OrRef x1) = showParen (d>10) (showString "OrRef" . showsPrec d x1)
+
+
+instance Read C_OrRef where
+  readsPrec d r = [ (C_OrRef ref,s) | (ref,s) <- readsPrec d r]
+
+
+---------------------------------------------------------------------------------
+-- test for free variable
+---------------------------------------------------------------------------------
+
+prim_isFree :: (Curry t0) => t0 -> Result (C_IO (C_Either t0 t0))
+prim_isFree x _ = C_IO (\ _ -> case consKind x of
+  Branching -> Prelude.return (IOVal (if isGenerator (orRef x) 
+                              then C_Left x 
+                              else C_Right x))
+  _         -> Prelude.return (IOVal (C_Right x)))
+
+---------------------------------------------------------------------------------
+-- various normal forms in io monad
+---------------------------------------------------------------------------------
+
+-- yield head normal form with current state 
+-- (including fetching and looking up variable bindings)
+-- then apply continuation on it and make sure that you got a value
+-- of type io before finally executing that action.
+
+headNormalFormIO :: (Curry a,Curry b) => Prim (a -> Result (C_IO b)) -> a -> Result (C_IO b)
+headNormalFormIO cont x _ = 
+  C_IO (hnfCTC (\ x' st -> hnfCTC exec2 (apply cont x' st) st) x)
+
+searchTree :: Curry a => a -> Result (C_SearchTree a)
+searchTree = searchTr 
+
+hnfIO  x _ = C_IO (hnfCTC  (\ x _ -> Prelude.return (IOVal x)) x)
+nfIO   x _ = C_IO (nfCTC   (\ x _ -> Prelude.return (IOVal x)) x)
+gnfIO  x _ = C_IO (ghnfCTC (\ x _ -> Prelude.return (IOVal x)) x)
+ghnfIO x _ = C_IO (ghnfCTC (\ x _ -> Prelude.return (IOVal x)) x)
+
+---------------------------------------------------------------------------------
+-- rich search trees
+---------------------------------------------------------------------------------
+
+getRichSearchTree :: Curry a => a -> Result (C_IO (C_RichSearchTree a))
+getRichSearchTree x _ = C_IO (\ state -> Prelude.return (IOVal (richSearchTr x state)))
+
+richSearchTree :: Curry a => a -> Result (C_RichSearchTree a)
+richSearchTree = richSearchTr 
+
+--inject :: Curry a => C_Context -> a -> C_RichSearchTree a
+--inject (Context c) = richSearchTr c
+ 
+richSearchTr :: Curry a => a -> Result (C_RichSearchTree a)
+richSearchTr x state = 
+  transVal (nfCTC (nfCTC (\ x _ -> x)) x state)
+  where
+    transVal x = case consKind x of
+                   Val       -> C_RichValue x
+                   Failed    -> C_RichFail (toCurry (exceptions x))
+                   Branching -> transBranching (orRef x) (branches x)
+
+    transBranching _  []         = C_RichFail (C_ErrorCall List)
+    transBranching _  [x]        = transVal x
+    transBranching r  xs@(_:_:_) = C_RichChoice (C_OrRef r)
+                                            (fromHaskellList (map transVal xs))
+
+instance ConvertCH C_Exception Exception where
+  toCurry (ErrorCall s)        = C_ErrorCall (toCurry s)
+  toCurry (PatternMatchFail s) = C_PatternMatchFail (toCurry s)
+  toCurry (AssertionFailed s)  = C_AssertionFailed (toCurry s)
+  toCurry (IOException s)      = C_IOException (toCurry s)
+  toCurry PreludeFailed        = C_PreludeFailed
+
+  fromCurry (C_ErrorCall s)        = ErrorCall (fromCurry s)
+  fromCurry (C_PatternMatchFail s) = PatternMatchFail (fromCurry s)
+  fromCurry (C_AssertionFailed s)  = AssertionFailed (fromCurry s)
+  fromCurry (C_IOException s)      = IOException (fromCurry s)
+  fromCurry C_PreludeFailed        = PreludeFailed
+
+---------------------------------------------------------------------------------
+-- parallel search
+---------------------------------------------------------------------------------
+
+parallelSearch :: Curry a => a -> Result (C_IO (List a))
+parallelSearch v _ = C_IO (\state -> do
+  chan <- newChan
+  mvar <- newEmptyMVar
+  qsem <- newMyQSem 0
+  tid <- forkIO (searchThread qsem mvar chan 
+                              (nfCTC (nfCTC (\ x _ -> x)) v state))
+  putMVar mvar [tid]
+  --addFinalizer res (stopSearch mvar2)
+  res <- myGetChanContents qsem chan
+  Prelude.return (IOVal (fromHaskellList res)))
+
+
+myGetChanContents :: Show a => MyQSem -> Chan (Maybe a) -> IO [a]
+myGetChanContents qsem chan =
+  unsafeInterleaveIO ( do
+    decMyQSem qsem
+    x <- readChan chan
+    case x of
+         Nothing -> Prelude.return []
+         Just y -> do
+            xs <- myGetChanContents qsem chan
+            Prelude.return (y:xs) )
+
+
+stopSearch :: MVar [ThreadId] -> IO ()
+stopSearch mvar = do
+  print "start"
+  ids <- takeMVar mvar
+  mapM_ killThread ids
+  --putMVar mvar []
+
+
+removeId :: MVar [ThreadId] -> Chan (Maybe a) -> ThreadId -> IO ()
+removeId mvar chan tid = do
+  ids <- takeMVar mvar
+  let newids = delete tid ids
+  case newids of
+       [] -> writeChan chan Nothing -- >> putMVar mvar []
+       _  -> putMVar mvar newids 
+
+
+searchThread :: Curry a => MyQSem -> MVar [ThreadId] -> Chan (Maybe a) 
+             -> a -> IO ()
+searchThread qsem mvar chan x = do
+  case consKind x of
+    Val       -> incMyQSem qsem >> writeChan chan (Just x) >> terminate
+    Failed    -> terminate
+    Branching -> do
+      --yield
+      testMyQSem qsem
+      let b:bs = branches x
+      -- to prevent the threads from terminating till their Ids are registered
+      ids <- takeMVar mvar  
+      newIds <- mapM (forkIO . searchThread qsem mvar chan) bs
+      putMVar mvar (newIds++ids)
+      searchThread qsem mvar chan b
+ where
+  noThreads = do
+    ids <- takeMVar mvar
+    putStrLn ("noThreads: " ++ show (length ids))
+    putMVar mvar ids
+  terminate = do
+    tid <- myThreadId
+    removeId mvar chan tid
+
+newtype MyQSem = MyQSem (MVar (Int, [MVar ()]))
+
+-- |Build a new 'MyQSem'
+newMyQSem :: Int -> IO MyQSem
+newMyQSem init = do
+   sem <- newMVar (init,[])
+   Prelude.return (MyQSem sem)
+
+
+-- |Wait for a unit to become available
+incMyQSem :: MyQSem -> IO ()
+incMyQSem (MyQSem sem) = do
+   (avail,blocked) <- takeMVar sem
+   putMVar sem (avail+1,blocked)
+
+
+-- |Signal that a unit of the 'MyQSem' is available
+decMyQSem :: MyQSem -> IO ()
+decMyQSem (MyQSem sem) = do
+   (avail,blocked) <- takeMVar sem
+   if avail>0 then putMVar sem (avail-1,blocked)
+              else mapM_ (flip putMVar ()) blocked >> putMVar sem (avail-1,[]) 
+
+
+testMyQSem :: MyQSem -> IO ()
+testMyQSem (MyQSem sem) = do
+   x@(avail,blocked) <- takeMVar sem
+   if avail<0 then putMVar sem x
+              else do
+                block <- newEmptyMVar
+                putMVar sem (avail,block:blocked)
+                takeMVar block
+
+-------------------------------
+-- covering non-determinism
+-------------------------------
+
+cover :: Curry a => a -> Result a
+cover x st = case consKind x of
+              Branching -> branching (Curry.RunTimeSystem.cover (orRef x)) 
+                                     (map (flip Curry.Module.Meta.cover st) (branches x))
+              _ -> x
+
+-----------------------------------
+-- encapsulate to head normal form
+-----------------------------------
+
+st :: Curry a => a -> Result (C_SearchTree a)
+st x s = transVal (hnfCTC (\ x _ -> x) x s)
+  where
+    transVal x = case consKind x of
+        Val       -> C_Value x
+        Failed    -> C_Fail
+        Branching -> let ref = orRef x in 
+          if   isCovered ref
+          then C_SearchTreeOr (uncover ref) (map (flip st s) (branches x))
+          else C_Choice (fromHaskellList (map transVal (branches x)))
+
+-----------------------------------
+-- encapsulate to head normal form
+-----------------------------------
+
+richST :: Curry a => a -> Result (C_RichSearchTree a)
+richST x s = transVal (hnfCTC (\ x _ -> x) x s)
+  where
+    transVal x = case consKind x of
+        Val       -> C_RichValue x
+        Failed    -> C_RichFail (toCurry (exceptions x))
+        Branching -> let ref = orRef x in 
+          if   isCovered ref
+          then C_RichSearchTreeOr (uncover ref) 
+                                  (map (flip richST s) (branches x))
+          else C_RichChoice (C_OrRef (orRef x))
+                        (fromHaskellList (map transVal (branches x)))
+
+-----------------------------
+-- the general question mark
+-----------------------------
+
+ors :: Curry a => List a -> Result a
+ors xs _ = branching (error "Unsafe.ors") (toHaskellList xs)
+
+
+-- temporarily added
+
+prim_throw :: Curry a => C_Exception -> Result a
+prim_throw e _ = Curry.RunTimeSystem.failed (fromCurry e)
+
+
+-- end included
+
+data C_RichSearchTree t0 = C_RichFail Curry.Module.Meta.C_Exception
+  | C_RichValue t0
+  | C_RichChoice Curry.Module.Meta.C_OrRef (Curry.Module.Prelude.List (Curry.Module.Meta.C_RichSearchTree t0))
+  | C_RichSuspend
+  | C_RichSearchTreeFail Curry.RunTimeSystem.C_Exceptions
+  | C_RichSearchTreeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Meta.C_RichSearchTree t0))
+
+data C_Exception = C_ErrorCall (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+  | C_PatternMatchFail (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+  | C_AssertionFailed (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+  | C_IOException (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+  | C_PreludeFailed
+  | C_ExceptionFail Curry.RunTimeSystem.C_Exceptions
+  | C_ExceptionOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Meta.C_Exception)
+
+data C_Seq t0 = C_Nil
+  | C_Cons t0 (Curry.Module.Meta.C_Seq t0)
+  | C_Continued (Curry.Module.Meta.C_Seq t0)
+  | C_SeqFail Curry.RunTimeSystem.C_Exceptions
+  | C_SeqOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Meta.C_Seq t0))
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.Meta.C_RichSearchTree t0) where
+  nf f (Curry.Module.Meta.C_RichFail x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_RichFail(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Meta.C_RichValue x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_RichValue(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Meta.C_RichChoice x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Meta.C_RichChoice(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Meta.C_RichFail x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_RichFail(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Meta.C_RichValue x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_RichValue(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Meta.C_RichChoice x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Meta.C_RichChoice(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Meta.C_RichSearchTreeOr(Curry.RunTimeSystem.mkRef(r)(2)(i))([Curry.Module.Meta.C_RichFail(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Meta.C_RichValue(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Meta.C_RichChoice(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Meta.C_RichSuspend]))(2)
+
+  failed  = Curry.Module.Meta.C_RichSearchTreeFail
+
+  branching  = Curry.Module.Meta.C_RichSearchTreeOr
+
+  consKind (Curry.Module.Meta.C_RichSearchTreeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Meta.C_RichSearchTreeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Meta.C_RichSearchTreeFail x) = x
+
+  orRef (Curry.Module.Meta.C_RichSearchTreeOr x _) = x
+
+  branches (Curry.Module.Meta.C_RichSearchTreeOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.Meta.C_Exception where
+  nf f (Curry.Module.Meta.C_ErrorCall x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_ErrorCall(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Meta.C_PatternMatchFail x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_PatternMatchFail(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Meta.C_AssertionFailed x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_AssertionFailed(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Meta.C_IOException x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_IOException(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Meta.C_ErrorCall x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_ErrorCall(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Meta.C_PatternMatchFail x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_PatternMatchFail(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Meta.C_AssertionFailed x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_AssertionFailed(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Meta.C_IOException x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_IOException(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Meta.C_ExceptionOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Meta.C_ErrorCall(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Meta.C_PatternMatchFail(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Meta.C_AssertionFailed(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Meta.C_IOException(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Meta.C_PreludeFailed]))(1)
+
+  failed  = Curry.Module.Meta.C_ExceptionFail
+
+  branching  = Curry.Module.Meta.C_ExceptionOr
+
+  consKind (Curry.Module.Meta.C_ExceptionOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Meta.C_ExceptionFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Meta.C_ExceptionFail x) = x
+
+  orRef (Curry.Module.Meta.C_ExceptionOr x _) = x
+
+  branches (Curry.Module.Meta.C_ExceptionOr _ x) = x
+
+
+
+
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.Meta.C_Seq t0) where
+  nf f (Curry.Module.Meta.C_Cons x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Meta.C_Cons(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Meta.C_Continued x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_Continued(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Meta.C_Cons x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Meta.C_Cons(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Meta.C_Continued x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Meta.C_Continued(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Meta.C_SeqOr(Curry.RunTimeSystem.mkRef(r)(2)(i))([Curry.Module.Meta.C_Nil,Curry.Module.Meta.C_Cons(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Meta.C_Continued(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(2)
+
+  failed  = Curry.Module.Meta.C_SeqFail
+
+  branching  = Curry.Module.Meta.C_SeqOr
+
+  consKind (Curry.Module.Meta.C_SeqOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Meta.C_SeqFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Meta.C_SeqFail x) = x
+
+  orRef (Curry.Module.Meta.C_SeqOr x _) = x
+
+  branches (Curry.Module.Meta.C_SeqOr _ x) = x
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.Meta.C_RichSearchTree t0) where
+  strEq (Curry.Module.Meta.C_RichFail x1) (Curry.Module.Meta.C_RichFail y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Meta.C_RichValue x1) (Curry.Module.Meta.C_RichValue y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Meta.C_RichChoice x1 x2) (Curry.Module.Meta.C_RichChoice y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq Curry.Module.Meta.C_RichSuspend Curry.Module.Meta.C_RichSuspend st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Meta.C_RichFail x1) (Curry.Module.Meta.C_RichFail y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Meta.C_RichValue x1) (Curry.Module.Meta.C_RichValue y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Meta.C_RichChoice x1 x2) (Curry.Module.Meta.C_RichChoice y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq Curry.Module.Meta.C_RichSuspend Curry.Module.Meta.C_RichSuspend st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Meta.C_RichFail x1) st = Curry.Module.Meta.C_RichFail(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Meta.C_RichValue x1) st = Curry.Module.Meta.C_RichValue(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Meta.C_RichChoice x1 x2) st = Curry.Module.Meta.C_RichChoice(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+  propagate f Curry.Module.Meta.C_RichSuspend st = Curry.Module.Meta.C_RichSuspend
+
+  foldCurry f c (Curry.Module.Meta.C_RichFail x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Meta.C_RichValue x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Meta.C_RichChoice x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+  foldCurry f c Curry.Module.Meta.C_RichSuspend st = c
+
+  typeName _ = "RichSearchTree"
+
+  showQ d (Curry.Module.Meta.C_RichFail x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.RichFail "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Meta.C_RichValue x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.RichValue "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Meta.C_RichChoice x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.RichChoice "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ _ Curry.Module.Meta.C_RichSuspend = Prelude.showString("Meta.RichSuspend")
+  showQ _ (Curry.Module.Meta.C_RichSearchTreeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.Meta.C_Exception where
+  strEq (Curry.Module.Meta.C_ErrorCall x1) (Curry.Module.Meta.C_ErrorCall y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Meta.C_PatternMatchFail x1) (Curry.Module.Meta.C_PatternMatchFail y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Meta.C_AssertionFailed x1) (Curry.Module.Meta.C_AssertionFailed y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Meta.C_IOException x1) (Curry.Module.Meta.C_IOException y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq Curry.Module.Meta.C_PreludeFailed Curry.Module.Meta.C_PreludeFailed st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Meta.C_ErrorCall x1) (Curry.Module.Meta.C_ErrorCall y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Meta.C_PatternMatchFail x1) (Curry.Module.Meta.C_PatternMatchFail y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Meta.C_AssertionFailed x1) (Curry.Module.Meta.C_AssertionFailed y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Meta.C_IOException x1) (Curry.Module.Meta.C_IOException y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq Curry.Module.Meta.C_PreludeFailed Curry.Module.Meta.C_PreludeFailed st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Meta.C_ErrorCall x1) st = Curry.Module.Meta.C_ErrorCall(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Meta.C_PatternMatchFail x1) st = Curry.Module.Meta.C_PatternMatchFail(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Meta.C_AssertionFailed x1) st = Curry.Module.Meta.C_AssertionFailed(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Meta.C_IOException x1) st = Curry.Module.Meta.C_IOException(f((0::Int))(x1)(st))
+  propagate f Curry.Module.Meta.C_PreludeFailed st = Curry.Module.Meta.C_PreludeFailed
+
+  foldCurry f c (Curry.Module.Meta.C_ErrorCall x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Meta.C_PatternMatchFail x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Meta.C_AssertionFailed x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Meta.C_IOException x1) st = f(x1)(c)(st)
+  foldCurry f c Curry.Module.Meta.C_PreludeFailed st = c
+
+  typeName _ = "Exception"
+
+  showQ d (Curry.Module.Meta.C_ErrorCall x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.ErrorCall "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Meta.C_PatternMatchFail x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.PatternMatchFail "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Meta.C_AssertionFailed x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.AssertionFailed "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Meta.C_IOException x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.IOException "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ Curry.Module.Meta.C_PreludeFailed = Prelude.showString("Meta.PreludeFailed")
+  showQ _ (Curry.Module.Meta.C_ExceptionOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.Meta.C_Seq t0) where
+  strEq Curry.Module.Meta.C_Nil Curry.Module.Meta.C_Nil st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.Meta.C_Cons x1 x2) (Curry.Module.Meta.C_Cons y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq (Curry.Module.Meta.C_Continued x1) (Curry.Module.Meta.C_Continued y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Meta.C_Nil Curry.Module.Meta.C_Nil st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.Meta.C_Cons x1 x2) (Curry.Module.Meta.C_Cons y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq (Curry.Module.Meta.C_Continued x1) (Curry.Module.Meta.C_Continued y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Meta.C_Nil st = Curry.Module.Meta.C_Nil
+  propagate f (Curry.Module.Meta.C_Cons x1 x2) st = Curry.Module.Meta.C_Cons(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+  propagate f (Curry.Module.Meta.C_Continued x1) st = Curry.Module.Meta.C_Continued(f((0::Int))(x1)(st))
+
+  foldCurry f c Curry.Module.Meta.C_Nil st = c
+  foldCurry f c (Curry.Module.Meta.C_Cons x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+  foldCurry f c (Curry.Module.Meta.C_Continued x1) st = f(x1)(c)(st)
+
+  typeName _ = "Seq"
+
+  showQ _ Curry.Module.Meta.C_Nil = Prelude.showString("Meta.Nil")
+  showQ d (Curry.Module.Meta.C_Cons x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.Cons "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ d (Curry.Module.Meta.C_Continued x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Meta.Continued "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ (Curry.Module.Meta.C_SeqOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.Meta.C_RichSearchTree t0) where
+  showsPrec d (Curry.Module.Meta.C_RichFail x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("RichFail "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Meta.C_RichValue x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("RichValue "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Meta.C_RichChoice x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("RichChoice "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec _ Curry.Module.Meta.C_RichSuspend = Prelude.showString("RichSuspend")
+  showsPrec _ (Curry.Module.Meta.C_RichSearchTreeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Meta.C_Exception where
+  showsPrec d (Curry.Module.Meta.C_ErrorCall x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("ErrorCall "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Meta.C_PatternMatchFail x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("PatternMatchFail "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Meta.C_AssertionFailed x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("AssertionFailed "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Meta.C_IOException x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("IOException "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ Curry.Module.Meta.C_PreludeFailed = Prelude.showString("PreludeFailed")
+  showsPrec _ (Curry.Module.Meta.C_ExceptionOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.Meta.C_Seq t0) where
+  showsPrec _ Curry.Module.Meta.C_Nil = Prelude.showString("Nil")
+  showsPrec d (Curry.Module.Meta.C_Cons x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Cons "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec d (Curry.Module.Meta.C_Continued x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Continued "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ (Curry.Module.Meta.C_SeqOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.Meta.C_RichSearchTree t0) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_RichFail(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("RichFail")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_RichValue(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("RichValue")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_RichChoice(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("RichChoice")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Meta.C_RichSuspend)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("RichSuspend")(r)])(r))))
+
+
+
+
+
+instance Read Curry.Module.Meta.C_Exception where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_ErrorCall(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("ErrorCall")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_PatternMatchFail(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("PatternMatchFail")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_AssertionFailed(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("AssertionFailed")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_IOException(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("IOException")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Meta.C_PreludeFailed)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("PreludeFailed")(r)])(r)))))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.Meta.C_Seq t0) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Meta.C_Nil)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("Nil")(r)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_Cons(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("Cons")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r))(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Meta.C_Continued(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Meta")("Continued")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r)))
+
+
+
+
+
+c_isFree :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Either t0 t0)
+c_isFree x1 st = Curry.Module.Meta.c_headNormalFormIO(Curry.Module.Prelude.pf(Curry.Module.Meta.c_prim_isFree))(x1)(st)
+
+
+
+c_throw :: (Curry t0) => Curry.Module.Meta.C_Exception -> Curry.RunTimeSystem.State -> t0
+c_throw x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Meta.c_prim_throw))(x1)(st)
+
+
+
+c_list :: (Curry t0) => (Curry.Module.Meta.C_Seq t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_list x1@Curry.Module.Meta.C_Nil st = Curry.Module.Prelude.List
+c_list x1@(Curry.Module.Meta.C_Cons x2 x3) st = (Curry.Module.Prelude.:<)(x2)(Curry.Module.Meta.c_list(x3)(st))
+c_list x1@(Curry.Module.Meta.C_Continued x4) st = Curry.Module.Meta.c_list(x4)(st)
+c_list (Curry.Module.Meta.C_SeqOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Meta.c_list(x)(st))(i)(xs)(st)
+c_list x st = Curry.RunTimeSystem.patternFail("Meta.list")(x)
+
+
+
+c_interleave :: (Curry t0) => (Curry.Module.Meta.C_Seq t0) -> (Curry.Module.Meta.C_Seq t0) -> Curry.RunTimeSystem.State -> Curry.Module.Meta.C_Seq t0
+c_interleave x1@Curry.Module.Meta.C_Nil x2 st = Curry.Module.Meta.C_Continued(x2)
+c_interleave x1@(Curry.Module.Meta.C_Cons x3 x4) x2 st = Curry.Module.Meta.C_Cons(x3)(Curry.Module.Meta.c_interleave(x2)(x4)(st))
+c_interleave x1@(Curry.Module.Meta.C_Continued x5) x2 st = Curry.Module.Meta.c_interleave_case_0(x1)(x5)(x2)(st)
+c_interleave (Curry.Module.Meta.C_SeqOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Meta.c_interleave(x)(x2)(st))(i)(xs)(st)
+c_interleave x x2 st = Curry.RunTimeSystem.patternFail("Meta.interleave")(x)
+
+
+
+c_seq :: (Curry t0) => (Curry.Module.Prelude.C_SearchTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Meta.C_Seq t0
+c_seq x1@Curry.Module.Prelude.C_Fail st = Curry.Module.Meta.C_Nil
+c_seq x1@(Curry.Module.Prelude.C_Value x2) st = Curry.Module.Meta.C_Cons(x2)(Curry.Module.Meta.C_Nil)
+c_seq x1@(Curry.Module.Prelude.C_Choice x3) st = Curry.Module.Prelude.c_foldr1(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Meta.c_interleave))((Curry.Module.Prelude.:<)(Curry.Module.Meta.C_Nil)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Meta.c_seq))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.pf(Curry.Module.Meta.c_isValOrChoice))(x3)(st))(st)))(st)
+c_seq x1@Curry.Module.Prelude.C_Suspend st = Curry.Module.Meta.C_Nil
+c_seq (Curry.Module.Prelude.C_SearchTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Meta.c_seq(x)(st))(i)(xs)(st)
+c_seq x st = Curry.RunTimeSystem.patternFail("Meta.seq")(x)
+
+
+
+c_isValOrChoice :: (Curry t0) => (Curry.Module.Prelude.C_SearchTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isValOrChoice x1@Curry.Module.Prelude.C_Fail st = Curry.Module.Prelude.C_False
+c_isValOrChoice x1@(Curry.Module.Prelude.C_Value x2) st = Curry.Module.Prelude.C_True
+c_isValOrChoice x1@(Curry.Module.Prelude.C_Choice x3) st = Curry.Module.Prelude.C_True
+c_isValOrChoice x1@Curry.Module.Prelude.C_Suspend st = Curry.Module.Prelude.C_False
+c_isValOrChoice (Curry.Module.Prelude.C_SearchTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Meta.c_isValOrChoice(x)(st))(i)(xs)(st)
+c_isValOrChoice x st = Curry.RunTimeSystem.patternFail("Meta.isValOrChoice")(x)
+
+
+
+c_allValuesI :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.C_SearchTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_allValuesI st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Meta.c_list))(Curry.Module.Prelude.pf(Curry.Module.Meta.c_seq))(st)
+
+
+
+c_interleave_case_0 x1 x5 x2@Curry.Module.Meta.C_Nil st = x1
+c_interleave_case_0 x1 x5 x2@(Curry.Module.Meta.C_Cons x6 x7) st = Curry.Module.Meta.C_Cons(x6)(Curry.Module.Meta.c_interleave(x5)(x7)(st))
+c_interleave_case_0 x1 x5 x2@(Curry.Module.Meta.C_Continued x8) st = Curry.Module.Meta.C_Continued(Curry.Module.Meta.c_interleave(x5)(x8)(st))
+c_interleave_case_0 x1 x5 (Curry.Module.Meta.C_SeqOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Meta.c_interleave_case_0(x1)(x5)(x)(st))(i)(xs)(st)
+c_interleave_case_0 x1 x5 x st = Curry.RunTimeSystem.patternFail("Meta.interleave_case_0")(x)
+
+
+
+c_prim_isFree :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Either t0 t0)
+c_prim_isFree x1 st = Curry.Module.Meta.prim_isFree(x1)(st)
+
+
+
+c_headNormalFormIO :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1)) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1
+c_headNormalFormIO x1 x2 st = Curry.Module.Meta.headNormalFormIO(x1)(x2)(st)
+
+
+
+c_searchTree :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_SearchTree t0
+c_searchTree x1 st = Curry.Module.Meta.searchTree(x1)(st)
+
+
+
+c_gnfIO :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_gnfIO x1 st = Curry.Module.Meta.gnfIO(x1)(st)
+
+
+
+c_ghnfIO :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_ghnfIO x1 st = Curry.Module.Meta.ghnfIO(x1)(st)
+
+
+
+c_nfIO :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_nfIO x1 st = Curry.Module.Meta.nfIO(x1)(st)
+
+
+
+c_hnfIO :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_hnfIO x1 st = Curry.Module.Meta.hnfIO(x1)(st)
+
+
+
+c_getRichSearchTree :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Meta.C_RichSearchTree t0)
+c_getRichSearchTree x1 st = Curry.Module.Meta.getRichSearchTree(x1)(st)
+
+
+
+c_richSearchTree :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Meta.C_RichSearchTree t0
+c_richSearchTree x1 st = Curry.Module.Meta.richSearchTree(x1)(st)
+
+
+
+c_parallelSearch :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List t0)
+c_parallelSearch x1 st = Curry.Module.Meta.parallelSearch(x1)(st)
+
+
+
+c_cover :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> t0
+c_cover x1 st = Curry.Module.Meta.cover(x1)(st)
+
+
+
+c_st :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_SearchTree t0
+c_st x1 st = Curry.Module.Meta.st(x1)(st)
+
+
+
+c_richST :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Meta.C_RichSearchTree t0
+c_richST x1 st = Curry.Module.Meta.richST(x1)(st)
+
+
+
+c_ors :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0
+c_ors x1 st = Curry.Module.Meta.ors(x1)(st)
+
+
+
+c_prim_throw :: (Curry t0) => Curry.Module.Meta.C_Exception -> Curry.RunTimeSystem.State -> t0
+c_prim_throw x1 st = Curry.Module.Meta.prim_throw(x1)(st)
+
+
diff --git a/dist/build/Curry/Module/Parser.hs b/dist/build/Curry/Module/Parser.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Parser.hs
@@ -0,0 +1,94 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Parser (module Curry.Module.Parser) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_Parser t0 = (Curry.Module.Prelude.List t0) -> Curry.Module.Prelude.List t0
+
+type C_ParserRep t0 t1 = t0 -> (Curry.Module.Prelude.List t1) -> Curry.Module.Prelude.List t1
+
+op_60_124_62 :: (Curry t0) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+op_60_124_62 x1 x2 st = Curry.RunTimeSystem.orF(Curry.Module.Prelude.pf(Curry.Module.Parser.c_'60'124'62'46_'35lambda2(x1)))(Curry.Module.Prelude.pf(Curry.Module.Parser.c_'60'124'62'46_'35lambda3(x2)))
+
+
+
+c_'60'124'62'46_'35lambda2 :: (Curry t2) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t2) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t2)) -> (Curry.Module.Prelude.List t2) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t2
+c_'60'124'62'46_'35lambda2 x1 x2 st = Curry.Module.Prelude.c_apply(x1)(x2)(st)
+
+
+
+c_'60'124'62'46_'35lambda3 :: (Curry t2) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t2) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t2)) -> (Curry.Module.Prelude.List t2) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t2
+c_'60'124'62'46_'35lambda3 x1 x2 st = Curry.Module.Prelude.c_apply(x1)(x2)(st)
+
+
+
+op_60_124_124_62 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1))
+op_60_124_124_62 x1 x2 st = Curry.Module.Prelude.pf(Curry.Module.Parser.c_'60'124'124'62'46_'35lambda4(x1)(x2))
+
+
+
+c_'60'124'124'62'46_'35lambda4 :: (Curry t17,Curry t18) => (Curry.Module.Prelude.Prim (t17 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t18) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t18))) -> (Curry.Module.Prelude.Prim (t17 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t18) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t18))) -> t17 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t18) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t18)
+c_'60'124'124'62'46_'35lambda4 x1 x2 x3 st = Curry.Module.Parser.op_60_124_62(Curry.Module.Prelude.c_apply(x1)(x3)(st))(Curry.Module.Prelude.c_apply(x2)(x3)(st))(st)
+
+
+
+op_60_42_62 :: (Curry t0) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+op_60_42_62 x1 x2 st = Curry.Module.Prelude.pf(Curry.Module.Parser.c_'60'42'62'46seq'4614(x1)(x2))
+
+
+
+c_'60'42'62'46seq'4614 :: (Curry t23) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t23) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t23)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t23) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t23)) -> (Curry.Module.Prelude.List t23) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t23
+c_'60'42'62'46seq'4614 x1 x2 x3 st = Curry.Module.Prelude.op_36_33_33(x2)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+op_62_62_62 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)) -> t1 -> t1 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+op_62_62_62 x1 x2 x3 x4 st = Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.Parser.c_'62'62'62'46attach'4618(x3)(x2)))(Curry.Module.Prelude.c_apply(x1)(x4)(st))(st)
+
+
+
+c_'62'62'62'46attach'4618 :: (Curry t36,Curry t0) => t36 -> t36 -> t0 -> Curry.RunTimeSystem.State -> t0
+c_'62'62'62'46attach'4618 x1 x2 x3 st = Curry.Module.Prelude.c_cond(Curry.Module.Prelude.op_61_58_61(x2)(x1)(st))(x3)(st)
+
+
+
+c_empty :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_empty x1 st = x1
+
+
+
+c_terminal :: (Curry t0) => t0 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_terminal x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_cond(Curry.Module.Prelude.op_61_58_61(x1)(x3)(st))(x4)(st)
+c_terminal x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Parser.c_terminal(x1)(x)(st))(i)(xs)(st)
+c_terminal x1 x st = Curry.RunTimeSystem.patternFail("Parser.terminal")(x)
+
+
+
+c_satisfy :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> t0 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_satisfy x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Prelude.c_cond(Curry.Module.Prelude.op_38(Curry.Module.Prelude.op_61_58_61(Curry.Module.Prelude.c_apply(x1)(x4)(st))(Curry.Module.Prelude.C_True)(st))(Curry.Module.Prelude.op_61_58_61(x2)(x4)(st))(st))(x5)(st)
+c_satisfy x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Parser.c_satisfy(x1)(x2)(x)(st))(i)(xs)(st)
+c_satisfy x1 x2 x st = Curry.RunTimeSystem.patternFail("Parser.satisfy")(x)
+
+
+
+c_star :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1))
+c_star x1 st = Curry.RunTimeSystem.freeF(\ x2 -> Curry.RunTimeSystem.freeF(\ x3 -> Curry.Module.Parser.op_60_124_124_62(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Parser.op_62_62_62(Curry.Module.Parser.op_60_42_62(Curry.Module.Prelude.c_apply(x1)(x2)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Parser.c_star(x1)(st))(x3)(st))(st))((Curry.Module.Prelude.:<)(x2)(x3))))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Parser.op_62_62_62(Curry.Module.Prelude.pf(Curry.Module.Parser.c_empty))(Curry.Module.Prelude.List)))(st)))
+
+
+
+c_some :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1))
+c_some x1 st = Curry.RunTimeSystem.freeF(\ x2 -> Curry.RunTimeSystem.freeF(\ x3 -> Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Parser.op_62_62_62(Curry.Module.Parser.op_60_42_62(Curry.Module.Prelude.c_apply(x1)(x2)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Parser.c_star(x1)(st))(x3)(st))(st))((Curry.Module.Prelude.:<)(x2)(x3)))))
+
+
diff --git a/dist/build/Curry/Module/Prelude.hs b/dist/build/Curry/Module/Prelude.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Prelude.hs
@@ -0,0 +1,4760 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Prelude (module Curry.Module.Prelude) where
+
+import Curry.RunTimeSystem
+
+
+
+-- begin included
+
+
+
+import Char
+import List
+import System.IO.Unsafe
+import Data.IORef
+
+import Prelude hiding ((==),(>>=),return,catch)
+import qualified Prelude ((==),(>>=),return) 
+import System.IO
+
+#if __GLASGOW_HASKELL__ >= 610
+import Control.OldException (catch)
+#else
+import Control.Exception (catch)
+#endif
+
+-----------------------------------------------------------------
+-- curry number types
+-----------------------------------------------------------------
+
+type C_Float = Prim Float
+
+-----------------------------------------------------------------
+-- The curry IO monad
+-----------------------------------------------------------------
+
+data C_IO t0 = C_IO (State -> IO (IOVal t0))
+  | C_IOFail C_Exceptions
+  | C_IOOr OrRef (Branches (C_IO t0))
+
+data IOVal t0 = IOVal t0
+  | IOValFail C_Exceptions
+  | IOValOr OrRef (Branches (IO (IOVal t0)))
+
+data C_Bool = C_False
+  | C_True
+  | C_BoolFail Curry.RunTimeSystem.C_Exceptions
+  | C_BoolOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches C_Bool)
+  | C_BoolAnd [C_Bool]
+
+data C_Char = C_Char !Char
+  | SearchChar  C_Four  C_Four  C_Four  C_Four
+  | C_CharFail C_Exceptions
+  | C_CharOr OrRef (Branches C_Char)
+
+trace s x = unsafePerformIO (putStrLn s >> preturn x) 
+-----------------------------------------------------------------
+-- type classes to extend BaseCurry to full Curry
+-----------------------------------------------------------------
+
+type StrEqResult = C_Bool
+
+class (BaseCurry a,Show a,Read a) => Curry a where
+  -- basic equalities 
+  strEq :: a -> a -> Result StrEqResult
+  eq    :: a -> a -> Result C_Bool
+
+  -- some generics
+  propagate :: (forall b. Curry b => Int -> b -> Result b) -> a -> Result a
+  foldCurry :: (forall c. Curry c => c -> b -> Result b) -> b -> a -> Result b
+
+  -- name of the type
+  typeName :: a -> String
+
+  -- show qualified terms
+  showQ :: Int -> a -> String -> String 
+  showQ = showsPrec
+
+  showQList :: [a] -> String -> String
+  showQList = showQStandardList
+
+  -- generic programming
+  --toC_Term   :: HNFMode -> State  -> a -> C_Data
+  --fromC_Term :: C_Data -> a
+
+class Generate a where
+  genFree    :: Int -> [a]
+  maxArity   :: a -> Int
+
+-----------------------------------------------------------------
+-- external Show instances
+-----------------------------------------------------------------
+
+
+instance (Show t0) => Show (IOVal t0) where
+  showsPrec d (IOVal x1) = showParen (d>10) showStr
+   where
+    showStr  = showString "IOVal" . showsPrec 11 x1
+  showsPrec _ (IOValOr i _) = showString ('_':show (deref i))
+
+instance Show (IO (IOVal a)) where
+  show _  = "IO"
+
+instance Show (C_IO a) where
+  show _  = "IO"
+
+instance Show C_Success where
+  showsPrec _ C_Success = showString "success"
+  showsPrec _ (C_SuccessOr ref _) = showString ('_':show (deref ref))
+
+instance Show (a->b) where
+  show _ = "FUNCTION"
+
+instance Show a => Show (Prim a) where
+  show (PrimValue x) = show x
+  show (PrimOr r _) = "_"++show (deref r)
+
+instance Show a => Show (List a) where
+    showsPrec = showsPrecList (showsPrec 0) (showsPrec 0)
+
+showsPrecList :: (a -> ShowS) -> ([a] -> ShowS) -> Int -> List a -> ShowS
+showsPrecList recursiveCall listCall _ (ListOr r _) = 
+  showString ('_':show (deref r))
+showsPrecList recursiveCall listCall _ xs 
+  | isFreeList xs = showChar '(' . showFreel xs
+  | otherwise     = listCall (toHaskellList xs)
+      where
+        isFreeList List = False
+        isFreeList (ListOr _ _) = True
+        isFreeList (_ :< xs) = isFreeList xs
+        isFreeList _ = True
+
+        showFreel (x:<xs)         = recursiveCall x . showChar ':' . showFreel xs
+	showFreel (ListOr r _)    = showString ('_':show (deref r)++")")
+
+showQStandardList :: Curry a => [a] -> ShowS
+showQStandardList xs = showChar '[' . 
+                       foldr (.) (showChar ']') 
+                             (intersperse (showChar ',') (map (showQ 0) xs))
+
+fourToInt :: C_Four -> Either String Int
+fourToInt  C_F0 = Right 0
+fourToInt  C_F1 = Right 1
+fourToInt  C_F2 = Right 2
+fourToInt  C_F3 = Right 3
+fourToInt  x@(C_FourOr _ _) = Left (show x)
+
+intToFour :: Int -> C_Four
+intToFour  0 = C_F0
+intToFour  1 = C_F1
+intToFour  2 = C_F2
+intToFour  3 = C_F3
+
+scToChar ::  C_Four ->  C_Four ->  C_Four ->  C_Four -> Either String Char
+scToChar f1 f2 f3 f4 
+  = chr' ((fourToInt f1**64)+++(fourToInt f2**16)+++(fourToInt f3**4)+++fourToInt f4)
+  where 
+    Left s  ** _  = Left s
+    Right i ** j  = Right (i*j)
+    
+    Left s  +++ _  = Left s
+    Right i +++ Left s  = Left s
+    Right i +++ Right j = Right (i+j)
+    chr' (Right i) = Right (chr i)
+    chr' (Left s)  = Left s
+
+charToSc ::  Char -> C_Char
+charToSc c = SearchChar (intToFour d64) (intToFour d16) (intToFour d4) (intToFour m4)
+  where
+    o = ord c
+    (d64,m64) = divMod o 64
+    (d16,m16) = divMod m64 16
+    (d4,m4)   = divMod m16 4
+    
+instance Show C_Four where
+  showsPrec d (C_FourOr r _) = showChar '_' . showsPrec d (deref r)
+  showsPrec _ _ = error "probably due to usage of ($#) instead of ($##) \
+                        \for an external function with argument type string or character"
+
+instance Show C_Char where
+  show (C_Char c) = show c
+  show (SearchChar f1 f2 f3 f4) 
+    = either id show (scToChar f1 f2 f3 f4)
+  show (C_CharOr r _) = '_':show (deref r)
+
+  showList cs = if any isFreeChar cs
+                  then showChar '[' . showFreel cs
+                  else showChar '"' . showl cs   -- "
+    where 
+      showl []       = showChar '"'
+      showl (C_Char '"':cs) = showString "\\\"" . showl cs
+      showl (C_Char c:cs)
+       | oc <= 7   = showString "\\00" . shows oc . showl cs
+       | oc <= 10  = showLitChar c . showl cs
+       | oc <= 12  = showString "\\0" . shows oc . showl cs
+       | oc <= 13  = showLitChar c . showl cs
+       | oc <= 31  = showString "\\0" . shows oc . showl cs
+       | oc <= 126 = showLitChar c . showl cs
+       | otherwise = showString "\\" . shows oc . showl cs
+       where oc = ord c
+      showl (SearchChar f1 f2 f3 f4:cs) = 
+        either showString showLitChar (scToChar f1 f2 f3 f4) . showl cs
+  
+      showFreel [] = showString "]"
+      showFreel [c] = showString (show c) . showString "]"
+      showFreel (c:cs)   = showString (show c++",") . showFreel cs
+      
+      isFreeChar (SearchChar f1 f2 f3 f4) = 
+        Prelude.any ((Prelude.== Branching) . consKind) [f1,f2,f3,f4] 
+      isFreeChar _              = False
+
+protectEsc p f             = f . cont
+ where cont s@(c:_) | p c  = "\\&" ++ s
+       cont s              = s
+
+asciiTab = zip ['\NUL'..' ']
+	   ["NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",
+	    "BS",  "HT",  "LF",  "VT",  "FF",  "CR",  "SO",  "SI",
+	    "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
+	    "CAN", "EM",  "SUB", "ESC", "FS",  "GS",  "RS",  "US",
+	    "SP"]
+
+instance Show C_Nat where
+  showsPrec d x | isFreeNat x = showsPrecNat d x
+                | otherwise   = showsPrec d (fromCurry x::Integer)
+
+
+isFreeNat :: C_Nat -> Bool
+isFreeNat (C_NatOr _ _)    = True
+isFreeNat C_IHi            = False
+isFreeNat (C_I n)          = isFreeNat n
+isFreeNat (C_O n)          = isFreeNat n
+
+showsPrecNat :: Int -> C_Nat -> ShowS
+showsPrecNat _ C_IHi = Prelude.showString((:)('I')((:)('H')((:)('i')([]))))
+showsPrecNat d (C_O x1) = Prelude.showParen((Prelude.>)(d)(Prelude.fromInteger((10))))(showStr)
+ where
+  showStr  = (Prelude..)(Prelude.showString((:)('O')((:)(' ')([]))))(showsPrecNat(Prelude.fromInteger((11)))(x1))
+
+showsPrecNat d (C_I x1) = Prelude.showParen((Prelude.>)(d)(Prelude.fromInteger((10))))(showStr)
+ where
+  showStr  = (Prelude..)(Prelude.showString((:)('I')((:)(' ')([]))))(showsPrecNat(Prelude.fromInteger((11)))(x1))
+
+showsPrecNat _ (C_NatOr i _) = Prelude.showString((:)('_')(Prelude.show(deref i)))
+
+instance Show C_Int where
+  showsPrec _ C_Zero = showChar '0'
+  showsPrec d x@(C_Pos n) 
+    | isFreeNat n = showParen (d>10) (showString "Pos " . showsPrecNat 11 n)
+    | otherwise   = showsPrec d (fromCurry x::Integer)
+  showsPrec d x@(C_Neg n) 
+    | isFreeNat n = showParen (d>10) (showString "Neg " . showsPrecNat 11 n)
+    | otherwise   = showsPrec d (fromCurry x::Integer)
+  showsPrec _ (C_IntOr i _) = showChar '_' . shows (deref i)
+
+-----------------------------------------------------------------
+-- external Read instances
+-----------------------------------------------------------------
+
+instance Read C_Four where
+  readsPrec _ _ = error "I won't read four"
+
+instance (Read t0) => Read (IOVal t0) where
+  readsPrec d r = readParen (d>10) 
+    (\ r -> [ (IOVal x1,r1) | (_,r0) <- readQualified "Prelude" "IOVal" r, 
+                              (x1,r1) <- readsPrec 11 r0]) r
+
+instance Read (IO (IOVal a)) where
+  readsPrec = error "no reading IO"
+
+instance Read (C_IO a) where
+  readsPrec = error "no reading IO"
+
+instance Read C_Success where
+  readsPrec d r = Prelude.readParen(Prelude.False)
+                  (\ r -> [(,)(C_Success)(r0) | 
+                           (_,r0) <- readQualified "Prelude" "Success" r])(r)
+
+instance Read a => Read (Prim a) where
+  readsPrec p s = map (\(x,y) -> (PrimValue x,y)) (readsPrec p s)
+
+instance Read a => Read (List a) where
+    readsPrec p = map (\ (x,y) -> (fromHaskellList x,y)) . readsPrec p
+
+instance Read C_Char where
+  readsPrec p s = map (\ (x,y) -> (toCurry x,y))
+                      (((readsPrec p)::ReadS Char) s)
+
+  readList s = map (\ (x,y) -> (map toCurry x,y))
+                      ((readList::ReadS String) s)
+
+instance Read (a->b) where
+  readsPrec = error "reading FUNCTION"
+
+instance Read C_Nat where
+  readsPrec d r =  
+       readParen False  (\ r -> [(C_IHi,r0)  | (_ ,r0) <- readQualified "Prelude" "IHi" r]) r
+    ++ readParen (d>10) (\ r -> [(C_O x1,r1) | (_ ,r0) <- readQualified "Prelude" "O"   r, 
+                                               (x1,r1) <- readsPrec 11 r0]) r
+    ++ readParen (d>10) (\ r -> [(C_I x1,r1) | (_ ,r0) <- readQualified "Prelude" "I"   r, 
+                                               (x1,r1) <- readsPrec 11 r0]) r
+    ++ [(toCurry i,r0) | (i::Integer,r0) <- reads r]
+
+instance Read C_Int where
+  readsPrec d r = 
+       readParen (d>10) (\ r -> [(C_Neg x1,r1)  | (_ ,r0) <- readQualified "Prelude" "Neg" r, 
+                                                  (x1,r1) <- readsPrec 11 r0]) r
+    ++ readParen False  (\ r -> [(C_Zero,r0)    | (_ ,r0) <- readQualified "Prelude" "Zero" r]) r 
+    ++ readParen (d>10) (\ r -> [(C_Pos x1,r1)  | (_ ,r0) <- readQualified "Prelude" "Pos" r,
+                                                  (x1,r1) <- readsPrec 11 r0]) r
+    ++ [(toCurry i,r0) | (i::Integer,r0) <- reads r]
+
+
+-----------------------------------------------------------------
+-- external BaseCurry instances
+-----------------------------------------------------------------
+
+instance (BaseCurry t0) => BaseCurry (IOVal t0) where
+  nf f (IOVal x1) state0 = nfCTC(\ v1 state1 -> f(IOVal(v1)) (state1))(x1) (state0)
+  nf f x state = f(x) (state)
+
+  gnf f (IOVal x1) state0 = gnfCTC(\ v1 state1 -> f(IOVal(v1)) (state1))(x1) (state0)
+  gnf f x state = f(x) (state)
+
+  generator i    = IOVal (generator i)
+
+  failed  = IOValFail
+
+  branching r bs = IOValOr r (map preturn bs)
+
+  consKind (IOValOr _ _) = Branching
+  consKind (IOValFail _) = Failed
+  consKind _ = Val
+
+  exceptions (IOValFail x) = x
+
+  orRef (IOValOr x _) = x
+
+  branches (IOValOr _ bs) = map unsafePerformIO bs
+
+instance (BaseCurry t0) => BaseCurry (IO (IOVal t0)) where
+  nf f x state = f(x) (state)
+  gnf f x state = f(x)(state)
+
+  failed x = preturn (IOValFail x)
+
+  generator u       = preturn (generator u)
+
+  branching r bs = preturn (IOValOr r bs)
+
+  consKind x = consKind (unsafePerformIO x)
+
+  exceptions x = exceptions (unsafePerformIO x)
+
+  orRef x = orRef (unsafePerformIO x)
+
+  branches x = unsafePerformIO (x Prelude.>>= \ (IOValOr _ bs) -> preturn bs)
+
+instance (BaseCurry t0) => BaseCurry (C_IO t0) where
+  nf f x state = f(x)(state)
+  gnf f x state = f(x)(state)
+
+  generator i    = C_IO (\ _ -> generator i)
+
+  failed  = C_IOFail
+
+  branching  = C_IOOr
+
+  consKind (C_IOOr _ _) = Branching
+  consKind (C_IOFail _) = Failed
+  consKind _ = Val
+
+  exceptions (C_IOFail x) = x
+
+  orRef (C_IOOr x _) = x
+
+  branches (C_IOOr _ x) = x
+
+
+instance BaseCurry C_Char where
+  nf f (SearchChar x1 x2 x3 x4) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> Curry.RunTimeSystem.nfCTC(\ v4 state4 -> f(SearchChar(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x store = f(x)(store)
+
+  gnf f (SearchChar x1 x2 x3 x4) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> Curry.RunTimeSystem.gnfCTC(\ v4 state4 -> f(SearchChar(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x store = f(x)(store)
+  
+
+  consKind (C_CharOr _ _) = Branching
+  consKind (C_CharFail _) = Failed
+  consKind _ = Val
+
+  generator i = withRef ( \r -> SearchChar (generator r) 
+                                           (generator (r+1)) 
+                                           (generator (r+2)) 
+                                           (generator (r+3))) 3
+
+  orRef      (C_CharOr x _) = x
+  branches   (C_CharOr _ x) = x
+
+  failed = C_CharFail
+
+  exceptions (C_CharFail x) = x
+
+  branching  = C_CharOr
+
+
+instance Generate a => BaseCurry (Prim a) where
+  nf f x store = f(x)(store)
+
+  gnf f x store = f(x)(store)
+
+  generator i    = gen genFree 
+    where
+      gen f = let max = maxArity (head (f 0)) in
+        withRef (\r -> PrimOr (mkRef r max i)
+                              (map PrimValue (f r)))
+                max
+
+  failed = PrimFail
+  branching = PrimOr
+
+  consKind (PrimOr _ _) = Branching
+  consKind (PrimFail _) = Failed
+  consKind _ = Val
+
+  exceptions (PrimFail x) = x
+
+  orRef (PrimOr x _) = x
+
+  branches (PrimOr _ x) = x
+
+
+instance (BaseCurry t0) => BaseCurry (List t0) where
+  nf f ((:<) x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f((:<)(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f ((:<) x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f((:<)(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = withRef (\ r -> ListOr (mkRef r 2 i) 
+                        ([List,(:<)(generator(r+1))(generator(r+2))])) 2
+
+  failed  = ListFail
+
+  branching  = ListOr
+
+  consKind (ListOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (ListFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (ListFail x) = x
+
+  orRef (ListOr x _) = x
+
+  branches (ListOr _ x) = x
+
+
+-----------------------------------------------------------------
+-- converting between curry and haskell
+-----------------------------------------------------------------
+
+-- In Order to integrate Haskell functions we sometimes 
+-- need to convert values.
+-- (Do we really need both directions? Or rather convert a b for both?)
+class ConvertCH a b where
+  fromCurry :: a -> b
+  fromCurry = error "fromCurry"
+  toCurry :: b -> a
+  toCurry = error "toCurry"
+
+instance ConvertCH C_Bool Bool where
+  fromCurry C_True  = True
+  fromCurry C_False = False
+
+  toCurry True  = C_True
+  toCurry False = C_False
+
+isC_True C_True = True
+isC_True _      = False
+
+instance ConvertCH C_Char Char where
+  fromCurry (C_Char c) = c
+  fromCurry (SearchChar f0 f1 f2 f3) = 
+    either (error "convert to char") id (scToChar f0 f1 f2 f3)
+  toCurry c = C_Char c
+
+instance (ConvertCH a b) => ConvertCH (List a) [b] where
+  fromCurry List = []
+  fromCurry (x :< xs) = fromCurry x : fromCurry xs
+  fromCurry (ListOr _ _) = error "or list"
+
+  toCurry [] = List
+  toCurry (x:xs) = toCurry x :< toCurry xs
+
+-- sometimes you need conversion of lists without converting the elements
+-- eg Searchtree, Show instance
+
+toHaskellList :: List a -> [a]
+toHaskellList List = []
+toHaskellList (x :< xs) = x : toHaskellList xs
+
+fromHaskellList :: [a] -> List a
+fromHaskellList [] = List
+fromHaskellList (x : xs) = x :< fromHaskellList xs
+
+-- specify result type of toCurry "..." for code generation
+fromHaskellString :: String -> List C_Char
+fromHaskellString = toCurry
+
+instance ConvertCH C_Int Integer where
+  fromCurry C_Zero    = 0
+  fromCurry (C_Pos i) = fromCurry i
+  fromCurry (C_Neg i) = negate (fromCurry i)
+
+  toCurry n = case compare n 0 of
+   LT -> C_Neg (toCurry (abs n))
+   EQ -> C_Zero
+   GT -> C_Pos (toCurry (abs n))
+
+instance ConvertCH C_Nat Integer where
+  fromCurry (C_I bs) = 2 Prelude.* fromCurry bs Prelude.+ 1
+  fromCurry (C_O bs) = 2 Prelude.* fromCurry bs
+  fromCurry C_IHi    = 1
+
+  toCurry n = case mod n 2 of
+                1 -> if m Prelude.== 0 then C_IHi else C_I (toCurry m)
+                0 -> C_O (toCurry m)
+    where m = Prelude.div n 2
+
+
+instance ConvertCH C_Int Int where
+  fromCurry c = fromInteger (fromCurry c)
+  toCurry i   = toCurry (toInteger i)
+
+instance ConvertCH (Prim a) a where
+  toCurry = PrimValue 
+  fromCurry (PrimValue x) = x
+
+-------------------------------------------------------------
+-- basic functions used in instances of class GenericCurry
+-------------------------------------------------------------
+-- obscure names come from the standard operator 
+-- renaming scheme of the compiler.
+
+-- implementation of concurrent (&)
+-- no other implementation
+-- basic concept: if one value suspends evaluate the other 
+-- TODO: include state information!
+concAnd :: StrEqResult -> StrEqResult -> Result StrEqResult
+concAnd C_True y _ = y
+concAnd x@(C_BoolOr _ _) y st = maySwitch y x st
+--concAnd (C_BoolOr r xs) y = C_BoolOr r (map (flip concAnd y) xs)
+concAnd x@(C_BoolFail _) _ _ = x
+concAnd x@C_False _ _ = x
+
+maySwitch :: StrEqResult -> StrEqResult -> Result StrEqResult
+maySwitch C_True x _ = x
+maySwitch y@(C_BoolOr _ _) (C_BoolOr r xs) st = 
+             C_BoolOr r (map (\ x -> concAnd y x st) xs)
+maySwitch x@(C_BoolFail _) _ _ = x
+maySwitch x@C_False _ _ = x
+{-
+startBreadth :: [StrEqResult] -> Result StrEqResult
+startBreadth cs st = onLists st [] cs
+
+instance Eq C_Bool where
+  C_True == C_True = True
+  C_False == C_False = True
+  _ == _ = False
+
+allSame :: Eq a => [a] -> Bool
+allSame []     = True
+allSame (x:xs) = all (x==) xs
+
+onLists :: Store -> [StrEqResult] -> [StrEqResult] -> StrEqResult
+onLists _ []  []      = strEqSuccess
+onLists _ _   (x@(C_BoolFail _):_) = x
+onLists _ _   (C_False:_)   = C_False
+onLists st ors (C_True:xs) = onLists st ors xs
+onLists st ors (C_BoolAnd xs:ys) = onLists st ors (xs++ys)
+onLists st ors (C_BoolOr ref xs:ys) 
+  | isChain ref = chain (\ x st -> onLists st ors (x:ys)) ref xs st
+  | otherwise   = case fromStore ref st of
+  Nothing -> onLists st (insertOr ref xs ors) ys
+  Just i  -> onLists st ors (xs!!i : ys)
+onLists st (C_BoolOr ref xs:ors) [] = 
+  let inBranch i x = maybe (failed $ curryError "onLists")
+                           (\st -> onLists st ors [x])
+                           (addToStore ref i st)
+  in  C_BoolOr ref (zipWith inBranch [0..] xs)
+
+insertOr ref xs [] = [C_BoolOr ref xs]
+insertOr ref xs (o@(C_BoolOr ref2 xs2):ys) 
+  | ref==ref2 = C_BoolOr ref (zipWith insertAnd xs xs2) : ys
+  | otherwise = o : insertOr ref xs ys
+
+insertAnd C_True           y       	    = y
+insertAnd C_False          _       	    = C_False
+insertAnd x@(C_BoolFail _) _       	    = x
+insertAnd x                C_True  	    = x
+insertAnd _                C_False 	    = C_False
+insertAnd _                x@(C_BoolFail _) = x
+insertAnd o1@(C_BoolOr ref1 xs1) o2@(C_BoolOr ref2 xs2) 
+  | ref1 == ref2 = C_BoolOr ref1 (zipWith insertAnd xs1 xs2)
+  | otherwise    = C_BoolAnd [o1,o2]
+insertAnd o@(C_BoolOr _ _) (C_BoolAnd ys)   = C_BoolAnd (o:ys)
+insertAnd (C_BoolAnd ys)   o@(C_BoolOr _ _) = C_BoolAnd (o:ys)
+insertAnd (C_BoolAnd xs)   (C_BoolAnd ys)   = C_BoolAnd (xs++ys)
+-}
+--- implementation of (==)
+--- no other implementation
+genEq :: Curry t0 => t0 -> t0 -> Result C_Bool
+genEq x y = ghnfCTC (\x'-> ghnfCTC (eq x') y) x
+
+--- implementation of (=:=)
+--- no other implementation
+--- TODO: use state information
+genStrEq :: Curry t0 => t0 -> t0 -> Result StrEqResult
+genStrEq a b = (\ a' -> (onceMore a') `hnfCTC` b)  `hnfCTC` a
+  where
+    onceMore a' b' = (\ a'' -> unify a'' b') `hnfCTC` a'
+    unify x y st = checkFree (consKind x) (consKind y)
+      where
+      checkFree Val Val = strEq x y st
+
+      checkFree Branching Branching  
+         | drx Prelude.== dry
+         = C_True
+         | otherwise = branching (equalFromTo ax bx drx ay by dry) [C_True]
+         where (ax,bx,drx)=genInfo (orRef x)
+               (ay,by,dry)=genInfo (orRef y)
+
+      checkFree Branching _ = 
+        hnfCTC (\ x' -> unify x' y) 
+               (branching (narrowOrRef (orRef x)) (branches x)) st
+
+      checkFree _ Branching = 
+        hnfCTC (unify x)
+               (branching (narrowOrRef (orRef y)) (branches y)) st
+
+      checkFree x   y   = error $ "checkFree " ++ show (x,y)
+
+strEqFail :: String -> StrEqResult
+strEqFail s = C_False --C_SuccessFail (ErrorCall ("(=:=) for type "++s))
+
+strEqSuccess :: StrEqResult
+strEqSuccess = C_True
+
+--hcAppend [] ys = ys
+--hcAppend (x:xs) ys = x:< hcAppend xs ys
+
+-----------------------------------------------------------------
+-- external Generate instances
+-----------------------------------------------------------------
+
+instance BaseCurry b => Generate (a -> Result b) where
+  genFree i  = mkBranches (generator i)
+  maxArity _ = 1
+
+mkBranches :: BaseCurry b => b -> [a -> Result b]
+mkBranches x = case consKind x of
+       Val       -> [const (const x)]
+       Branching -> map (const . const) (branches x)
+
+instance Generate Float where
+  genFree    = error "free variable of type Float"
+  maxArity _ = error "free variable of type Float"
+
+-----------------------------------------------------------------
+-- external Curry instances
+-----------------------------------------------------------------
+
+instance (Curry t0) => Curry (List t0) where
+  strEq List List st = strEqSuccess
+  strEq ((:<) x1 x2) ((:<) y1 y2) st = concAnd(genStrEq(x1)(y1)(st))(genStrEq(x2)(y2)(st))(st)
+  strEq _ x0 _ = strEqFail(typeName(x0))
+
+  eq List List st = C_True
+  eq ((:<) x1 x2) ((:<) y1 y2) st = op_38_38(genEq(x1)(y1)(st))(genEq(x2)(y2)(st))(st)
+  eq _ _ _ = C_False
+
+  propagate f List st = List
+  propagate f ((:<) x1 x2) st = (:<)(f 0 (x1)(st))(f 1 (x2)(st))
+
+  foldCurry f c List st = c
+  foldCurry f c ((:<) x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+
+  typeName _ = "[]"
+
+  showQ  = showsPrecList (showQ 0) showQList 
+
+instance Curry C_Four where
+  strEq C_F0 C_F0 _ = strEqSuccess
+  strEq C_F1 C_F1 _ = strEqSuccess
+  strEq C_F2 C_F2 _ = strEqSuccess
+  strEq C_F3 C_F3 _ = strEqSuccess
+  strEq x0   _    _ = strEqFail(typeName(x0))
+
+  eq C_F0 C_F0 _ = C_True
+  eq C_F1 C_F1 _ = C_True
+  eq C_F2 C_F2 _ = C_True
+  eq C_F3 C_F3 _ = C_True
+  eq _    _    _ = C_False
+
+  propagate _ C_F0 _ = C_F0
+  propagate _ C_F1 _ = C_F1
+  propagate _ C_F2 _ = C_F2
+  propagate _ C_F3 _ = C_F3
+
+  foldCurry _ c C_F0 _ = c
+  foldCurry _ c C_F1 _ = c
+  foldCurry _ c C_F2 _ = c
+  foldCurry _ c C_F3 _ = c
+
+  typeName _ = "Four"
+
+
+instance BaseCurry a => Curry (IO (IOVal a)) where 
+  strEq x y = error "IO.strEq"
+
+  eq _ _ = error "IO.eq"
+
+  propagate _ _ = error "propagate IOVal"
+
+  foldCurry _ _ _ = error "foldCurry IOVal"
+
+  typeName _ = "IOVal"
+
+  --toC_Term _ _ _ = error "IO.toC_Term"
+  --fromC_Term _   = error "IO.fromC_Term"
+
+
+instance BaseCurry a => Curry (C_IO a) where
+  strEq _ _ = error "strEq IO"
+
+  eq _ _ = error "eq IO"
+
+  --subst store x = x
+
+  propagate _ _ = error "propagate IO"
+
+  foldCurry _ _ _ = error "foldCurry IO"
+
+  typeName _ = "IO"
+
+  --toC_Term _ _ (C_IOFreeVar r) = C_Free(C_Int(Prelude.toInteger(r)))
+  --toC_Term _ _ _ = C_Data (C_Int 1) (toCurry "IO") List
+
+  --fromC_Term (C_Free (C_Int r)) = C_IOFreeVar(Prelude.fromInteger(r))
+  --fromC_Term _ = error "no converting IO"
+
+instance Curry C_Char where
+  strEq x@(C_Char c1) (C_Char c2) _
+    | c1 Prelude.== c2 = C_True
+  strEq c1@(SearchChar _ _ _ _) (C_Char c2) st = strEq c1 (charToSc c2) st 
+  strEq (C_Char c1) c2@(SearchChar _ _ _ _) st = strEq (charToSc c1) c2 st 
+  strEq (SearchChar x1 x2 x3 x4) (SearchChar y1 y2 y3 y4) st = concAnd (genEq(x1)(y1)st)(concAnd(genStrEq(x2)(y2)st)(concAnd(genStrEq(x3)(y3)st)(genStrEq(x4)(y4)st)st)st)st
+  strEq _ x _ = strEqFail (typeName x)
+
+
+  eq (C_Char x1) (C_Char y1)             _  = toCurry (x1 Prelude.== y1)
+  eq c1@(SearchChar _ _ _ _) (C_Char c2) st = eq c1 (charToSc c2) st
+  eq (C_Char c1) c2@(SearchChar _ _ _ _) st = eq (charToSc c1) c2 st
+  eq (SearchChar x1 x2 x3 x4) (SearchChar y1 y2 y3 y4) st = op_38_38 (genEq (x1)(y1)st) (op_38_38 (genEq(x2)(y2)st) (op_38_38(genEq(x3)(y3)st)(genEq(x4)(y4)st)st)st)st
+  eq _ _ _ = C_False
+
+  propagate _ c@(C_Char _) _ = c
+  propagate f (SearchChar f0 f1 f2 f3) st = 
+    SearchChar (f 0 f0 st) (f 1 f1 st) (f 2 f2 st) (f 3 f3 st)
+
+  foldCurry _ c (C_Char _) _ = c
+  foldCurry f c (SearchChar f0 f1 f2 f3) st = f f0 (f f1 (f f2 (f f3 c st)st)st)st
+
+  typeName _ = "Char"
+
+  showQList = showList  
+
+  --toC_Term _ _ (C_Char c) = C_Data (C_Int (toInteger (ord c))) (toCurry (show c)) List
+  --toC_Term _ _ (C_CharFreeVar r) = C_Free(C_Int(Prelude.toInteger(r)))
+
+  --fromC_Term (C_Data (C_Int (i::Integer)) _ List) = C_Char (chr (fromInteger i))
+  --fromC_Term (C_Data (C_IntFreeVar _) name List) = C_Char (read (fromCurry name))
+  --fromC_Term (C_Free (C_Int r)) = C_CharFreeVar(Prelude.fromInteger(r))
+
+
+instance (Generate a,Show a,Read a,Eq a) => Curry (Prim a) where
+  strEq x@(PrimValue v1) (PrimValue v2) _
+    | v1 Prelude.== v2 = C_True --C_Success
+    | otherwise = strEqFail (typeName x)
+
+  eq (PrimValue v1) (PrimValue v2) _ = toCurry (v1 Prelude.== v2)
+
+  propagate _ (PrimValue v1) _ = PrimValue v1
+
+  foldCurry _ c (PrimValue _) _ = c
+
+  --toC_Term _ _ (PrimValue x1) = let sx = show x1 in
+  --    C_Data (C_Int (string2int sx)) (toCurry sx) List
+  --toC_Term _ _ (PrimFreeVar r) = C_Free(C_Int(Prelude.toInteger(r)))
+
+  --fromC_Term (C_Data _ name List) = PrimValue (read (fromCurry name))
+  --fromC_Term (C_Free (C_Int r)) = PrimFreeVar(Prelude.fromInteger(r))
+ 
+  typeName _ = "Prim"
+
+
+
+-----------------------------------------------------------------
+-- external Curry instances
+-----------------------------------------------------------------
+
+instance Eq (a->b) where
+  (==) = error "comparing FUNCTION"
+
+
+
+
+
+infix  4 ===
+infixr 0 & 
+
+-----------------------------------------------------------------------
+-- IO starter
+-----------------------------------------------------------------------
+
+preturn = Prelude.return
+
+optChangeStore :: a -> (b -> Store -> a) -> ((Int -> Store) -> a) 
+               -> OrRef -> Branches b -> Store -> a
+optChangeStore err det br = 
+  manipulateStore err det (\ _ -> br) (\ _ -> det)
+
+curryIO :: Curry a => (Result (C_IO a)) -> IO a
+curryIO x = let st = emptyStore in ioStart st (x st)
+
+curryIOVoid :: Curry a => (Result (C_IO a)) -> IO ()
+curryIOVoid x = curryIO x >> Prelude.return ()
+
+ioStart :: Curry a => Store -> C_IO a -> IO a
+ioStart st (C_IO act)            = act st Prelude.>>= curryDo st
+ioStart _  (C_IOFail es)         = printExceptions es
+ioStart st (C_IOOr ref bs)       =
+  optChangeStore 
+    (printExceptions (curryError "ioStart"))
+    (flip ioStart)
+    (\st -> searchValC_IO [] (zipWith (mkChoice st) [0..] bs))
+    ref 
+    bs 
+    st
+
+curryDo :: Curry a => Store -> IOVal a -> IO a
+curryDo _  (IOVal x)        = Prelude.return x
+curryDo _  (IOValFail es)   = printExceptions es
+curryDo st (IOValOr ref bs) =     
+  optChangeStore 
+    (printExceptions (curryError "curryDo")) 
+    (\ x st -> x Prelude.>>= curryDo st)
+    (\st -> searchIOVal [] (zipWith (mkChoice st) [0..] bs))
+    ref 
+    bs
+    st
+
+mkChoice :: BaseCurry a => (Int -> Store) -> Int -> a -> (Store,a)
+mkChoice st i x = (st i,x)
+
+searchValC_IO :: Curry a => [C_Exceptions] -> [(Store,C_IO a)] -> IO a
+searchValC_IO es []     = 
+  mapM_ printException es >> error "no solution in branching io value"
+searchValC_IO _ ((st,C_IO act)   : _)  = act st Prelude.>>= curryDo st
+searchValC_IO es ((_ ,C_IOFail e@(ErrorCall _)) : xs) = 
+  searchValC_IO (e:es) xs
+searchValC_IO es ((_ ,C_IOFail e) : xs) = searchValC_IO es xs
+searchValC_IO es ((st,C_IOOr ref bs) : xs) =  
+  optChangeStore
+    (searchValC_IO es xs)
+    (\ x st -> case x of
+        C_IO act   -> act st Prelude.>>= curryDo st
+        C_IOOr _ _ -> searchValC_IO es ((st,x):xs)
+        C_IOFail _ -> searchValC_IO es xs)
+    -- switch arguments of (++) for breadth first (bad.), cf. also below
+    (\ st -> searchValC_IO es (zipWith (mkChoice st) [0..] bs ++ xs))
+    ref bs st
+
+searchIOVal :: Curry a => [C_Exceptions] -> [(Store,IO (IOVal a))] -> IO a
+searchIOVal es []                = 
+  mapM_ printException es >> error "no solution in branching io value"
+searchIOVal es ((st,act) : stacts) = do
+  x <- act
+  case x of
+    IOVal a        -> Prelude.return a
+    IOValFail e@(ErrorCall _) -> searchIOVal (e:es) stacts
+    IOValFail _    -> searchIOVal es stacts
+      -- switch arguments of (++) for breadth first (bad.)
+    IOValOr ref bs -> 
+      optChangeStore 
+        (searchIOVal (curryError "inconsistent Store":es) stacts)
+        (\ x st -> searchIOVal es ((st,x):stacts))
+        (\st -> searchIOVal es (zipWith (mkChoice st) [0..] bs ++ stacts))
+        ref bs st
+
+-- this is the place to change for implicit breadth first search
+searchVal :: (Store -> a -> b) -> Store -> OrRef -> Branches a -> b
+searchVal cont store ref [] =  error "top io failed"
+searchVal cont store ref (x:bs) = cont store x
+
+printException :: C_Exceptions -> IO ()
+printException (PatternMatchFail s) = 
+  hPutStrLn stderr ("non-exhaustive patterns in function "++s)
+printException (AssertionFailed s) = 
+  hPutStrLn stderr ("assertion failed with label "++s)
+printException (IOException s) = 
+  hPutStrLn stderr ("io exception: " ++ s)
+printException (ErrorCall s) = 
+  hPutStrLn stderr ("error : " ++s)
+printException PreludeFailed = hPutStrLn stderr "Prelude.failed"
+
+printExceptions :: C_Exceptions -> IO a
+printExceptions e = 
+  printException e >> error "program error"
+
+-----------------------------------------------------------------------
+-- Int and Float
+-----------------------------------------------------------------------
+
+
+instance Eq C_Int where
+  x == y = (fromCurry x::Integer) Prelude.== fromCurry y
+
+instance Num C_Int where
+  fromInteger x = toCurry x
+  x + y = toCurry ((fromCurry x::Integer) + fromCurry y)
+  x * y = toCurry ((fromCurry x::Integer) * fromCurry y)
+  
+  abs (C_Neg x) = C_Pos x
+  abs x = x
+
+  signum (C_Pos _) = C_Pos C_IHi
+  signum (C_Neg _) = C_Neg C_IHi
+  signum x = x
+
+instance Eq a => Eq (Prim a) where
+  (PrimValue x) == (PrimValue y) = x Prelude.== y
+
+instance (Num a) => Num (Prim a) where
+  (PrimValue x) + (PrimValue y) = PrimValue (x+y)
+  (PrimValue x) - (PrimValue y) = PrimValue (x-y)
+  (PrimValue x) * (PrimValue y) = PrimValue (x*y)
+  negate (PrimValue x) = PrimValue (negate x)
+  abs    (PrimValue x) = PrimValue (abs x)
+  signum (PrimValue x) = PrimValue (signum x)
+  fromInteger x = PrimValue (fromInteger x)
+
+instance Enum a => Enum (Prim a) where 
+    toEnum i = PrimValue (toEnum i)
+    fromEnum (PrimValue x) = fromEnum x
+
+instance Real a => Real (Prim a) where 
+    toRational (PrimValue x) = toRational x
+
+instance Integral a => Integral (Prim a) where 
+    quotRem (PrimValue x) (PrimValue y) = let (x',y') = quotRem x y in 
+                                           (PrimValue x', PrimValue y')
+    toInteger (PrimValue x) = toInteger x
+
+instance Ord a => Ord (Prim a) where
+   (PrimValue x) <= (PrimValue y) = x<=y
+
+-----------------------------------------------------------------------
+-- T0 is unit (), needed for IO primitives
+-----------------------------------------------------------------------
+
+instance ConvertCH T0 () where
+  toCurry () = T0
+  fromCurry T0 = () 
+
+instance (ConvertCH a ha, ConvertCH b hb) => ConvertCH (T2 a b) (ha,hb) where
+  toCurry (x,y) = T2 (toCurry x) (toCurry y)
+  fromCurry (T2 x y) = (fromCurry x, fromCurry y) 
+
+instance (ConvertCH a ha, ConvertCH b hb, ConvertCH c hc) =>
+         ConvertCH (T3 a b c) (ha,hb,hc) where
+  toCurry (x,y,z) = T3 (toCurry x) (toCurry y) (toCurry z)
+  fromCurry (T3 x y z) = (fromCurry x, fromCurry y, fromCurry z) 
+
+-----------------------------------------------------------------------
+-- Maybe
+-----------------------------------------------------------------------
+
+instance (ConvertCH a b) => ConvertCH (C_Maybe a) (Maybe b) where
+  fromCurry C_Nothing  = Nothing
+  fromCurry (C_Just x) = Just (fromCurry x)
+
+  toCurry Nothing  = C_Nothing
+  toCurry (Just x) = C_Just (toCurry x)
+
+
+---------------------------------------------------------------------------------
+-- external functions for Prelude
+---------------------------------------------------------------------------------
+
+($#) :: (Curry a, Curry b) => Prim (a -> Result b) -> a -> Result b
+($#) cont x = prepApply ghnfCTC x cont 
+
+($!) :: (Curry a,Curry b) => Prim (a -> Result b) -> a -> Result b
+($!) cont x = prepApply hnfCTC x cont
+
+($!!) :: (Curry a, Curry b) => Prim (a -> Result b) -> a -> Result b
+($!!) cont x = prepApply nfCTC x cont
+
+($##) :: (Curry a, Curry b) => Prim (a -> Result b) -> a -> Result b
+($##) cont x = prepApply gnfCTC x cont
+
+prim_error :: Curry a => C_String -> Result a
+prim_error s _ = Curry.RunTimeSystem.failed (ErrorCall (fromCurry s))
+
+failed :: Curry a => Result a
+failed _ = Curry.RunTimeSystem.failed PreludeFailed 
+
+(==) :: Curry a => a -> a -> Result C_Bool
+(==) = genEq 
+
+prim_ord :: C_Char -> Result C_Int
+prim_ord cc _ = toCurry (ord (fromCurry cc))
+
+prim_chr :: C_Int -> Result C_Char
+prim_chr ci _ = toCurry (chr (fromCurry ci))
+
+(===) :: Curry a => a -> a -> Result C_Bool --C_Success
+(===) = genStrEq
+ 
+success :: C_Success
+success = C_Success
+
+--concAnd' x y st = startBreadth [x,y] st
+
+(&) :: C_Success -> C_Success -> Result C_Success
+ -- (&) x y st = boolToSuccess (concAnd' (successToBool x) (successToBool y) st)
+(&) x y st = boolToSuccess 
+               (concAnd (successToBool x st) 
+                        (successToBool y st) st) st
+
+boolToSuccess C_True            _  = C_Success
+boolToSuccess C_False           _  = C_SuccessFail (ErrorCall "&")
+boolToSuccess (C_BoolFail e)    _  = C_SuccessFail e
+boolToSuccess (C_BoolOr r xs)   st = mapOr boolToSuccess r xs st
+
+
+successToBool :: C_Success -> Result C_Bool
+successToBool C_Success                _  = C_True
+successToBool (C_SuccessFail e)        _  = C_BoolFail e
+successToBool (C_SuccessOr r xs)       st = mapOr successToBool r xs st
+
+--andBreadth :: List C_Bool -> Result C_Bool
+--andBreadth xs st = startBreadth (toHaskellList xs) st
+
+-- TODO: C_IO without State??? also other io-functions.
+(>>=) :: (Curry a,Curry b) => C_IO a -> Prim (a -> Result (C_IO b)) -> Result (C_IO b)
+(>>=) m f _ = C_IO (hnfCTC (exec f) m)
+
+exec :: (Curry a,Curry b) => Prim (a -> Result (C_IO b)) -> C_IO a -> Result (IO (IOVal b))
+exec f (C_IO m) st = m st Prelude.>>= \ x -> prim_do f x st
+
+-- if it wasn't io, we could just write 
+--exec f st (C_IO m) = m st Prelude.>>= hnfCTC (fromIOVal f) st
+-- with fromIOVal simply being
+--fromIOVal::(Curry a,Curry b)=>Prim(a->C_IO b)->State->IOVal a->IO(IOVal b)
+--fromIOVal f st (IOVal res) = hnfCTC exec2 st (apply f res)
+-- and everything would work fine. But then for the susp and or cases
+-- we would use unsafe io...
+-- Thus, prim_do has to copy the code of ctcStore False
+-- IMPORTANT: This code should correspond to BaseCurry.RunTimeSystem.ctcStore
+
+prim_do ::  (Curry a,Curry b) => 
+            Prim (a -> Result (C_IO b)) -> IOVal a ->  Result (IO (IOVal b))
+prim_do f x state = case x of
+  IOVal res      -> hnfCTC exec2 (apply f res state) state
+  IOValFail es   -> Prelude.return (IOValFail es)
+  IOValOr ref bs -> 
+    optChangeStore
+       (Curry.RunTimeSystem.failed $ curryError "prim_do")
+       (\ x st -> x Prelude.>>= \ x' -> prim_do f x' st)
+       (\ st -> Prelude.return (IOValOr ref 
+                  (zipWith (\ i x -> x Prelude.>>= \ x' -> cont x' (st i)) 
+                           [0..] bs)))
+       ref bs state
+  where
+    cont x st = prim_do f x st
+
+exec2 :: C_IO b -> Result (IO (IOVal b))
+exec2 (C_IO f) = f 
+
+
+return :: a -> Result (C_IO a)
+return a _ = C_IO (\ _ -> Prelude.return (IOVal a))
+
+prim_putChar :: C_Char -> Result (C_IO T0)
+prim_putChar = ioFunc1 putChar 
+
+getChar :: Result (C_IO C_Char)
+getChar = ioFunc0 Prelude.getChar
+ 
+prim_readFile :: C_String -> Result (C_IO C_String)
+prim_readFile = ioFunc1 readFile 
+
+prim_writeFile :: C_String -> C_String -> Result (C_IO T0)
+prim_writeFile = ioFunc2 writeFile 
+
+prim_appendFile :: C_String -> C_String -> Result (C_IO T0)
+prim_appendFile = ioFunc2 appendFile 
+
+catchFail :: Curry a => C_IO a -> C_IO a -> Result (C_IO a)
+catchFail (C_IO act) err _ = 
+  C_IO (\ st -> catch (act st) (const (hnfCTC exec2 err st)))
+catchFail (C_IOFail _) err _ = err
+catchFail (C_IOOr ref bs) err st =
+  optChangeStore 
+    err
+    (flip catchFail err)
+    (\st -> searchValCatch (zipWith (mkChoice st) [0..] bs) err)
+    ref bs st
+
+searchValCatch :: Curry a => [(Store,C_IO a)] -> C_IO a -> C_IO a
+searchValCatch []     err = err
+searchValCatch ((st,C_IO act)   : _)  err = catchFail (C_IO act) err st
+searchValCatch ((_ ,C_IOFail _) : xs) err = searchValCatch xs err
+searchValCatch ((st,C_IOOr ref bs) : xs)  err =  
+  optChangeStore 
+    (searchValCatch xs err)
+    (\ x st -> catchFail x err st)
+    (\ st -> searchValCatch (zipWith (mkChoice st) [0..] bs ++ xs) err)
+    ref bs st
+
+
+
+
+
+prim_show :: (Show a,Curry a) => a -> Result C_String
+prim_show x _ = toCurry (show x)
+
+getSearchTree :: Curry a => a -> Result (C_IO (C_SearchTree a))
+getSearchTree x _ = C_IO (\ state -> Prelude.return (IOVal (searchTr x state)))
+
+ 
+searchTr :: Curry a => a -> Result (C_SearchTree a)
+searchTr x state = transVal (nfCTC (nfCTC const) x state)
+  where
+    transVal x = case consKind x of
+                   Val       -> C_Value x
+                   Failed    -> C_Fail
+                   Branching 
+                     | isGenerator (orRef x) -> C_Value x
+                     | otherwise -> transBranching (branches x)
+
+    transBranching []         = C_Fail
+    transBranching [x]        = transVal x
+    transBranching xs@(_:_:_) = C_Choice (fromHaskellList (map transVal xs))
+
+{-
+toData :: Curry a => a -> Result C_Data
+toData _ st = prim_error (toCurry "toData not implemented") st --ctcStore True (toC_Term True) Nothing
+
+
+toNumData :: Curry a => a -> Result C_NumData
+toNumData _ st = prim_error (toCurry "toNumData not implemented") st
+  --ctcStore True (\ store x -> (conv2num (toC_Term True store x))) Nothing
+
+
+
+cmap _ List = List
+cmap f (x :< xs) = f x :< cmap f xs
+
+fromData :: Curry a => C_Data -> Result a
+fromData _ st = prim_error (toCurry "fromData not implemented") st --fromC_Term
+-}
+
+prepApply :: (BaseCurry a,BaseCurry b) => 
+  ((b -> Result a) -> b -> Result a) -> b -> (Prim (b -> Result a)) -> Result a
+prepApply  prep x (PrimValue f)     st = prep f x st
+prepApply  prep x (PrimOr r bs)     st = mapOr (prepApply prep x) r bs st
+prepApply  _    _  cont             _  = patternFail "Prelude.prepApply" cont
+
+--apply :: (Curry b, Curry (Prim (a -> b))) => Prim (a -> b) -> a -> b
+apply (PrimValue f)     x st = f x st
+apply (PrimOr r bs)     x st = mapOr (\ f -> apply f x) r bs st
+apply cont              _ st = patternFail "Prelude.apply" cont
+
+-- these functions are employed for higher order
+pf :: Curry b => (a -> Result b) -> Prim (a -> Result b)
+pf = PrimValue 
+
+pc :: Curry b => (a -> b) -> (Prim (a -> Result b))
+pc f = PrimValue (\ x _  -> f x)
+
+pa :: Curry c => (a -> Prim (b -> Result c)) -> Prim (a -> Result (Prim (b -> Result c)))
+pa f = PrimValue (\ x _  -> f x)
+
+cp :: (b -> c) -> (a -> b) -> a -> c
+cp f g x = f (g x)
+
+
+cond :: Curry a => C_Success -> a -> Result a
+cond C_Success  x _ = x
+cond (C_SuccessOr r bs)     x st = mapOr (\ c -> cond c x) r bs st
+cond x _ _ = patternFail "Prelude.cond" x
+
+
+ifVar :: (Curry a,Curry b) => b -> a -> a -> a
+ifVar = error "ifVar not implemented"
+
+---------------------------------------------
+-- to ease connecting external functions 
+---------------------------------------------
+
+extFunc1 :: (Curry a,Curry d,ConvertCH a b,ConvertCH d c) => (b->c) -> a -> Result d
+extFunc1 f = gnfCTC (\ x' _ -> toCurry (f (fromCurry x'))) 
+
+extFunc2 :: (Curry a, Curry c,Curry f,ConvertCH a b,ConvertCH c d,ConvertCH f e) => 
+            (b->d->e) -> a -> c -> Result f
+extFunc2 f x y = 
+  gnfCTC (\x'->gnfCTC (\ y' _ -> toCurry (f (fromCurry x') (fromCurry y'))) y) x
+
+extFunc3 :: (Curry c1, Curry c2, Curry c3, Curry cv,
+             ConvertCH c1 h1,ConvertCH c2 h2,ConvertCH c3 h3,ConvertCH cv hv) => 
+            (h1->h2->h3->hv) -> c1 -> c2 -> c3 -> Result cv
+extFunc3 f x y z = 
+  gnfCTC (\x' ->
+  gnfCTC (\y' -> 
+  gnfCTC (\z' _ -> toCurry (f (fromCurry x') (fromCurry y') (fromCurry z'))) z ) y) x
+
+extFunc4 :: (Curry c1, Curry c2, Curry c3, Curry c4, Curry cv,
+             ConvertCH c1 h1,ConvertCH c2 h2,ConvertCH c3 h3,ConvertCH c4 h4,ConvertCH cv hv) => 
+            (h1->h2->h3->h4->hv) -> c1 -> c2 -> c3 -> c4 -> Result cv
+extFunc4 f x1 x2 x3 x4 = 
+  gnfCTC (\x1' ->
+  gnfCTC (\x2' -> 
+  gnfCTC (\x3' -> 
+  gnfCTC (\x4' _ -> toCurry (f (fromCurry x1') (fromCurry x2') (fromCurry x3') (fromCurry x4'))) 
+         x4) x3) x2) x1
+
+
+hnf2 :: (Curry a, Curry b,Curry c) => (a->b->c) -> a -> b -> Result c
+hnf2 f x y = hnfCTC (\ x' -> hnfCTC (\ y' _ -> f x' y') y) x
+
+ioFunc0 :: (Curry b,ConvertCH b a) => IO a -> Result (C_IO b)
+ioFunc0 iof _ = C_IO (\ _ -> iof Prelude.>>= \hv -> Prelude.return (IOVal (toCurry hv)))
+
+
+ioFunc1 :: (Curry a,Curry d,ConvertCH a b,ConvertCH d c) => (b->IO c) -> a -> Result (C_IO d)
+ioFunc1 iof x _ = C_IO (\ _ ->
+           iof (fromCurry x) Prelude.>>= \hv ->
+           Prelude.return (IOVal (toCurry hv)))
+
+ioFunc2 :: (Curry a, Curry c,Curry f,ConvertCH a b,ConvertCH c d,ConvertCH f e) => 
+            (b->d->IO e) -> a -> c -> Result (C_IO f)
+ioFunc2 iof x y _ = C_IO (\ _ ->
+           iof (fromCurry x) (fromCurry y) Prelude.>>= \hv ->
+           Prelude.return (IOVal (toCurry hv)))
+
+ioFunc3 iof x y z _ = C_IO (\ _ ->
+           iof (fromCurry x) (fromCurry y) (fromCurry z) Prelude.>>= \hv ->
+           Prelude.return (IOVal (toCurry hv)))
+
+ghnfCTC2 :: (Curry a, Curry b,Curry c) => (a->b->c) -> a -> b -> Result c
+ghnfCTC2 f x y = ghnfCTC (\x'-> ghnfCTC (\ y' _ -> f x' y') y) x
+
+
+
+(=:<=) = error "function patterns not implemented"
+
+-- from old autogenerated
+
+data Prim t0 = PrimValue t0
+  | PrimFail C_Exceptions
+  | PrimOr OrRef (Branches (Prim t0))
+
+data C_Four = C_F0
+  | C_F1
+  | C_F2
+  | C_F3
+  | C_FourFail C_Exceptions
+  | C_FourOr OrRef (Branches C_Four)
+  deriving (Eq)
+
+instance BaseCurry C_Success where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = withRef(\ r -> C_SuccessOr(mkRef(r)(0)(i))([C_Success]))(0)
+
+  failed  = C_SuccessFail
+
+  branching  = C_SuccessOr
+
+  consKind (C_SuccessOr _ _) = Branching
+  consKind (C_SuccessFail _) = Failed
+  consKind _ = Val
+
+  exceptions (C_SuccessFail x) = x
+
+  orRef (C_SuccessOr x _) = x
+
+  branches (C_SuccessOr _ x) = x
+
+
+
+
+
+instance BaseCurry C_Bool where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = withRef(\ r -> C_BoolOr(mkRef(r)(0)(i))([C_False,C_True]))(0)
+
+  failed  = C_BoolFail
+
+  branching  = C_BoolOr
+
+  consKind (C_BoolOr _ _) = Branching
+  consKind (C_BoolFail _) = Failed
+  consKind _ = Val
+
+  exceptions (C_BoolFail x) = x
+
+  orRef (C_BoolOr x _) = x
+
+  branches (C_BoolOr _ x) = x
+
+
+
+
+
+instance BaseCurry C_Four where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = withRef(\ r -> C_FourOr(mkRef(r)(0)(i))([C_F0,C_F1,C_F2,C_F3]))(0)
+
+  failed  = C_FourFail
+
+  branching  = C_FourOr
+
+  consKind (C_FourOr _ _) = Branching
+  consKind (C_FourFail _) = Failed
+  consKind _ = Val
+
+  exceptions (C_FourFail x) = x
+
+  orRef (C_FourOr x _) = x
+
+  branches (C_FourOr _ x) = x
+
+
+
+
+
+
+
+
+-- end included
+
+type C_String = Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+data T0 = T0
+  | T0Fail Curry.RunTimeSystem.C_Exceptions
+  | T0Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Prelude.T0)
+
+data List t0 = List
+  | (:<) t0 (Curry.Module.Prelude.List t0)
+  | ListFail Curry.RunTimeSystem.C_Exceptions
+  | ListOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.List t0))
+
+data T2 t0 t1 = T2 t0 t1
+  | T2Fail Curry.RunTimeSystem.C_Exceptions
+  | T2Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T2 t0 t1))
+
+data T3 t0 t1 t2 = T3 t0 t1 t2
+  | T3Fail Curry.RunTimeSystem.C_Exceptions
+  | T3Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T3 t0 t1 t2))
+
+data T4 t0 t1 t2 t3 = T4 t0 t1 t2 t3
+  | T4Fail Curry.RunTimeSystem.C_Exceptions
+  | T4Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T4 t0 t1 t2 t3))
+
+data T5 t0 t1 t2 t3 t4 = T5 t0 t1 t2 t3 t4
+  | T5Fail Curry.RunTimeSystem.C_Exceptions
+  | T5Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T5 t0 t1 t2 t3 t4))
+
+data T6 t0 t1 t2 t3 t4 t5 = T6 t0 t1 t2 t3 t4 t5
+  | T6Fail Curry.RunTimeSystem.C_Exceptions
+  | T6Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T6 t0 t1 t2 t3 t4 t5))
+
+data T7 t0 t1 t2 t3 t4 t5 t6 = T7 t0 t1 t2 t3 t4 t5 t6
+  | T7Fail Curry.RunTimeSystem.C_Exceptions
+  | T7Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T7 t0 t1 t2 t3 t4 t5 t6))
+
+data T8 t0 t1 t2 t3 t4 t5 t6 t7 = T8 t0 t1 t2 t3 t4 t5 t6 t7
+  | T8Fail Curry.RunTimeSystem.C_Exceptions
+  | T8Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T8 t0 t1 t2 t3 t4 t5 t6 t7))
+
+data T9 t0 t1 t2 t3 t4 t5 t6 t7 t8 = T9 t0 t1 t2 t3 t4 t5 t6 t7 t8
+  | T9Fail Curry.RunTimeSystem.C_Exceptions
+  | T9Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T9 t0 t1 t2 t3 t4 t5 t6 t7 t8))
+
+data T10 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 = T10 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9
+  | T10Fail Curry.RunTimeSystem.C_Exceptions
+  | T10Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T10 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9))
+
+data T11 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 = T11 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
+  | T11Fail Curry.RunTimeSystem.C_Exceptions
+  | T11Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T11 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10))
+
+data T12 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 = T12 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11
+  | T12Fail Curry.RunTimeSystem.C_Exceptions
+  | T12Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T12 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11))
+
+data T13 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 = T13 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12
+  | T13Fail Curry.RunTimeSystem.C_Exceptions
+  | T13Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T13 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12))
+
+data T14 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 = T14 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13
+  | T14Fail Curry.RunTimeSystem.C_Exceptions
+  | T14Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T14 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13))
+
+data T15 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 = T15 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14
+  | T15Fail Curry.RunTimeSystem.C_Exceptions
+  | T15Or Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.T15 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14))
+
+data C_Ordering = C_LT
+  | C_EQ
+  | C_GT
+  | C_OrderingFail Curry.RunTimeSystem.C_Exceptions
+  | C_OrderingOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Prelude.C_Ordering)
+
+data C_Nat = C_IHi
+  | C_O Curry.Module.Prelude.C_Nat
+  | C_I Curry.Module.Prelude.C_Nat
+  | C_NatFail Curry.RunTimeSystem.C_Exceptions
+  | C_NatOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Prelude.C_Nat)
+
+data C_Int = C_Neg Curry.Module.Prelude.C_Nat
+  | C_Zero
+  | C_Pos Curry.Module.Prelude.C_Nat
+  | C_IntFail Curry.RunTimeSystem.C_Exceptions
+  | C_IntOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Prelude.C_Int)
+
+data C_Success = C_Success
+  | C_SuccessFail Curry.RunTimeSystem.C_Exceptions
+  | C_SuccessOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Prelude.C_Success)
+
+data C_Maybe t0 = C_Nothing
+  | C_Just t0
+  | C_MaybeFail Curry.RunTimeSystem.C_Exceptions
+  | C_MaybeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.C_Maybe t0))
+
+data C_Either t0 t1 = C_Left t0
+  | C_Right t1
+  | C_EitherFail Curry.RunTimeSystem.C_Exceptions
+  | C_EitherOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.C_Either t0 t1))
+
+data C_SearchTree t0 = C_Fail
+  | C_Value t0
+  | C_Choice (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0))
+  | C_Suspend
+  | C_SearchTreeFail Curry.RunTimeSystem.C_Exceptions
+  | C_SearchTreeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.Prelude.C_SearchTree t0))
+
+instance BaseCurry Curry.Module.Prelude.T0 where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.T0Or(Curry.RunTimeSystem.mkRef(r)(0)(i))([Curry.Module.Prelude.T0]))(0)
+
+  failed  = Curry.Module.Prelude.T0Fail
+
+  branching  = Curry.Module.Prelude.T0Or
+
+  consKind (Curry.Module.Prelude.T0Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T0Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T0Fail x) = x
+
+  orRef (Curry.Module.Prelude.T0Or x _) = x
+
+  branches (Curry.Module.Prelude.T0Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1) => BaseCurry (Curry.Module.Prelude.T2 t0 t1) where
+  nf f (Curry.Module.Prelude.T2 x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Prelude.T2(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T2 x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Prelude.T2(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.T2Or(Curry.RunTimeSystem.mkRef(r)(2)(i))([Curry.Module.Prelude.T2(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(2)
+
+  failed  = Curry.Module.Prelude.T2Fail
+
+  branching  = Curry.Module.Prelude.T2Or
+
+  consKind (Curry.Module.Prelude.T2Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T2Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T2Fail x) = x
+
+  orRef (Curry.Module.Prelude.T2Or x _) = x
+
+  branches (Curry.Module.Prelude.T2Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2) => BaseCurry (Curry.Module.Prelude.T3 t0 t1 t2) where
+  nf f (Curry.Module.Prelude.T3 x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.Prelude.T3(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T3 x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.Prelude.T3(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.Prelude.T3Or(Curry.RunTimeSystem.mkRef(r)(3)(i))([Curry.Module.Prelude.T3(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(3)
+
+  failed  = Curry.Module.Prelude.T3Fail
+
+  branching  = Curry.Module.Prelude.T3Or
+
+  consKind (Curry.Module.Prelude.T3Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T3Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T3Fail x) = x
+
+  orRef (Curry.Module.Prelude.T3Or x _) = x
+
+  branches (Curry.Module.Prelude.T3Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3) => BaseCurry (Curry.Module.Prelude.T4 t0 t1 t2 t3) where
+  nf f (Curry.Module.Prelude.T4 x1 x2 x3 x4) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> Curry.RunTimeSystem.nfCTC(\ v4 state4 -> f(Curry.Module.Prelude.T4(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T4 x1 x2 x3 x4) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> Curry.RunTimeSystem.gnfCTC(\ v4 state4 -> f(Curry.Module.Prelude.T4(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.T4Or(Curry.RunTimeSystem.mkRef(r)(4)(i))([Curry.Module.Prelude.T4(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))))]))(4)
+
+  failed  = Curry.Module.Prelude.T4Fail
+
+  branching  = Curry.Module.Prelude.T4Or
+
+  consKind (Curry.Module.Prelude.T4Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T4Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T4Fail x) = x
+
+  orRef (Curry.Module.Prelude.T4Or x _) = x
+
+  branches (Curry.Module.Prelude.T4Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4) => BaseCurry (Curry.Module.Prelude.T5 t0 t1 t2 t3 t4) where
+  nf f (Curry.Module.Prelude.T5 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.Prelude.T5(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.Prelude.T5 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.Prelude.T5(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.Prelude.T5Or(Curry.RunTimeSystem.mkRef(r)(5)(i))([Curry.Module.Prelude.T5(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.Prelude.T5Fail
+
+  branching  = Curry.Module.Prelude.T5Or
+
+  consKind (Curry.Module.Prelude.T5Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T5Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T5Fail x) = x
+
+  orRef (Curry.Module.Prelude.T5Or x _) = x
+
+  branches (Curry.Module.Prelude.T5Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5) => BaseCurry (Curry.Module.Prelude.T6 t0 t1 t2 t3 t4 t5) where
+  nf f (Curry.Module.Prelude.T6 x1 x2 x3 x4 x5 x6) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> f(Curry.Module.Prelude.T6(v1)(v2)(v3)(v4)(v5)(v6))(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T6 x1 x2 x3 x4 x5 x6) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> f(Curry.Module.Prelude.T6(v1)(v2)(v3)(v4)(v5)(v6))(state6))(x6)(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.Prelude.T6Or(Curry.RunTimeSystem.mkRef(r)(6)(i))([Curry.Module.Prelude.T6(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(6)
+
+  failed  = Curry.Module.Prelude.T6Fail
+
+  branching  = Curry.Module.Prelude.T6Or
+
+  consKind (Curry.Module.Prelude.T6Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T6Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T6Fail x) = x
+
+  orRef (Curry.Module.Prelude.T6Or x _) = x
+
+  branches (Curry.Module.Prelude.T6Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6) => BaseCurry (Curry.Module.Prelude.T7 t0 t1 t2 t3 t4 t5 t6) where
+  nf f (Curry.Module.Prelude.T7 x1 x2 x3 x4 x5 x6 x7) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> f(Curry.Module.Prelude.T7(v1)(v2)(v3)(v4)(v5)(v6)(v7))(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T7 x1 x2 x3 x4 x5 x6 x7) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> f(Curry.Module.Prelude.T7(v1)(v2)(v3)(v4)(v5)(v6)(v7))(state7))(x7)(state6))(x6)(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.Prelude.T7Or(Curry.RunTimeSystem.mkRef(r)(7)(i))([Curry.Module.Prelude.T7(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(7)
+
+  failed  = Curry.Module.Prelude.T7Fail
+
+  branching  = Curry.Module.Prelude.T7Or
+
+  consKind (Curry.Module.Prelude.T7Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T7Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T7Fail x) = x
+
+  orRef (Curry.Module.Prelude.T7Or x _) = x
+
+  branches (Curry.Module.Prelude.T7Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6,BaseCurry t7) => BaseCurry (Curry.Module.Prelude.T8 t0 t1 t2 t3 t4 t5 t6 t7) where
+  nf f (Curry.Module.Prelude.T8 x1 x2 x3 x4 x5 x6 x7 x8) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> Curry.RunTimeSystem.nfCTC(\ v8 state8 -> f(Curry.Module.Prelude.T8(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8))(state8))(x8)(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T8 x1 x2 x3 x4 x5 x6 x7 x8) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> Curry.RunTimeSystem.gnfCTC(\ v8 state8 -> f(Curry.Module.Prelude.T8(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8))(state8))(x8)(state7))(x7)(state6))(x6)(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.Prelude.T8Or(Curry.RunTimeSystem.mkRef(r)(8)(i))([Curry.Module.Prelude.T8(Curry.RunTimeSystem.generator((Prelude.+)(r)((7::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(8)
+
+  failed  = Curry.Module.Prelude.T8Fail
+
+  branching  = Curry.Module.Prelude.T8Or
+
+  consKind (Curry.Module.Prelude.T8Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T8Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T8Fail x) = x
+
+  orRef (Curry.Module.Prelude.T8Or x _) = x
+
+  branches (Curry.Module.Prelude.T8Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6,BaseCurry t7,BaseCurry t8) => BaseCurry (Curry.Module.Prelude.T9 t0 t1 t2 t3 t4 t5 t6 t7 t8) where
+  nf f (Curry.Module.Prelude.T9 x1 x2 x3 x4 x5 x6 x7 x8 x9) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> Curry.RunTimeSystem.nfCTC(\ v8 state8 -> Curry.RunTimeSystem.nfCTC(\ v9 state9 -> f(Curry.Module.Prelude.T9(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9))(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T9 x1 x2 x3 x4 x5 x6 x7 x8 x9) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> Curry.RunTimeSystem.gnfCTC(\ v8 state8 -> Curry.RunTimeSystem.gnfCTC(\ v9 state9 -> f(Curry.Module.Prelude.T9(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9))(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(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.Prelude.T9Or(Curry.RunTimeSystem.mkRef(r)(9)(i))([Curry.Module.Prelude.T9(Curry.RunTimeSystem.generator((Prelude.+)(r)((8::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((7::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(9)
+
+  failed  = Curry.Module.Prelude.T9Fail
+
+  branching  = Curry.Module.Prelude.T9Or
+
+  consKind (Curry.Module.Prelude.T9Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T9Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T9Fail x) = x
+
+  orRef (Curry.Module.Prelude.T9Or x _) = x
+
+  branches (Curry.Module.Prelude.T9Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6,BaseCurry t7,BaseCurry t8,BaseCurry t9) => BaseCurry (Curry.Module.Prelude.T10 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9) where
+  nf f (Curry.Module.Prelude.T10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> Curry.RunTimeSystem.nfCTC(\ v8 state8 -> Curry.RunTimeSystem.nfCTC(\ v9 state9 -> Curry.RunTimeSystem.nfCTC(\ v10 state10 -> f(Curry.Module.Prelude.T10(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10))(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> Curry.RunTimeSystem.gnfCTC(\ v8 state8 -> Curry.RunTimeSystem.gnfCTC(\ v9 state9 -> Curry.RunTimeSystem.gnfCTC(\ v10 state10 -> f(Curry.Module.Prelude.T10(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10))(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(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.Prelude.T10Or(Curry.RunTimeSystem.mkRef(r)(10)(i))([Curry.Module.Prelude.T10(Curry.RunTimeSystem.generator((Prelude.+)(r)((9::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((8::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((7::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(10)
+
+  failed  = Curry.Module.Prelude.T10Fail
+
+  branching  = Curry.Module.Prelude.T10Or
+
+  consKind (Curry.Module.Prelude.T10Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T10Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T10Fail x) = x
+
+  orRef (Curry.Module.Prelude.T10Or x _) = x
+
+  branches (Curry.Module.Prelude.T10Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6,BaseCurry t7,BaseCurry t8,BaseCurry t9,BaseCurry t10) => BaseCurry (Curry.Module.Prelude.T11 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10) where
+  nf f (Curry.Module.Prelude.T11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> Curry.RunTimeSystem.nfCTC(\ v8 state8 -> Curry.RunTimeSystem.nfCTC(\ v9 state9 -> Curry.RunTimeSystem.nfCTC(\ v10 state10 -> Curry.RunTimeSystem.nfCTC(\ v11 state11 -> f(Curry.Module.Prelude.T11(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11))(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> Curry.RunTimeSystem.gnfCTC(\ v8 state8 -> Curry.RunTimeSystem.gnfCTC(\ v9 state9 -> Curry.RunTimeSystem.gnfCTC(\ v10 state10 -> Curry.RunTimeSystem.gnfCTC(\ v11 state11 -> f(Curry.Module.Prelude.T11(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11))(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(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.Prelude.T11Or(Curry.RunTimeSystem.mkRef(r)(11)(i))([Curry.Module.Prelude.T11(Curry.RunTimeSystem.generator((Prelude.+)(r)((10::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((9::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((8::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((7::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(11)
+
+  failed  = Curry.Module.Prelude.T11Fail
+
+  branching  = Curry.Module.Prelude.T11Or
+
+  consKind (Curry.Module.Prelude.T11Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T11Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T11Fail x) = x
+
+  orRef (Curry.Module.Prelude.T11Or x _) = x
+
+  branches (Curry.Module.Prelude.T11Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6,BaseCurry t7,BaseCurry t8,BaseCurry t9,BaseCurry t10,BaseCurry t11) => BaseCurry (Curry.Module.Prelude.T12 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11) where
+  nf f (Curry.Module.Prelude.T12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> Curry.RunTimeSystem.nfCTC(\ v8 state8 -> Curry.RunTimeSystem.nfCTC(\ v9 state9 -> Curry.RunTimeSystem.nfCTC(\ v10 state10 -> Curry.RunTimeSystem.nfCTC(\ v11 state11 -> Curry.RunTimeSystem.nfCTC(\ v12 state12 -> f(Curry.Module.Prelude.T12(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11)(v12))(state12))(x12)(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> Curry.RunTimeSystem.gnfCTC(\ v8 state8 -> Curry.RunTimeSystem.gnfCTC(\ v9 state9 -> Curry.RunTimeSystem.gnfCTC(\ v10 state10 -> Curry.RunTimeSystem.gnfCTC(\ v11 state11 -> Curry.RunTimeSystem.gnfCTC(\ v12 state12 -> f(Curry.Module.Prelude.T12(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11)(v12))(state12))(x12)(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(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.Prelude.T12Or(Curry.RunTimeSystem.mkRef(r)(12)(i))([Curry.Module.Prelude.T12(Curry.RunTimeSystem.generator((Prelude.+)(r)((11::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((10::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((9::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((8::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((7::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(12)
+
+  failed  = Curry.Module.Prelude.T12Fail
+
+  branching  = Curry.Module.Prelude.T12Or
+
+  consKind (Curry.Module.Prelude.T12Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T12Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T12Fail x) = x
+
+  orRef (Curry.Module.Prelude.T12Or x _) = x
+
+  branches (Curry.Module.Prelude.T12Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6,BaseCurry t7,BaseCurry t8,BaseCurry t9,BaseCurry t10,BaseCurry t11,BaseCurry t12) => BaseCurry (Curry.Module.Prelude.T13 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12) where
+  nf f (Curry.Module.Prelude.T13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> Curry.RunTimeSystem.nfCTC(\ v8 state8 -> Curry.RunTimeSystem.nfCTC(\ v9 state9 -> Curry.RunTimeSystem.nfCTC(\ v10 state10 -> Curry.RunTimeSystem.nfCTC(\ v11 state11 -> Curry.RunTimeSystem.nfCTC(\ v12 state12 -> Curry.RunTimeSystem.nfCTC(\ v13 state13 -> f(Curry.Module.Prelude.T13(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11)(v12)(v13))(state13))(x13)(state12))(x12)(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> Curry.RunTimeSystem.gnfCTC(\ v8 state8 -> Curry.RunTimeSystem.gnfCTC(\ v9 state9 -> Curry.RunTimeSystem.gnfCTC(\ v10 state10 -> Curry.RunTimeSystem.gnfCTC(\ v11 state11 -> Curry.RunTimeSystem.gnfCTC(\ v12 state12 -> Curry.RunTimeSystem.gnfCTC(\ v13 state13 -> f(Curry.Module.Prelude.T13(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11)(v12)(v13))(state13))(x13)(state12))(x12)(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(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.Prelude.T13Or(Curry.RunTimeSystem.mkRef(r)(13)(i))([Curry.Module.Prelude.T13(Curry.RunTimeSystem.generator((Prelude.+)(r)((12::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((11::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((10::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((9::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((8::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((7::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(13)
+
+  failed  = Curry.Module.Prelude.T13Fail
+
+  branching  = Curry.Module.Prelude.T13Or
+
+  consKind (Curry.Module.Prelude.T13Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T13Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T13Fail x) = x
+
+  orRef (Curry.Module.Prelude.T13Or x _) = x
+
+  branches (Curry.Module.Prelude.T13Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6,BaseCurry t7,BaseCurry t8,BaseCurry t9,BaseCurry t10,BaseCurry t11,BaseCurry t12,BaseCurry t13) => BaseCurry (Curry.Module.Prelude.T14 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13) where
+  nf f (Curry.Module.Prelude.T14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> Curry.RunTimeSystem.nfCTC(\ v8 state8 -> Curry.RunTimeSystem.nfCTC(\ v9 state9 -> Curry.RunTimeSystem.nfCTC(\ v10 state10 -> Curry.RunTimeSystem.nfCTC(\ v11 state11 -> Curry.RunTimeSystem.nfCTC(\ v12 state12 -> Curry.RunTimeSystem.nfCTC(\ v13 state13 -> Curry.RunTimeSystem.nfCTC(\ v14 state14 -> f(Curry.Module.Prelude.T14(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11)(v12)(v13)(v14))(state14))(x14)(state13))(x13)(state12))(x12)(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> Curry.RunTimeSystem.gnfCTC(\ v8 state8 -> Curry.RunTimeSystem.gnfCTC(\ v9 state9 -> Curry.RunTimeSystem.gnfCTC(\ v10 state10 -> Curry.RunTimeSystem.gnfCTC(\ v11 state11 -> Curry.RunTimeSystem.gnfCTC(\ v12 state12 -> Curry.RunTimeSystem.gnfCTC(\ v13 state13 -> Curry.RunTimeSystem.gnfCTC(\ v14 state14 -> f(Curry.Module.Prelude.T14(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11)(v12)(v13)(v14))(state14))(x14)(state13))(x13)(state12))(x12)(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(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.Prelude.T14Or(Curry.RunTimeSystem.mkRef(r)(14)(i))([Curry.Module.Prelude.T14(Curry.RunTimeSystem.generator((Prelude.+)(r)((13::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((12::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((11::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((10::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((9::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((8::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((7::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(14)
+
+  failed  = Curry.Module.Prelude.T14Fail
+
+  branching  = Curry.Module.Prelude.T14Or
+
+  consKind (Curry.Module.Prelude.T14Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T14Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T14Fail x) = x
+
+  orRef (Curry.Module.Prelude.T14Or x _) = x
+
+  branches (Curry.Module.Prelude.T14Or _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1,BaseCurry t2,BaseCurry t3,BaseCurry t4,BaseCurry t5,BaseCurry t6,BaseCurry t7,BaseCurry t8,BaseCurry t9,BaseCurry t10,BaseCurry t11,BaseCurry t12,BaseCurry t13,BaseCurry t14) => BaseCurry (Curry.Module.Prelude.T15 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14) where
+  nf f (Curry.Module.Prelude.T15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> Curry.RunTimeSystem.nfCTC(\ v8 state8 -> Curry.RunTimeSystem.nfCTC(\ v9 state9 -> Curry.RunTimeSystem.nfCTC(\ v10 state10 -> Curry.RunTimeSystem.nfCTC(\ v11 state11 -> Curry.RunTimeSystem.nfCTC(\ v12 state12 -> Curry.RunTimeSystem.nfCTC(\ v13 state13 -> Curry.RunTimeSystem.nfCTC(\ v14 state14 -> Curry.RunTimeSystem.nfCTC(\ v15 state15 -> f(Curry.Module.Prelude.T15(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11)(v12)(v13)(v14)(v15))(state15))(x15)(state14))(x14)(state13))(x13)(state12))(x12)(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.T15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> Curry.RunTimeSystem.gnfCTC(\ v8 state8 -> Curry.RunTimeSystem.gnfCTC(\ v9 state9 -> Curry.RunTimeSystem.gnfCTC(\ v10 state10 -> Curry.RunTimeSystem.gnfCTC(\ v11 state11 -> Curry.RunTimeSystem.gnfCTC(\ v12 state12 -> Curry.RunTimeSystem.gnfCTC(\ v13 state13 -> Curry.RunTimeSystem.gnfCTC(\ v14 state14 -> Curry.RunTimeSystem.gnfCTC(\ v15 state15 -> f(Curry.Module.Prelude.T15(v1)(v2)(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10)(v11)(v12)(v13)(v14)(v15))(state15))(x15)(state14))(x14)(state13))(x13)(state12))(x12)(state11))(x11)(state10))(x10)(state9))(x9)(state8))(x8)(state7))(x7)(state6))(x6)(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.Prelude.T15Or(Curry.RunTimeSystem.mkRef(r)(15)(i))([Curry.Module.Prelude.T15(Curry.RunTimeSystem.generator((Prelude.+)(r)((14::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((13::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((12::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((11::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((10::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((9::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((8::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((7::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(15)
+
+  failed  = Curry.Module.Prelude.T15Fail
+
+  branching  = Curry.Module.Prelude.T15Or
+
+  consKind (Curry.Module.Prelude.T15Or _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.T15Fail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.T15Fail x) = x
+
+  orRef (Curry.Module.Prelude.T15Or x _) = x
+
+  branches (Curry.Module.Prelude.T15Or _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.Prelude.C_Ordering where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.C_OrderingOr(Curry.RunTimeSystem.mkRef(r)(0)(i))([Curry.Module.Prelude.C_LT,Curry.Module.Prelude.C_EQ,Curry.Module.Prelude.C_GT]))(0)
+
+  failed  = Curry.Module.Prelude.C_OrderingFail
+
+  branching  = Curry.Module.Prelude.C_OrderingOr
+
+  consKind (Curry.Module.Prelude.C_OrderingOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.C_OrderingFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.C_OrderingFail x) = x
+
+  orRef (Curry.Module.Prelude.C_OrderingOr x _) = x
+
+  branches (Curry.Module.Prelude.C_OrderingOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.Prelude.C_Nat where
+  nf f (Curry.Module.Prelude.C_O x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_O(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Prelude.C_I x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_I(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.C_O x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_O(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Prelude.C_I x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_I(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.C_NatOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Prelude.C_IHi,Curry.Module.Prelude.C_O(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Prelude.C_I(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(1)
+
+  failed  = Curry.Module.Prelude.C_NatFail
+
+  branching  = Curry.Module.Prelude.C_NatOr
+
+  consKind (Curry.Module.Prelude.C_NatOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.C_NatFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.C_NatFail x) = x
+
+  orRef (Curry.Module.Prelude.C_NatOr x _) = x
+
+  branches (Curry.Module.Prelude.C_NatOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.Prelude.C_Int where
+  nf f (Curry.Module.Prelude.C_Neg x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Neg(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Prelude.C_Pos x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Pos(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.C_Neg x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Neg(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Prelude.C_Pos x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Pos(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.C_IntOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Prelude.C_Neg(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Prelude.C_Zero,Curry.Module.Prelude.C_Pos(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(1)
+
+  failed  = Curry.Module.Prelude.C_IntFail
+
+  branching  = Curry.Module.Prelude.C_IntOr
+
+  consKind (Curry.Module.Prelude.C_IntOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.C_IntFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.C_IntFail x) = x
+
+  orRef (Curry.Module.Prelude.C_IntOr x _) = x
+
+  branches (Curry.Module.Prelude.C_IntOr _ x) = x
+
+
+
+
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.Prelude.C_Maybe t0) where
+  nf f (Curry.Module.Prelude.C_Just x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Just(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.C_Just x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Just(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.C_MaybeOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Prelude.C_Nothing,Curry.Module.Prelude.C_Just(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(1)
+
+  failed  = Curry.Module.Prelude.C_MaybeFail
+
+  branching  = Curry.Module.Prelude.C_MaybeOr
+
+  consKind (Curry.Module.Prelude.C_MaybeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.C_MaybeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.C_MaybeFail x) = x
+
+  orRef (Curry.Module.Prelude.C_MaybeOr x _) = x
+
+  branches (Curry.Module.Prelude.C_MaybeOr _ x) = x
+
+
+
+
+
+instance (BaseCurry t0,BaseCurry t1) => BaseCurry (Curry.Module.Prelude.C_Either t0 t1) where
+  nf f (Curry.Module.Prelude.C_Left x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Left(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Prelude.C_Right x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Right(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.C_Left x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Left(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Prelude.C_Right x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Right(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.C_EitherOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Prelude.C_Left(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Prelude.C_Right(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(1)
+
+  failed  = Curry.Module.Prelude.C_EitherFail
+
+  branching  = Curry.Module.Prelude.C_EitherOr
+
+  consKind (Curry.Module.Prelude.C_EitherOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.C_EitherFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.C_EitherFail x) = x
+
+  orRef (Curry.Module.Prelude.C_EitherOr x _) = x
+
+  branches (Curry.Module.Prelude.C_EitherOr _ x) = x
+
+
+
+
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.Prelude.C_SearchTree t0) where
+  nf f (Curry.Module.Prelude.C_Value x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Value(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Prelude.C_Choice x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Choice(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Prelude.C_Value x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Value(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Prelude.C_Choice x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Prelude.C_Choice(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Prelude.C_SearchTreeOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Prelude.C_Fail,Curry.Module.Prelude.C_Value(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Prelude.C_Choice(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Prelude.C_Suspend]))(1)
+
+  failed  = Curry.Module.Prelude.C_SearchTreeFail
+
+  branching  = Curry.Module.Prelude.C_SearchTreeOr
+
+  consKind (Curry.Module.Prelude.C_SearchTreeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Prelude.C_SearchTreeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Prelude.C_SearchTreeFail x) = x
+
+  orRef (Curry.Module.Prelude.C_SearchTreeOr x _) = x
+
+  branches (Curry.Module.Prelude.C_SearchTreeOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.Prelude.T0 where
+  strEq Curry.Module.Prelude.T0 Curry.Module.Prelude.T0 st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Prelude.T0 Curry.Module.Prelude.T0 st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Prelude.T0 st = Curry.Module.Prelude.T0
+
+  foldCurry f c Curry.Module.Prelude.T0 st = c
+
+  typeName _ = "()"
+
+  showQ _ Curry.Module.Prelude.T0 = Prelude.showString("()")
+  showQ _ (Curry.Module.Prelude.T0Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1) => Curry (Curry.Module.Prelude.T2 t0 t1) where
+  strEq (Curry.Module.Prelude.T2 x1 x2) (Curry.Module.Prelude.T2 y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T2 x1 x2) (Curry.Module.Prelude.T2 y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T2 x1 x2) st = Curry.Module.Prelude.T2(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T2 x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+
+  typeName _ = "(,)"
+
+  showQ d (Curry.Module.Prelude.T2 x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))))
+
+
+  showQ _ (Curry.Module.Prelude.T2Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2) => Curry (Curry.Module.Prelude.T3 t0 t1 t2) where
+  strEq (Curry.Module.Prelude.T3 x1 x2 x3) (Curry.Module.Prelude.T3 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 _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T3 x1 x2 x3) (Curry.Module.Prelude.T3 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.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T3 x1 x2 x3) st = Curry.Module.Prelude.T3(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T3 x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+
+  typeName _ = "(,,)"
+
+  showQ d (Curry.Module.Prelude.T3 x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))))))
+
+
+  showQ _ (Curry.Module.Prelude.T3Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3) => Curry (Curry.Module.Prelude.T4 t0 t1 t2 t3) where
+  strEq (Curry.Module.Prelude.T4 x1 x2 x3 x4) (Curry.Module.Prelude.T4 y1 y2 y3 y4) 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.genStrEq(x4)(y4)(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T4 x1 x2 x3 x4) (Curry.Module.Prelude.T4 y1 y2 y3 y4) 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.genEq(x4)(y4)(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T4 x1 x2 x3 x4) st = Curry.Module.Prelude.T4(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))(f((3::Int))(x4)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T4 x1 x2 x3 x4) st = f(x1)(f(x2)(f(x3)(f(x4)(c)(st))(st))(st))(st)
+
+  typeName _ = "(,,,)"
+
+  showQ d (Curry.Module.Prelude.T4 x1 x2 x3 x4) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T4Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4) => Curry (Curry.Module.Prelude.T5 t0 t1 t2 t3 t4) where
+  strEq (Curry.Module.Prelude.T5 x1 x2 x3 x4 x5) (Curry.Module.Prelude.T5 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.Prelude.T5 x1 x2 x3 x4 x5) (Curry.Module.Prelude.T5 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.Prelude.T5 x1 x2 x3 x4 x5) st = Curry.Module.Prelude.T5(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.Prelude.T5 x1 x2 x3 x4 x5) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(c)(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,)"
+
+  showQ d (Curry.Module.Prelude.T5 x1 x2 x3 x4 x5) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T5Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5) => Curry (Curry.Module.Prelude.T6 t0 t1 t2 t3 t4 t5) where
+  strEq (Curry.Module.Prelude.T6 x1 x2 x3 x4 x5 x6) (Curry.Module.Prelude.T6 y1 y2 y3 y4 y5 y6) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T6 x1 x2 x3 x4 x5 x6) (Curry.Module.Prelude.T6 y1 y2 y3 y4 y5 y6) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.genEq(x6)(y6)(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T6 x1 x2 x3 x4 x5 x6) st = Curry.Module.Prelude.T6(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))(f((5::Int))(x6)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T6 x1 x2 x3 x4 x5 x6) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(c)(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T6 x1 x2 x3 x4 x5 x6) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T6Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6) => Curry (Curry.Module.Prelude.T7 t0 t1 t2 t3 t4 t5 t6) where
+  strEq (Curry.Module.Prelude.T7 x1 x2 x3 x4 x5 x6 x7) (Curry.Module.Prelude.T7 y1 y2 y3 y4 y5 y6 y7) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T7 x1 x2 x3 x4 x5 x6 x7) (Curry.Module.Prelude.T7 y1 y2 y3 y4 y5 y6 y7) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.genEq(x7)(y7)(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T7 x1 x2 x3 x4 x5 x6 x7) st = Curry.Module.Prelude.T7(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T7 x1 x2 x3 x4 x5 x6 x7) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(c)(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T7 x1 x2 x3 x4 x5 x6 x7) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T7Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6,Curry t7) => Curry (Curry.Module.Prelude.T8 t0 t1 t2 t3 t4 t5 t6 t7) where
+  strEq (Curry.Module.Prelude.T8 x1 x2 x3 x4 x5 x6 x7 x8) (Curry.Module.Prelude.T8 y1 y2 y3 y4 y5 y6 y7 y8) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(Curry.Module.Prelude.genStrEq(x8)(y8)(st))(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T8 x1 x2 x3 x4 x5 x6 x7 x8) (Curry.Module.Prelude.T8 y1 y2 y3 y4 y5 y6 y7 y8) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x7)(y7)(st))(Curry.Module.Prelude.genEq(x8)(y8)(st))(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T8 x1 x2 x3 x4 x5 x6 x7 x8) st = Curry.Module.Prelude.T8(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))(f((7::Int))(x8)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T8 x1 x2 x3 x4 x5 x6 x7 x8) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(f(x8)(c)(st))(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T8 x1 x2 x3 x4 x5 x6 x7 x8) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x8))))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T8Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6,Curry t7,Curry t8) => Curry (Curry.Module.Prelude.T9 t0 t1 t2 t3 t4 t5 t6 t7 t8) where
+  strEq (Curry.Module.Prelude.T9 x1 x2 x3 x4 x5 x6 x7 x8 x9) (Curry.Module.Prelude.T9 y1 y2 y3 y4 y5 y6 y7 y8 y9) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x8)(y8)(st))(Curry.Module.Prelude.genStrEq(x9)(y9)(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T9 x1 x2 x3 x4 x5 x6 x7 x8 x9) (Curry.Module.Prelude.T9 y1 y2 y3 y4 y5 y6 y7 y8 y9) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x7)(y7)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x8)(y8)(st))(Curry.Module.Prelude.genEq(x9)(y9)(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T9 x1 x2 x3 x4 x5 x6 x7 x8 x9) st = Curry.Module.Prelude.T9(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))(f((7::Int))(x8)(st))(f((8::Int))(x9)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T9 x1 x2 x3 x4 x5 x6 x7 x8 x9) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(f(x8)(f(x9)(c)(st))(st))(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T9 x1 x2 x3 x4 x5 x6 x7 x8 x9) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x9))))))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T9Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6,Curry t7,Curry t8,Curry t9) => Curry (Curry.Module.Prelude.T10 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9) where
+  strEq (Curry.Module.Prelude.T10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) (Curry.Module.Prelude.T10 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x8)(y8)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x9)(y9)(st))(Curry.Module.Prelude.genStrEq(x10)(y10)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) (Curry.Module.Prelude.T10 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x7)(y7)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x8)(y8)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x9)(y9)(st))(Curry.Module.Prelude.genEq(x10)(y10)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) st = Curry.Module.Prelude.T10(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))(f((7::Int))(x8)(st))(f((8::Int))(x9)(st))(f((9::Int))(x10)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(f(x8)(f(x9)(f(x10)(c)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x10))))))))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T10Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6,Curry t7,Curry t8,Curry t9,Curry t10) => Curry (Curry.Module.Prelude.T11 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10) where
+  strEq (Curry.Module.Prelude.T11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) (Curry.Module.Prelude.T11 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x8)(y8)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x9)(y9)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x10)(y10)(st))(Curry.Module.Prelude.genStrEq(x11)(y11)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) (Curry.Module.Prelude.T11 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x7)(y7)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x8)(y8)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x9)(y9)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x10)(y10)(st))(Curry.Module.Prelude.genEq(x11)(y11)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) st = Curry.Module.Prelude.T11(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))(f((7::Int))(x8)(st))(f((8::Int))(x9)(st))(f((9::Int))(x10)(st))(f((10::Int))(x11)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(f(x8)(f(x9)(f(x10)(f(x11)(c)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x11))))))))))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T11Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6,Curry t7,Curry t8,Curry t9,Curry t10,Curry t11) => Curry (Curry.Module.Prelude.T12 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11) where
+  strEq (Curry.Module.Prelude.T12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) (Curry.Module.Prelude.T12 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x8)(y8)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x9)(y9)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x10)(y10)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x11)(y11)(st))(Curry.Module.Prelude.genStrEq(x12)(y12)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) (Curry.Module.Prelude.T12 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x7)(y7)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x8)(y8)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x9)(y9)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x10)(y10)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x11)(y11)(st))(Curry.Module.Prelude.genEq(x12)(y12)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) st = Curry.Module.Prelude.T12(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))(f((7::Int))(x8)(st))(f((8::Int))(x9)(st))(f((9::Int))(x10)(st))(f((10::Int))(x11)(st))(f((11::Int))(x12)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(f(x8)(f(x9)(f(x10)(f(x11)(f(x12)(c)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x11))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x12))))))))))))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T12Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6,Curry t7,Curry t8,Curry t9,Curry t10,Curry t11,Curry t12) => Curry (Curry.Module.Prelude.T13 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12) where
+  strEq (Curry.Module.Prelude.T13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) (Curry.Module.Prelude.T13 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x8)(y8)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x9)(y9)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x10)(y10)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x11)(y11)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x12)(y12)(st))(Curry.Module.Prelude.genStrEq(x13)(y13)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) (Curry.Module.Prelude.T13 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x7)(y7)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x8)(y8)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x9)(y9)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x10)(y10)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x11)(y11)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x12)(y12)(st))(Curry.Module.Prelude.genEq(x13)(y13)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) st = Curry.Module.Prelude.T13(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))(f((7::Int))(x8)(st))(f((8::Int))(x9)(st))(f((9::Int))(x10)(st))(f((10::Int))(x11)(st))(f((11::Int))(x12)(st))(f((12::Int))(x13)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(f(x8)(f(x9)(f(x10)(f(x11)(f(x12)(f(x13)(c)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x11))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x12))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x13))))))))))))))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T13Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6,Curry t7,Curry t8,Curry t9,Curry t10,Curry t11,Curry t12,Curry t13) => Curry (Curry.Module.Prelude.T14 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13) where
+  strEq (Curry.Module.Prelude.T14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) (Curry.Module.Prelude.T14 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x8)(y8)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x9)(y9)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x10)(y10)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x11)(y11)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x12)(y12)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x13)(y13)(st))(Curry.Module.Prelude.genStrEq(x14)(y14)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) (Curry.Module.Prelude.T14 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x7)(y7)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x8)(y8)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x9)(y9)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x10)(y10)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x11)(y11)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x12)(y12)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x13)(y13)(st))(Curry.Module.Prelude.genEq(x14)(y14)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) st = Curry.Module.Prelude.T14(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))(f((7::Int))(x8)(st))(f((8::Int))(x9)(st))(f((9::Int))(x10)(st))(f((10::Int))(x11)(st))(f((11::Int))(x12)(st))(f((12::Int))(x13)(st))(f((13::Int))(x14)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(f(x8)(f(x9)(f(x10)(f(x11)(f(x12)(f(x13)(f(x14)(c)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,,,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x11))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x12))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x13))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x14))))))))))))))))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T14Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6,Curry t7,Curry t8,Curry t9,Curry t10,Curry t11,Curry t12,Curry t13,Curry t14) => Curry (Curry.Module.Prelude.T15 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14) where
+  strEq (Curry.Module.Prelude.T15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) (Curry.Module.Prelude.T15 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x8)(y8)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x9)(y9)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x10)(y10)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x11)(y11)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x12)(y12)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x13)(y13)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x14)(y14)(st))(Curry.Module.Prelude.genStrEq(x15)(y15)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.T15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) (Curry.Module.Prelude.T15 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x7)(y7)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x8)(y8)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x9)(y9)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x10)(y10)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x11)(y11)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x12)(y12)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x13)(y13)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x14)(y14)(st))(Curry.Module.Prelude.genEq(x15)(y15)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.T15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) st = Curry.Module.Prelude.T15(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))(f((7::Int))(x8)(st))(f((8::Int))(x9)(st))(f((9::Int))(x10)(st))(f((10::Int))(x11)(st))(f((11::Int))(x12)(st))(f((12::Int))(x13)(st))(f((13::Int))(x14)(st))(f((14::Int))(x15)(st))
+
+  foldCurry f c (Curry.Module.Prelude.T15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(f(x8)(f(x9)(f(x10)(f(x11)(f(x12)(f(x13)(f(x14)(f(x15)(c)(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "(,,,,,,,,,,,,,,)"
+
+  showQ d (Curry.Module.Prelude.T15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x11))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x12))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x13))((Prelude..)(Prelude.showChar(','))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x14))((Prelude..)(Prelude.showChar(','))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.zero)(x15))))))))))))))))))))))))))))))
+
+
+  showQ _ (Curry.Module.Prelude.T15Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.Prelude.C_Bool where
+  strEq Curry.Module.Prelude.C_False Curry.Module.Prelude.C_False st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.Prelude.C_True Curry.Module.Prelude.C_True st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Prelude.C_False Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_True
+  eq Curry.Module.Prelude.C_True Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_False
+  propagate f Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_True
+
+  foldCurry f c Curry.Module.Prelude.C_False st = c
+  foldCurry f c Curry.Module.Prelude.C_True st = c
+
+  typeName _ = "Bool"
+
+  showQ _ Curry.Module.Prelude.C_False = Prelude.showString("Prelude.False")
+  showQ _ Curry.Module.Prelude.C_True = Prelude.showString("Prelude.True")
+  showQ _ (Curry.Module.Prelude.C_BoolOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.Prelude.C_Ordering where
+  strEq Curry.Module.Prelude.C_LT Curry.Module.Prelude.C_LT st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.Prelude.C_EQ Curry.Module.Prelude.C_EQ st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.Prelude.C_GT Curry.Module.Prelude.C_GT st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Prelude.C_LT Curry.Module.Prelude.C_LT st = Curry.Module.Prelude.C_True
+  eq Curry.Module.Prelude.C_EQ Curry.Module.Prelude.C_EQ st = Curry.Module.Prelude.C_True
+  eq Curry.Module.Prelude.C_GT Curry.Module.Prelude.C_GT st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Prelude.C_LT st = Curry.Module.Prelude.C_LT
+  propagate f Curry.Module.Prelude.C_EQ st = Curry.Module.Prelude.C_EQ
+  propagate f Curry.Module.Prelude.C_GT st = Curry.Module.Prelude.C_GT
+
+  foldCurry f c Curry.Module.Prelude.C_LT st = c
+  foldCurry f c Curry.Module.Prelude.C_EQ st = c
+  foldCurry f c Curry.Module.Prelude.C_GT st = c
+
+  typeName _ = "Ordering"
+
+  showQ _ Curry.Module.Prelude.C_LT = Prelude.showString("Prelude.LT")
+  showQ _ Curry.Module.Prelude.C_EQ = Prelude.showString("Prelude.EQ")
+  showQ _ Curry.Module.Prelude.C_GT = Prelude.showString("Prelude.GT")
+  showQ _ (Curry.Module.Prelude.C_OrderingOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.Prelude.C_Nat where
+  strEq Curry.Module.Prelude.C_IHi Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.Prelude.C_O x1) (Curry.Module.Prelude.C_O y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Prelude.C_I x1) (Curry.Module.Prelude.C_I y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Prelude.C_IHi Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.Prelude.C_O x1) (Curry.Module.Prelude.C_O y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Prelude.C_I x1) (Curry.Module.Prelude.C_I y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_IHi
+  propagate f (Curry.Module.Prelude.C_O x1) st = Curry.Module.Prelude.C_O(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Prelude.C_I x1) st = Curry.Module.Prelude.C_I(f((0::Int))(x1)(st))
+
+  foldCurry f c Curry.Module.Prelude.C_IHi st = c
+  foldCurry f c (Curry.Module.Prelude.C_O x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Prelude.C_I x1) st = f(x1)(c)(st)
+
+  typeName _ = "Nat"
+
+  showQ  = Prelude.showsPrec
+
+
+
+
+
+instance Curry Curry.Module.Prelude.C_Int where
+  strEq (Curry.Module.Prelude.C_Neg x1) (Curry.Module.Prelude.C_Neg y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq Curry.Module.Prelude.C_Zero Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.Prelude.C_Pos x1) (Curry.Module.Prelude.C_Pos y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.C_Neg x1) (Curry.Module.Prelude.C_Neg y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq Curry.Module.Prelude.C_Zero Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.Prelude.C_Pos x1) (Curry.Module.Prelude.C_Pos y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.C_Neg x1) st = Curry.Module.Prelude.C_Neg(f((0::Int))(x1)(st))
+  propagate f Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_Zero
+  propagate f (Curry.Module.Prelude.C_Pos x1) st = Curry.Module.Prelude.C_Pos(f((0::Int))(x1)(st))
+
+  foldCurry f c (Curry.Module.Prelude.C_Neg x1) st = f(x1)(c)(st)
+  foldCurry f c Curry.Module.Prelude.C_Zero st = c
+  foldCurry f c (Curry.Module.Prelude.C_Pos x1) st = f(x1)(c)(st)
+
+  typeName _ = "Int"
+
+  showQ  = Prelude.showsPrec
+
+
+
+
+
+instance Curry Curry.Module.Prelude.C_Success where
+  strEq Curry.Module.Prelude.C_Success Curry.Module.Prelude.C_Success st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Prelude.C_Success Curry.Module.Prelude.C_Success st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Prelude.C_Success st = Curry.Module.Prelude.C_Success
+
+  foldCurry f c Curry.Module.Prelude.C_Success st = c
+
+  typeName _ = "Success"
+
+  showQ  = Prelude.showsPrec
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.Prelude.C_Maybe t0) where
+  strEq Curry.Module.Prelude.C_Nothing Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.Prelude.C_Just x1) (Curry.Module.Prelude.C_Just y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Prelude.C_Nothing Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.Prelude.C_Just x1) (Curry.Module.Prelude.C_Just y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.C_Nothing
+  propagate f (Curry.Module.Prelude.C_Just x1) st = Curry.Module.Prelude.C_Just(f((0::Int))(x1)(st))
+
+  foldCurry f c Curry.Module.Prelude.C_Nothing st = c
+  foldCurry f c (Curry.Module.Prelude.C_Just x1) st = f(x1)(c)(st)
+
+  typeName _ = "Maybe"
+
+  showQ _ Curry.Module.Prelude.C_Nothing = Prelude.showString("Prelude.Nothing")
+  showQ d (Curry.Module.Prelude.C_Just x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Prelude.Just "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ (Curry.Module.Prelude.C_MaybeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0,Curry t1) => Curry (Curry.Module.Prelude.C_Either t0 t1) where
+  strEq (Curry.Module.Prelude.C_Left x1) (Curry.Module.Prelude.C_Left y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Prelude.C_Right x1) (Curry.Module.Prelude.C_Right y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Prelude.C_Left x1) (Curry.Module.Prelude.C_Left y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Prelude.C_Right x1) (Curry.Module.Prelude.C_Right y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Prelude.C_Left x1) st = Curry.Module.Prelude.C_Left(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Prelude.C_Right x1) st = Curry.Module.Prelude.C_Right(f((0::Int))(x1)(st))
+
+  foldCurry f c (Curry.Module.Prelude.C_Left x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Prelude.C_Right x1) st = f(x1)(c)(st)
+
+  typeName _ = "Either"
+
+  showQ d (Curry.Module.Prelude.C_Left x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Prelude.Left "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Prelude.C_Right x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Prelude.Right "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ (Curry.Module.Prelude.C_EitherOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.Prelude.C_SearchTree t0) where
+  strEq Curry.Module.Prelude.C_Fail Curry.Module.Prelude.C_Fail st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.Prelude.C_Value x1) (Curry.Module.Prelude.C_Value y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Prelude.C_Choice x1) (Curry.Module.Prelude.C_Choice y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq Curry.Module.Prelude.C_Suspend Curry.Module.Prelude.C_Suspend st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.Prelude.C_Fail Curry.Module.Prelude.C_Fail st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.Prelude.C_Value x1) (Curry.Module.Prelude.C_Value y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Prelude.C_Choice x1) (Curry.Module.Prelude.C_Choice y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq Curry.Module.Prelude.C_Suspend Curry.Module.Prelude.C_Suspend st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.Prelude.C_Fail st = Curry.Module.Prelude.C_Fail
+  propagate f (Curry.Module.Prelude.C_Value x1) st = Curry.Module.Prelude.C_Value(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Prelude.C_Choice x1) st = Curry.Module.Prelude.C_Choice(f((0::Int))(x1)(st))
+  propagate f Curry.Module.Prelude.C_Suspend st = Curry.Module.Prelude.C_Suspend
+
+  foldCurry f c Curry.Module.Prelude.C_Fail st = c
+  foldCurry f c (Curry.Module.Prelude.C_Value x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Prelude.C_Choice x1) st = f(x1)(c)(st)
+  foldCurry f c Curry.Module.Prelude.C_Suspend st = c
+
+  typeName _ = "SearchTree"
+
+  showQ _ Curry.Module.Prelude.C_Fail = Prelude.showString("Prelude.Fail")
+  showQ d (Curry.Module.Prelude.C_Value x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Prelude.Value "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Prelude.C_Choice x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Prelude.Choice "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ Curry.Module.Prelude.C_Suspend = Prelude.showString("Prelude.Suspend")
+  showQ _ (Curry.Module.Prelude.C_SearchTreeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Prelude.T0 where
+  showsPrec _ Curry.Module.Prelude.T0 = Prelude.showString("()")
+  showsPrec _ (Curry.Module.Prelude.T0Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1) => Show (Curry.Module.Prelude.T2 t0 t1) where
+  showsPrec d (Curry.Module.Prelude.T2 x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T2Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2) => Show (Curry.Module.Prelude.T3 t0 t1 t2) where
+  showsPrec d (Curry.Module.Prelude.T3 x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T3Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3) => Show (Curry.Module.Prelude.T4 t0 t1 t2 t3) where
+  showsPrec d (Curry.Module.Prelude.T4 x1 x2 x3 x4) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T4Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4) => Show (Curry.Module.Prelude.T5 t0 t1 t2 t3 t4) where
+  showsPrec d (Curry.Module.Prelude.T5 x1 x2 x3 x4 x5) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T5Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5) => Show (Curry.Module.Prelude.T6 t0 t1 t2 t3 t4 t5) where
+  showsPrec d (Curry.Module.Prelude.T6 x1 x2 x3 x4 x5 x6) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T6Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6) => Show (Curry.Module.Prelude.T7 t0 t1 t2 t3 t4 t5 t6) where
+  showsPrec d (Curry.Module.Prelude.T7 x1 x2 x3 x4 x5 x6 x7) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T7Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6,Show t7) => Show (Curry.Module.Prelude.T8 t0 t1 t2 t3 t4 t5 t6 t7) where
+  showsPrec d (Curry.Module.Prelude.T8 x1 x2 x3 x4 x5 x6 x7 x8) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x8))))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T8Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6,Show t7,Show t8) => Show (Curry.Module.Prelude.T9 t0 t1 t2 t3 t4 t5 t6 t7 t8) where
+  showsPrec d (Curry.Module.Prelude.T9 x1 x2 x3 x4 x5 x6 x7 x8 x9) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x9))))))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T9Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6,Show t7,Show t8,Show t9) => Show (Curry.Module.Prelude.T10 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9) where
+  showsPrec d (Curry.Module.Prelude.T10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x10))))))))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T10Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6,Show t7,Show t8,Show t9,Show t10) => Show (Curry.Module.Prelude.T11 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10) where
+  showsPrec d (Curry.Module.Prelude.T11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x11))))))))))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T11Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6,Show t7,Show t8,Show t9,Show t10,Show t11) => Show (Curry.Module.Prelude.T12 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11) where
+  showsPrec d (Curry.Module.Prelude.T12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x11))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x12))))))))))))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T12Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6,Show t7,Show t8,Show t9,Show t10,Show t11,Show t12) => Show (Curry.Module.Prelude.T13 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12) where
+  showsPrec d (Curry.Module.Prelude.T13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x11))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x12))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x13))))))))))))))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T13Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6,Show t7,Show t8,Show t9,Show t10,Show t11,Show t12,Show t13) => Show (Curry.Module.Prelude.T14 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13) where
+  showsPrec d (Curry.Module.Prelude.T14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x11))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x12))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x13))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x14))))))))))))))))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T14Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1,Show t2,Show t3,Show t4,Show t5,Show t6,Show t7,Show t8,Show t9,Show t10,Show t11,Show t12,Show t13,Show t14) => Show (Curry.Module.Prelude.T15 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14) where
+  showsPrec d (Curry.Module.Prelude.T15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString([]))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x1))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x2))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x3))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x4))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x5))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x6))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x7))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x8))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x9))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x10))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x11))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x12))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x13))((Prelude..)(Prelude.showChar(','))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x14))((Prelude..)(Prelude.showChar(','))(Prelude.showsPrec(Curry.RunTimeSystem.zero)(x15))))))))))))))))))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Prelude.T15Or r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Prelude.C_Bool where
+  showsPrec _ Curry.Module.Prelude.C_False = Prelude.showString("False")
+  showsPrec _ Curry.Module.Prelude.C_True = Prelude.showString("True")
+  showsPrec _ (Curry.Module.Prelude.C_BoolOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Prelude.C_Ordering where
+  showsPrec _ Curry.Module.Prelude.C_LT = Prelude.showString("LT")
+  showsPrec _ Curry.Module.Prelude.C_EQ = Prelude.showString("EQ")
+  showsPrec _ Curry.Module.Prelude.C_GT = Prelude.showString("GT")
+  showsPrec _ (Curry.Module.Prelude.C_OrderingOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.Prelude.C_Maybe t0) where
+  showsPrec _ Curry.Module.Prelude.C_Nothing = Prelude.showString("Nothing")
+  showsPrec d (Curry.Module.Prelude.C_Just x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Just "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ (Curry.Module.Prelude.C_MaybeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0,Show t1) => Show (Curry.Module.Prelude.C_Either t0 t1) where
+  showsPrec d (Curry.Module.Prelude.C_Left x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Left "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Prelude.C_Right x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Right "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ (Curry.Module.Prelude.C_EitherOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.Prelude.C_SearchTree t0) where
+  showsPrec _ Curry.Module.Prelude.C_Fail = Prelude.showString("Fail")
+  showsPrec d (Curry.Module.Prelude.C_Value x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Value "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Prelude.C_Choice x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Choice "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ Curry.Module.Prelude.C_Suspend = Prelude.showString("Suspend")
+  showsPrec _ (Curry.Module.Prelude.C_SearchTreeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.Prelude.T0 where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) () s) = (,)(Curry.Module.Prelude.T0)(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1) => Read (Curry.Module.Prelude.T2 t0 t1) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,) x1 x2) s) = (,)(Curry.Module.Prelude.T2(x1)(x2))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2) => Read (Curry.Module.Prelude.T3 t0 t1 t2) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,) x1 x2 x3) s) = (,)(Curry.Module.Prelude.T3(x1)(x2)(x3))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3) => Read (Curry.Module.Prelude.T4 t0 t1 t2 t3) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,) x1 x2 x3 x4) s) = (,)(Curry.Module.Prelude.T4(x1)(x2)(x3)(x4))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4) => Read (Curry.Module.Prelude.T5 t0 t1 t2 t3 t4) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,) x1 x2 x3 x4 x5) s) = (,)(Curry.Module.Prelude.T5(x1)(x2)(x3)(x4)(x5))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5) => Read (Curry.Module.Prelude.T6 t0 t1 t2 t3 t4 t5) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,) x1 x2 x3 x4 x5 x6) s) = (,)(Curry.Module.Prelude.T6(x1)(x2)(x3)(x4)(x5)(x6))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6) => Read (Curry.Module.Prelude.T7 t0 t1 t2 t3 t4 t5 t6) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,) x1 x2 x3 x4 x5 x6 x7) s) = (,)(Curry.Module.Prelude.T7(x1)(x2)(x3)(x4)(x5)(x6)(x7))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6,Read t7) => Read (Curry.Module.Prelude.T8 t0 t1 t2 t3 t4 t5 t6 t7) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,,) x1 x2 x3 x4 x5 x6 x7 x8) s) = (,)(Curry.Module.Prelude.T8(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6,Read t7,Read t8) => Read (Curry.Module.Prelude.T9 t0 t1 t2 t3 t4 t5 t6 t7 t8) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,,,) x1 x2 x3 x4 x5 x6 x7 x8 x9) s) = (,)(Curry.Module.Prelude.T9(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6,Read t7,Read t8,Read t9) => Read (Curry.Module.Prelude.T10 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,,,,) x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) s) = (,)(Curry.Module.Prelude.T10(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9)(x10))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6,Read t7,Read t8,Read t9,Read t10) => Read (Curry.Module.Prelude.T11 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,,,,,) x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11) s) = (,)(Curry.Module.Prelude.T11(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6,Read t7,Read t8,Read t9,Read t10,Read t11) => Read (Curry.Module.Prelude.T12 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,,,,,,) x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12) s) = (,)(Curry.Module.Prelude.T12(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11)(x12))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6,Read t7,Read t8,Read t9,Read t10,Read t11,Read t12) => Read (Curry.Module.Prelude.T13 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,,,,,,,) x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13) s) = (,)(Curry.Module.Prelude.T13(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11)(x12)(x13))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6,Read t7,Read t8,Read t9,Read t10,Read t11,Read t12,Read t13) => Read (Curry.Module.Prelude.T14 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,,,,,,,,) x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14) s) = (,)(Curry.Module.Prelude.T14(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11)(x12)(x13)(x14))(s)
+
+
+
+
+
+
+
+instance (Read t0,Read t1,Read t2,Read t3,Read t4,Read t5,Read t6,Read t7,Read t8,Read t9,Read t10,Read t11,Read t12,Read t13,Read t14) => Read (Curry.Module.Prelude.T15 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14) where
+  readsPrec d r = Prelude.map(readTup)(Prelude.readsPrec(d)(r))
+   where
+    readTup ((,) ((,,,,,,,,,,,,,,) x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15) s) = (,)(Curry.Module.Prelude.T15(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11)(x12)(x13)(x14)(x15))(s)
+
+
+
+
+
+
+
+instance Read Curry.Module.Prelude.C_Bool where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Prelude.C_False)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("False")(r)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Prelude.C_True)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("True")(r)])(r))
+
+
+
+
+
+instance Read Curry.Module.Prelude.C_Ordering where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Prelude.C_LT)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("LT")(r)])(r))((Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Prelude.C_EQ)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("EQ")(r)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Prelude.C_GT)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("GT")(r)])(r)))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.Prelude.C_Maybe t0) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Prelude.C_Nothing)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("Nothing")(r)])(r))(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Prelude.C_Just(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("Just")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))
+
+
+
+
+
+instance (Read t0,Read t1) => Read (Curry.Module.Prelude.C_Either t0 t1) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Prelude.C_Left(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("Left")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Prelude.C_Right(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("Right")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.Prelude.C_SearchTree t0) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Prelude.C_Fail)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("Fail")(r)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Prelude.C_Value(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("Value")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Prelude.C_Choice(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("Choice")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Prelude.C_Suspend)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Prelude")("Suspend")(r)])(r))))
+
+
+
+
+
+op_46 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> (Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t1)
+op_46 x1 x2 st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_'46'46_'35lambda2(x1)(x2))
+
+
+
+c_'46'46_'35lambda2 :: (Curry t9,Curry t11,Curry t7) => (Curry.Module.Prelude.Prim (t9 -> Curry.RunTimeSystem.State -> t11)) -> (Curry.Module.Prelude.Prim (t7 -> Curry.RunTimeSystem.State -> t9)) -> t7 -> Curry.RunTimeSystem.State -> t11
+c_'46'46_'35lambda2 x1 x2 x3 st = Curry.Module.Prelude.c_apply(x1)(Curry.Module.Prelude.c_apply(x2)(x3)(st))(st)
+
+
+
+c_id :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> t0
+c_id x1 st = x1
+
+
+
+c_const :: (Curry t0,Curry t1) => t0 -> t1 -> Curry.RunTimeSystem.State -> t0
+c_const x1 x2 st = x1
+
+
+
+c_curry :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 t0 t1) -> Curry.RunTimeSystem.State -> t2)) -> t0 -> t1 -> Curry.RunTimeSystem.State -> t2
+c_curry x1 x2 x3 st = Curry.Module.Prelude.c_apply(x1)(Curry.Module.Prelude.T2(x2)(x3))(st)
+
+
+
+c_uncurry :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t2))) -> (Curry.Module.Prelude.T2 t0 t1) -> Curry.RunTimeSystem.State -> t2
+c_uncurry x1 x2@(Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x4)(st)
+c_uncurry x1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_uncurry(x1)(x)(st))(i)(xs)(st)
+c_uncurry x1 x st = Curry.RunTimeSystem.patternFail("Prelude.uncurry")(x)
+
+
+
+c_flip :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t2))) -> t1 -> t0 -> Curry.RunTimeSystem.State -> t2
+c_flip x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x2)(st)
+
+
+
+c_until :: (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_until x1 x2 x3 st = Curry.Module.Prelude.c_until_case_59(x1)(x2)(x3)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+op_36 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> t0 -> Curry.RunTimeSystem.State -> t1
+op_36 x1 x2 st = Curry.Module.Prelude.c_apply(x1)(x2)(st)
+
+
+
+c_ensureSpine :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_ensureSpine st = Curry.Module.Prelude.pf(Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_ensureSpine'46ensureList'4621)))
+
+
+
+c_ensureSpine'46ensureList'4621 :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_ensureSpine'46ensureList'4621 x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_ensureSpine'46ensureList'4621 x1@((Curry.Module.Prelude.:<) x2 x3) st = (Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_ensureSpine(st))(x3)(st))
+c_ensureSpine'46ensureList'4621 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_ensureSpine'46ensureList'4621(x)(st))(i)(xs)(st)
+c_ensureSpine'46ensureList'4621 x st = Curry.RunTimeSystem.patternFail("Prelude.ensureSpine.ensureList.21")(x)
+
+
+
+c_seq :: (Curry t0,Curry t1) => t0 -> t1 -> Curry.RunTimeSystem.State -> t1
+c_seq x1 x2 st = Curry.Module.Prelude.op_36_33(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(x2)))(x1)(st)
+
+
+
+c_error :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t0
+c_error x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_prim_error))(x1)(st)
+
+
+
+op_38_38 :: Curry.Module.Prelude.C_Bool -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_38_38 x1@Curry.Module.Prelude.C_True x2 st = x2
+op_38_38 x1@Curry.Module.Prelude.C_False x2 st = Curry.Module.Prelude.C_False
+op_38_38 (Curry.Module.Prelude.C_BoolOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_38_38(x)(x2)(st))(i)(xs)(st)
+op_38_38 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.&&")(x)
+
+
+
+op_124_124 :: Curry.Module.Prelude.C_Bool -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_124_124 x1@Curry.Module.Prelude.C_True x2 st = Curry.Module.Prelude.C_True
+op_124_124 x1@Curry.Module.Prelude.C_False x2 st = x2
+op_124_124 (Curry.Module.Prelude.C_BoolOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_124_124(x)(x2)(st))(i)(xs)(st)
+op_124_124 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.||")(x)
+
+
+
+c_not :: Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_not x1@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_False
+c_not x1@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_True
+c_not (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_not(x)(st))(i)(xs)(st)
+c_not x st = Curry.RunTimeSystem.patternFail("Prelude.not")(x)
+
+
+
+c_otherwise :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_otherwise st = Curry.Module.Prelude.C_True
+
+
+
+c_if_then_else :: (Curry t0) => Curry.Module.Prelude.C_Bool -> t0 -> t0 -> Curry.RunTimeSystem.State -> t0
+c_if_then_else x1@Curry.Module.Prelude.C_True x2 x3 st = x2
+c_if_then_else x1@Curry.Module.Prelude.C_False x2 x3 st = x3
+c_if_then_else (Curry.Module.Prelude.C_BoolOr i xs) x2 x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_if_then_else(x)(x2)(x3)(st))(i)(xs)(st)
+c_if_then_else x x2 x3 st = Curry.RunTimeSystem.patternFail("Prelude.if_then_else")(x)
+
+
+
+c_isLT :: Curry.Module.Prelude.C_Ordering -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isLT x1@Curry.Module.Prelude.C_LT st = Curry.Module.Prelude.C_True
+c_isLT x1@Curry.Module.Prelude.C_GT st = Curry.Module.Prelude.C_False
+c_isLT x1@Curry.Module.Prelude.C_EQ st = Curry.Module.Prelude.C_False
+c_isLT (Curry.Module.Prelude.C_OrderingOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_isLT(x)(st))(i)(xs)(st)
+c_isLT x st = Curry.RunTimeSystem.patternFail("Prelude.isLT")(x)
+
+
+
+c_isGT :: Curry.Module.Prelude.C_Ordering -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isGT x1@Curry.Module.Prelude.C_LT st = Curry.Module.Prelude.C_False
+c_isGT x1@Curry.Module.Prelude.C_GT st = Curry.Module.Prelude.C_True
+c_isGT x1@Curry.Module.Prelude.C_EQ st = Curry.Module.Prelude.C_False
+c_isGT (Curry.Module.Prelude.C_OrderingOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_isGT(x)(st))(i)(xs)(st)
+c_isGT x st = Curry.RunTimeSystem.patternFail("Prelude.isGT")(x)
+
+
+
+c_isEQ :: Curry.Module.Prelude.C_Ordering -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isEQ x1@Curry.Module.Prelude.C_LT st = Curry.Module.Prelude.C_False
+c_isEQ x1@Curry.Module.Prelude.C_GT st = Curry.Module.Prelude.C_False
+c_isEQ x1@Curry.Module.Prelude.C_EQ st = Curry.Module.Prelude.C_True
+c_isEQ (Curry.Module.Prelude.C_OrderingOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_isEQ(x)(st))(i)(xs)(st)
+c_isEQ x st = Curry.RunTimeSystem.patternFail("Prelude.isEQ")(x)
+
+
+
+c_compare :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_compare x1@Curry.Module.Prelude.C_Zero x2 st = Curry.Module.Prelude.c_compare_case_58(x2)(st)
+c_compare x1@(Curry.Module.Prelude.C_Pos x5) x2 st = Curry.Module.Prelude.c_compare_case_57(x5)(x2)(st)
+c_compare x1@(Curry.Module.Prelude.C_Neg x8) x2 st = Curry.Module.Prelude.c_compare_case_56(x8)(x2)(st)
+c_compare (Curry.Module.Prelude.C_IntOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_compare(x)(x2)(st))(i)(xs)(st)
+c_compare x x2 st = Curry.RunTimeSystem.patternFail("Prelude.compare")(x)
+
+
+
+op_60 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_60 x1 x2 st = Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_compare(x1)(x2)(st))(Curry.Module.Prelude.C_LT)(st)
+
+
+
+op_62 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_62 x1 x2 st = Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_compare(x1)(x2)(st))(Curry.Module.Prelude.C_GT)(st)
+
+
+
+op_60_61 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_60_61 x1 x2 st = Curry.Module.Prelude.op_47_61(Curry.Module.Prelude.c_compare(x1)(x2)(st))(Curry.Module.Prelude.C_GT)(st)
+
+
+
+op_62_61 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_62_61 x1 x2 st = Curry.Module.Prelude.op_47_61(Curry.Module.Prelude.c_compare(x1)(x2)(st))(Curry.Module.Prelude.C_LT)(st)
+
+
+
+c_max :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_max x1 x2 st = Curry.Module.Prelude.c_max_case_55(x1)(x2)(Curry.Module.Prelude.c_compare(x1)(x2)(st))(st)
+
+
+
+c_min :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_min x1 x2 st = Curry.Module.Prelude.c_min_case_54(x1)(x2)(Curry.Module.Prelude.c_compare(x1)(x2)(st))(st)
+
+
+
+op_47_61 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_47_61 x1 x2 st = Curry.Module.Prelude.c_not(Curry.Module.Prelude.op_61_61(x1)(x2)(st))(st)
+
+
+
+c_fst :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T2 t0 t1) -> Curry.RunTimeSystem.State -> t0
+c_fst x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_fst (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_fst(x)(st))(i)(xs)(st)
+c_fst x st = Curry.RunTimeSystem.patternFail("Prelude.fst")(x)
+
+
+
+c_snd :: (Curry t0,Curry t1) => (Curry.Module.Prelude.T2 t0 t1) -> Curry.RunTimeSystem.State -> t1
+c_snd x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_snd (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_snd(x)(st))(i)(xs)(st)
+c_snd x st = Curry.RunTimeSystem.patternFail("Prelude.snd")(x)
+
+
+
+c_head :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0
+c_head x1@((Curry.Module.Prelude.:<) x2 x3) st = x2
+c_head (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_head(x)(st))(i)(xs)(st)
+c_head x st = Curry.RunTimeSystem.patternFail("Prelude.head")(x)
+
+
+
+c_tail :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_tail x1@((Curry.Module.Prelude.:<) x2 x3) st = x3
+c_tail (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_tail(x)(st))(i)(xs)(st)
+c_tail x st = Curry.RunTimeSystem.patternFail("Prelude.tail")(x)
+
+
+
+c_null :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_null x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_True
+c_null x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.C_False
+c_null (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_null(x)(st))(i)(xs)(st)
+c_null x st = Curry.RunTimeSystem.patternFail("Prelude.null")(x)
+
+
+
+op_43_43 :: (Curry t0) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+op_43_43 x1@Curry.Module.Prelude.List x2 st = x2
+op_43_43 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.op_43_43(x4)(x2)(st))
+op_43_43 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_43_43(x)(x2)(st))(i)(xs)(st)
+op_43_43 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.++")(x)
+
+
+
+c_length :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_length x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Zero
+c_length x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Prelude.c_length(x3)(st))(st)
+c_length (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_length(x)(st))(i)(xs)(st)
+c_length x st = Curry.RunTimeSystem.patternFail("Prelude.length")(x)
+
+
+
+op_33_33 :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> t0
+op_33_33 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.Prelude.c_'33'33_case_53(x2)(x3)(x4)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+op_33_33 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_33_33(x)(x2)(st))(i)(xs)(st)
+op_33_33 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.!!")(x)
+
+
+
+c_map :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1
+c_map x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_map x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(Curry.Module.Prelude.c_map(x1)(x4)(st))
+c_map x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_map(x1)(x)(st))(i)(xs)(st)
+c_map x1 x st = Curry.RunTimeSystem.patternFail("Prelude.map")(x)
+
+
+
+c_foldl :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t0))) -> t0 -> (Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0
+c_foldl x1 x2 x3@Curry.Module.Prelude.List st = x2
+c_foldl x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Prelude.c_foldl(x1)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(x4)(st))(x5)(st)
+c_foldl x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_foldl(x1)(x2)(x)(st))(i)(xs)(st)
+c_foldl x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.foldl")(x)
+
+
+
+c_foldl1 :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0
+c_foldl1 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_foldl(x1)(x3)(x4)(st)
+c_foldl1 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_foldl1(x1)(x)(st))(i)(xs)(st)
+c_foldl1 x1 x st = Curry.RunTimeSystem.patternFail("Prelude.foldl1")(x)
+
+
+
+c_foldr :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1))) -> t1 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t1
+c_foldr x1 x2 x3@Curry.Module.Prelude.List st = x2
+c_foldr x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(Curry.Module.Prelude.c_foldr(x1)(x2)(x5)(st))(st)
+c_foldr x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_foldr(x1)(x2)(x)(st))(i)(xs)(st)
+c_foldr x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.foldr")(x)
+
+
+
+c_foldr1 :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0
+c_foldr1 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_foldr1_case_51(x1)(x3)(x4)(st)
+c_foldr1 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_foldr1(x1)(x)(st))(i)(xs)(st)
+c_foldr1 x1 x st = Curry.RunTimeSystem.patternFail("Prelude.foldr1")(x)
+
+
+
+c_filter :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_filter x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_filter x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_filter_case_50(x1)(x3)(x4)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+c_filter x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_filter(x1)(x)(st))(i)(xs)(st)
+c_filter x1 x st = Curry.RunTimeSystem.patternFail("Prelude.filter")(x)
+
+
+
+c_zip :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)
+c_zip x1@Curry.Module.Prelude.List x2 st = Curry.Module.Prelude.List
+c_zip x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.Prelude.c_zip_case_49(x3)(x4)(x2)(st)
+c_zip (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zip(x)(x2)(st))(i)(xs)(st)
+c_zip x x2 st = Curry.RunTimeSystem.patternFail("Prelude.zip")(x)
+
+
+
+c_zip3 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t1) -> (Curry.Module.Prelude.List t2) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T3 t0 t1 t2)
+c_zip3 x1@Curry.Module.Prelude.List x2 x3 st = Curry.Module.Prelude.List
+c_zip3 x1@((Curry.Module.Prelude.:<) x4 x5) x2 x3 st = Curry.Module.Prelude.c_zip3_case_48(x3)(x4)(x5)(x2)(st)
+c_zip3 (Curry.Module.Prelude.ListOr i xs) x2 x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zip3(x)(x2)(x3)(st))(i)(xs)(st)
+c_zip3 x x2 x3 st = Curry.RunTimeSystem.patternFail("Prelude.zip3")(x)
+
+
+
+c_zipWith :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t2))) -> (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t2
+c_zipWith x1 x2@Curry.Module.Prelude.List x3 st = Curry.Module.Prelude.List
+c_zipWith x1 x2@((Curry.Module.Prelude.:<) x4 x5) x3 st = Curry.Module.Prelude.c_zipWith_case_46(x1)(x4)(x5)(x3)(st)
+c_zipWith x1 (Curry.Module.Prelude.ListOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zipWith(x1)(x)(x3)(st))(i)(xs)(st)
+c_zipWith x1 x x3 st = Curry.RunTimeSystem.patternFail("Prelude.zipWith")(x)
+
+
+
+c_zipWith3 :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t3)))) -> (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t1) -> (Curry.Module.Prelude.List t2) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t3
+c_zipWith3 x1 x2@Curry.Module.Prelude.List x3 x4 st = Curry.Module.Prelude.List
+c_zipWith3 x1 x2@((Curry.Module.Prelude.:<) x5 x6) x3 x4 st = Curry.Module.Prelude.c_zipWith3_case_45(x1)(x4)(x5)(x6)(x3)(st)
+c_zipWith3 x1 (Curry.Module.Prelude.ListOr i xs) x3 x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zipWith3(x1)(x)(x3)(x4)(st))(i)(xs)(st)
+c_zipWith3 x1 x x3 x4 st = Curry.RunTimeSystem.patternFail("Prelude.zipWith3")(x)
+
+
+
+c_unzip :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List t1)
+c_unzip x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_unzip x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.c_unzip_case_43(x3)(x2)(st)
+c_unzip (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip(x)(st))(i)(xs)(st)
+c_unzip x st = Curry.RunTimeSystem.patternFail("Prelude.unzip")(x)
+
+
+
+c_unzip'46_'35selFP3'35xs :: (Curry t476,Curry t477) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t476) (Curry.Module.Prelude.List t477)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t476
+c_unzip'46_'35selFP3'35xs x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_unzip'46_'35selFP3'35xs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip'46_'35selFP3'35xs(x)(st))(i)(xs)(st)
+c_unzip'46_'35selFP3'35xs x st = Curry.RunTimeSystem.patternFail("Prelude.unzip._#selFP3#xs")(x)
+
+
+
+c_unzip'46_'35selFP4'35ys :: (Curry t476,Curry t477) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t476) (Curry.Module.Prelude.List t477)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t477
+c_unzip'46_'35selFP4'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_unzip'46_'35selFP4'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip'46_'35selFP4'35ys(x)(st))(i)(xs)(st)
+c_unzip'46_'35selFP4'35ys x st = Curry.RunTimeSystem.patternFail("Prelude.unzip._#selFP4#ys")(x)
+
+
+
+c_unzip3 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.List (Curry.Module.Prelude.T3 t0 t1 t2)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.List t2)
+c_unzip3 x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.T3(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_unzip3 x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.c_unzip3_case_42(x3)(x2)(st)
+c_unzip3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip3(x)(st))(i)(xs)(st)
+c_unzip3 x st = Curry.RunTimeSystem.patternFail("Prelude.unzip3")(x)
+
+
+
+c_unzip3'46_'35selFP6'35xs :: (Curry t493,Curry t494,Curry t495) => (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List t493) (Curry.Module.Prelude.List t494) (Curry.Module.Prelude.List t495)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t493
+c_unzip3'46_'35selFP6'35xs x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x2
+c_unzip3'46_'35selFP6'35xs (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip3'46_'35selFP6'35xs(x)(st))(i)(xs)(st)
+c_unzip3'46_'35selFP6'35xs x st = Curry.RunTimeSystem.patternFail("Prelude.unzip3._#selFP6#xs")(x)
+
+
+
+c_unzip3'46_'35selFP7'35ys :: (Curry t493,Curry t494,Curry t495) => (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List t493) (Curry.Module.Prelude.List t494) (Curry.Module.Prelude.List t495)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t494
+c_unzip3'46_'35selFP7'35ys x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x3
+c_unzip3'46_'35selFP7'35ys (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip3'46_'35selFP7'35ys(x)(st))(i)(xs)(st)
+c_unzip3'46_'35selFP7'35ys x st = Curry.RunTimeSystem.patternFail("Prelude.unzip3._#selFP7#ys")(x)
+
+
+
+c_unzip3'46_'35selFP8'35zs :: (Curry t493,Curry t494,Curry t495) => (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List t493) (Curry.Module.Prelude.List t494) (Curry.Module.Prelude.List t495)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t495
+c_unzip3'46_'35selFP8'35zs x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x4
+c_unzip3'46_'35selFP8'35zs (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip3'46_'35selFP8'35zs(x)(st))(i)(xs)(st)
+c_unzip3'46_'35selFP8'35zs x st = Curry.RunTimeSystem.patternFail("Prelude.unzip3._#selFP8#zs")(x)
+
+
+
+c_concat :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_concat x1 st = Curry.Module.Prelude.c_foldr(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.List)(x1)(st)
+
+
+
+c_concatMap :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1)
+c_concatMap x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_concat))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(x1)))(st)
+
+
+
+c_iterate :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_iterate x1 x2 st = (Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.c_iterate(x1)(Curry.Module.Prelude.c_apply(x1)(x2)(st))(st))
+
+
+
+c_repeat :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_repeat x1 st = (Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.c_repeat(x1)(st))
+
+
+
+c_replicate :: (Curry t0) => Curry.Module.Prelude.C_Int -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_replicate x1 x2 st = Curry.Module.Prelude.c_take(x1)(Curry.Module.Prelude.c_repeat(x2)(st))(st)
+
+
+
+c_take :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_take x1@(Curry.Module.Prelude.C_Neg x3) x2 st = Curry.Module.Prelude.List
+c_take x1@Curry.Module.Prelude.C_Zero x2 st = Curry.Module.Prelude.List
+c_take x1@(Curry.Module.Prelude.C_Pos x4) x2 st = Curry.Module.Prelude.c_take_case_41(x4)(x2)(st)
+c_take (Curry.Module.Prelude.C_IntOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_take(x)(x2)(st))(i)(xs)(st)
+c_take x x2 st = Curry.RunTimeSystem.patternFail("Prelude.take")(x)
+
+
+
+c_drop :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_drop x1 x2 st = Curry.Module.Prelude.c_drop_case_40(x1)(x2)(Curry.Module.Prelude.op_60_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_drop'46dropp'46272 :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_drop'46dropp'46272 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_drop'46dropp'46272 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_drop(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x4)(st)
+c_drop'46dropp'46272 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_drop'46dropp'46272(x1)(x)(st))(i)(xs)(st)
+c_drop'46dropp'46272 x1 x st = Curry.RunTimeSystem.patternFail("Prelude.drop.dropp.272")(x)
+
+
+
+c_splitAt :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List t0)
+c_splitAt x1 x2 st = Curry.Module.Prelude.c_splitAt_case_39(x1)(x2)(Curry.Module.Prelude.op_60_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_splitAt'46splitAtp'46282 :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List t0)
+c_splitAt'46splitAtp'46282 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_splitAt'46splitAtp'46282 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = let {x5 = Curry.Module.Prelude.c_splitAt(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x4)(st)} in Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.c_splitAt'46splitAtp'46282'46_'35selFP10'35ys(x5)(st)))(Curry.Module.Prelude.c_splitAt'46splitAtp'46282'46_'35selFP11'35zs(x5)(st))
+c_splitAt'46splitAtp'46282 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_splitAt'46splitAtp'46282(x1)(x)(st))(i)(xs)(st)
+c_splitAt'46splitAtp'46282 x1 x st = Curry.RunTimeSystem.patternFail("Prelude.splitAt.splitAtp.282")(x)
+
+
+
+c_splitAt'46splitAtp'46282'46_'35selFP10'35ys :: (Curry t576) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t576) (Curry.Module.Prelude.List t576)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t576
+c_splitAt'46splitAtp'46282'46_'35selFP10'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_splitAt'46splitAtp'46282'46_'35selFP10'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_splitAt'46splitAtp'46282'46_'35selFP10'35ys(x)(st))(i)(xs)(st)
+c_splitAt'46splitAtp'46282'46_'35selFP10'35ys x st = Curry.RunTimeSystem.patternFail("Prelude.splitAt.splitAtp.282._#selFP10#ys")(x)
+
+
+
+c_splitAt'46splitAtp'46282'46_'35selFP11'35zs :: (Curry t576) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t576) (Curry.Module.Prelude.List t576)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t576
+c_splitAt'46splitAtp'46282'46_'35selFP11'35zs x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_splitAt'46splitAtp'46282'46_'35selFP11'35zs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_splitAt'46splitAtp'46282'46_'35selFP11'35zs(x)(st))(i)(xs)(st)
+c_splitAt'46splitAtp'46282'46_'35selFP11'35zs x st = Curry.RunTimeSystem.patternFail("Prelude.splitAt.splitAtp.282._#selFP11#zs")(x)
+
+
+
+c_takeWhile :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_takeWhile x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_takeWhile x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_takeWhile_case_38(x1)(x3)(x4)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+c_takeWhile x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_takeWhile(x1)(x)(st))(i)(xs)(st)
+c_takeWhile x1 x st = Curry.RunTimeSystem.patternFail("Prelude.takeWhile")(x)
+
+
+
+c_dropWhile :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_dropWhile x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_dropWhile x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_dropWhile_case_37(x1)(x3)(x4)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+c_dropWhile x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_dropWhile(x1)(x)(st))(i)(xs)(st)
+c_dropWhile x1 x st = Curry.RunTimeSystem.patternFail("Prelude.dropWhile")(x)
+
+
+
+c_span :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List t0)
+c_span x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_span x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_span_case_36(x1)(x3)(x4)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+c_span x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_span(x1)(x)(st))(i)(xs)(st)
+c_span x1 x st = Curry.RunTimeSystem.patternFail("Prelude.span")(x)
+
+
+
+c_span'46_'35selFP13'35ys :: (Curry t627) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t627) (Curry.Module.Prelude.List t627)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t627
+c_span'46_'35selFP13'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_span'46_'35selFP13'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_span'46_'35selFP13'35ys(x)(st))(i)(xs)(st)
+c_span'46_'35selFP13'35ys x st = Curry.RunTimeSystem.patternFail("Prelude.span._#selFP13#ys")(x)
+
+
+
+c_span'46_'35selFP14'35zs :: (Curry t627) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t627) (Curry.Module.Prelude.List t627)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t627
+c_span'46_'35selFP14'35zs x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_span'46_'35selFP14'35zs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_span'46_'35selFP14'35zs(x)(st))(i)(xs)(st)
+c_span'46_'35selFP14'35zs x st = Curry.RunTimeSystem.patternFail("Prelude.span._#selFP14#zs")(x)
+
+
+
+c_break :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List t0))
+c_break x1 st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_span(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(x1)(st)))
+
+
+
+c_lines :: (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_lines x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_lines x1@((Curry.Module.Prelude.:<) x2 x3) st = let {x4 = Curry.Module.Prelude.c_lines'46splitline'46314((Curry.Module.Prelude.:<)(x2)(x3))(st)} in (Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_lines'46_'35selFP19'35l(x4)(st))(Curry.Module.Prelude.c_lines(Curry.Module.Prelude.c_lines'46_'35selFP20'35xs_l(x4)(st))(st))
+c_lines (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lines(x)(st))(i)(xs)(st)
+c_lines x st = Curry.RunTimeSystem.patternFail("Prelude.lines")(x)
+
+
+
+c_lines'46splitline'46314 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_lines'46splitline'46314 x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_lines'46splitline'46314 x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.c_lines'46splitline'46314_case_35(x2)(x3)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Char('\n'))(st))(st)
+c_lines'46splitline'46314 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lines'46splitline'46314(x)(st))(i)(xs)(st)
+c_lines'46splitline'46314 x st = Curry.RunTimeSystem.patternFail("Prelude.lines.splitline.314")(x)
+
+
+
+c_lines'46splitline'46314'46_'35selFP16'35ds :: (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_lines'46splitline'46314'46_'35selFP16'35ds x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_lines'46splitline'46314'46_'35selFP16'35ds (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lines'46splitline'46314'46_'35selFP16'35ds(x)(st))(i)(xs)(st)
+c_lines'46splitline'46314'46_'35selFP16'35ds x st = Curry.RunTimeSystem.patternFail("Prelude.lines.splitline.314._#selFP16#ds")(x)
+
+
+
+c_lines'46splitline'46314'46_'35selFP17'35es :: (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_lines'46splitline'46314'46_'35selFP17'35es x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_lines'46splitline'46314'46_'35selFP17'35es (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lines'46splitline'46314'46_'35selFP17'35es(x)(st))(i)(xs)(st)
+c_lines'46splitline'46314'46_'35selFP17'35es x st = Curry.RunTimeSystem.patternFail("Prelude.lines.splitline.314._#selFP17#es")(x)
+
+
+
+c_lines'46_'35selFP19'35l :: (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_lines'46_'35selFP19'35l x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_lines'46_'35selFP19'35l (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lines'46_'35selFP19'35l(x)(st))(i)(xs)(st)
+c_lines'46_'35selFP19'35l x st = Curry.RunTimeSystem.patternFail("Prelude.lines._#selFP19#l")(x)
+
+
+
+c_lines'46_'35selFP20'35xs_l :: (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_lines'46_'35selFP20'35xs_l x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_lines'46_'35selFP20'35xs_l (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lines'46_'35selFP20'35xs_l(x)(st))(i)(xs)(st)
+c_lines'46_'35selFP20'35xs_l x st = Curry.RunTimeSystem.patternFail("Prelude.lines._#selFP20#xs_l")(x)
+
+
+
+c_unlines :: (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_unlines x1 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(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('\n'))(Curry.Module.Prelude.List))))(st))(x1)(st)
+
+
+
+c_words :: (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_words x1 st = let {x2 = Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_words'46isSpace'46326))(x1)(st)} in Curry.Module.Prelude.c_words_case_34(x2)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.List)(st))(st)
+
+
+
+c_words'46isSpace'46326 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_words'46isSpace'46326 x1 st = Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char(' '))(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char('\t'))(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char('\n'))(st))(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char('\r'))(st))(st))(st))(st)
+
+
+
+c_words'46_'35selFP22'35w :: (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_words'46_'35selFP22'35w x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_words'46_'35selFP22'35w (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_words'46_'35selFP22'35w(x)(st))(i)(xs)(st)
+c_words'46_'35selFP22'35w x st = Curry.RunTimeSystem.patternFail("Prelude.words._#selFP22#w")(x)
+
+
+
+c_words'46_'35selFP23'35s2 :: (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_words'46_'35selFP23'35s2 x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_words'46_'35selFP23'35s2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_words'46_'35selFP23'35s2(x)(st))(i)(xs)(st)
+c_words'46_'35selFP23'35s2 x st = Curry.RunTimeSystem.patternFail("Prelude.words._#selFP23#s2")(x)
+
+
+
+c_unwords :: (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_unwords x1 st = Curry.Module.Prelude.c_unwords_case_33(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.List)(st))(st)
+
+
+
+c_unwords'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.List Curry.Module.Prelude.C_Char
+c_unwords'46_'35lambda6 x1 x2 st = Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(x2))(st)
+
+
+
+c_reverse :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_reverse 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.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pc))((Curry.Module.Prelude.:<)))))(Curry.Module.Prelude.List))
+
+
+
+c_and :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_and 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.Prelude.op_38_38))(Curry.Module.Prelude.C_True))
+
+
+
+c_or :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_or 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.Prelude.op_124_124))(Curry.Module.Prelude.C_False))
+
+
+
+c_any :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_any x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.c_or(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(x1)))(st)
+
+
+
+c_all :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_all x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.c_and(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(x1)))(st)
+
+
+
+c_elem :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_elem x1 st = Curry.Module.Prelude.c_any(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_61_61(x1)))(st)
+
+
+
+c_notElem :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_notElem x1 st = Curry.Module.Prelude.c_all(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_47_61(x1)))(st)
+
+
+
+c_lookup :: (Curry t0,Curry t1) => t0 -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1
+c_lookup x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Nothing
+c_lookup x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_lookup_case_32(x1)(x4)(x3)(st)
+c_lookup x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lookup(x1)(x)(st))(i)(xs)(st)
+c_lookup x1 x st = Curry.RunTimeSystem.patternFail("Prelude.lookup")(x)
+
+
+
+c_enumFrom :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_enumFrom x1 st = (Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.c_enumFrom(Curry.Module.Prelude.op_43(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))
+
+
+
+c_enumFromThen :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_enumFromThen x1 x2 st = Curry.Module.Prelude.c_iterate(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(x2)(x1)(st))))(x1)(st)
+
+
+
+c_enumFromTo :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_enumFromTo x1 x2 st = Curry.Module.Prelude.c_enumFromTo_case_30(x1)(x2)(Curry.Module.Prelude.op_62(x1)(x2)(st))(st)
+
+
+
+c_enumFromThenTo :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_enumFromThenTo x1 x2 x3 st = Curry.Module.Prelude.c_takeWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_enumFromThenTo'46p'46364(x3)(x1)(x2)))(Curry.Module.Prelude.c_enumFromThen(x1)(x2)(st))(st)
+
+
+
+c_enumFromThenTo'46p'46364 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_enumFromThenTo'46p'46364 x1 x2 x3 x4 st = Curry.Module.Prelude.c_enumFromThenTo'46p'46364_case_29(x1)(x2)(x3)(x4)(Curry.Module.Prelude.op_62_61(x3)(x2)(st))(st)
+
+
+
+c_ord :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ord x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_prim_ord))(x1)(st)
+
+
+
+c_chr :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_chr x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_prim_chr))(x1)(st)
+
+
+
+c_succ :: Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Nat
+c_succ x1@(Curry.Module.Prelude.C_O x2) st = Curry.Module.Prelude.C_I(x2)
+c_succ x1@(Curry.Module.Prelude.C_I x3) st = Curry.Module.Prelude.C_O(Curry.Module.Prelude.c_succ(x3)(st))
+c_succ x1@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)
+c_succ (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_succ(x)(st))(i)(xs)(st)
+c_succ x st = Curry.RunTimeSystem.patternFail("Prelude.succ")(x)
+
+
+
+op_43_94 :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Nat
+op_43_94 x1@(Curry.Module.Prelude.C_O x3) x2 st = Curry.Module.Prelude.c_'43'94_case_28(x3)(x2)(st)
+op_43_94 x1@(Curry.Module.Prelude.C_I x6) x2 st = Curry.Module.Prelude.c_'43'94_case_27(x6)(x2)(st)
+op_43_94 x1@Curry.Module.Prelude.C_IHi x2 st = Curry.Module.Prelude.c_succ(x2)(st)
+op_43_94 (Curry.Module.Prelude.C_NatOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_43_94(x)(x2)(st))(i)(xs)(st)
+op_43_94 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.+^")(x)
+
+
+
+c_cmpNat :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_cmpNat x1@Curry.Module.Prelude.C_IHi x2 st = Curry.Module.Prelude.c_cmpNat_case_26(x2)(st)
+c_cmpNat x1@(Curry.Module.Prelude.C_O x5) x2 st = Curry.Module.Prelude.c_cmpNat_case_25(x5)(x2)(st)
+c_cmpNat x1@(Curry.Module.Prelude.C_I x8) x2 st = Curry.Module.Prelude.c_cmpNat_case_24(x8)(x2)(st)
+c_cmpNat (Curry.Module.Prelude.C_NatOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNat(x)(x2)(st))(i)(xs)(st)
+c_cmpNat x x2 st = Curry.RunTimeSystem.patternFail("Prelude.cmpNat")(x)
+
+
+
+c_cmpNatLT :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_cmpNatLT x1@Curry.Module.Prelude.C_IHi x2 st = Curry.Module.Prelude.C_LT
+c_cmpNatLT x1@(Curry.Module.Prelude.C_O x3) x2 st = Curry.Module.Prelude.c_cmpNatLT_case_23(x3)(x2)(st)
+c_cmpNatLT x1@(Curry.Module.Prelude.C_I x6) x2 st = Curry.Module.Prelude.c_cmpNatLT_case_22(x6)(x2)(st)
+c_cmpNatLT (Curry.Module.Prelude.C_NatOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNatLT(x)(x2)(st))(i)(xs)(st)
+c_cmpNatLT x x2 st = Curry.RunTimeSystem.patternFail("Prelude.cmpNatLT")(x)
+
+
+
+c_cmpNatGT :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_cmpNatGT x1 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_GT
+c_cmpNatGT x1 x2@(Curry.Module.Prelude.C_O x3) st = Curry.Module.Prelude.c_cmpNatGT_case_21(x3)(x1)(st)
+c_cmpNatGT x1 x2@(Curry.Module.Prelude.C_I x6) st = Curry.Module.Prelude.c_cmpNatGT_case_20(x6)(x1)(st)
+c_cmpNatGT x1 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNatGT(x1)(x)(st))(i)(xs)(st)
+c_cmpNatGT x1 x st = Curry.RunTimeSystem.patternFail("Prelude.cmpNatGT")(x)
+
+
+
+op_60_94 :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_60_94 x1 x2 st = Curry.Module.Prelude.c_isLT(Curry.Module.Prelude.c_cmpNat(x1)(x2)(st))(st)
+
+
+
+op_62_94 :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_62_94 x1 x2 st = Curry.Module.Prelude.c_isGT(Curry.Module.Prelude.c_cmpNat(x1)(x2)(st))(st)
+
+
+
+op_60_61_94 :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_60_61_94 x1 x2 st = Curry.Module.Prelude.c_not(Curry.Module.Prelude.c_isGT(Curry.Module.Prelude.c_cmpNat(x1)(x2)(st))(st))(st)
+
+
+
+op_62_61_94 :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_62_61_94 x1 x2 st = Curry.Module.Prelude.c_not(Curry.Module.Prelude.c_isLT(Curry.Module.Prelude.c_cmpNat(x1)(x2)(st))(st))(st)
+
+
+
+op_42_94 :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Nat
+op_42_94 x1@Curry.Module.Prelude.C_IHi x2 st = x2
+op_42_94 x1@(Curry.Module.Prelude.C_I x3) x2 st = Curry.Module.Prelude.op_43_94(Curry.Module.Prelude.C_O(Curry.Module.Prelude.op_42_94(x2)(x3)(st)))(x2)(st)
+op_42_94 x1@(Curry.Module.Prelude.C_O x4) x2 st = Curry.Module.Prelude.C_O(Curry.Module.Prelude.op_42_94(x4)(x2)(st))
+op_42_94 (Curry.Module.Prelude.C_NatOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_42_94(x)(x2)(st))(i)(xs)(st)
+op_42_94 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.*^")(x)
+
+
+
+c_pred :: Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Nat
+c_pred x1@(Curry.Module.Prelude.C_O x2) st = Curry.Module.Prelude.c_pred_case_19(x2)(st)
+c_pred x1@(Curry.Module.Prelude.C_I x5) st = Curry.Module.Prelude.C_O(x5)
+c_pred (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_pred(x)(st))(i)(xs)(st)
+c_pred x st = Curry.RunTimeSystem.patternFail("Prelude.pred")(x)
+
+
+
+c_inc :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_inc x1@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_inc x1@(Curry.Module.Prelude.C_Pos x2) st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.c_succ(x2)(st))
+c_inc x1@(Curry.Module.Prelude.C_Neg x3) st = Curry.Module.Prelude.c_inc_case_18(x3)(st)
+c_inc (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_inc(x)(st))(i)(xs)(st)
+c_inc x st = Curry.RunTimeSystem.patternFail("Prelude.inc")(x)
+
+
+
+c_dec :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_dec x1@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_Neg(Curry.Module.Prelude.C_IHi)
+c_dec x1@(Curry.Module.Prelude.C_Neg x2) st = Curry.Module.Prelude.C_Neg(Curry.Module.Prelude.c_succ(x2)(st))
+c_dec x1@(Curry.Module.Prelude.C_Pos x3) st = Curry.Module.Prelude.c_dec_case_17(x3)(st)
+c_dec (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_dec(x)(st))(i)(xs)(st)
+c_dec x st = Curry.RunTimeSystem.patternFail("Prelude.dec")(x)
+
+
+
+c_mult2 :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_mult2 x1@(Curry.Module.Prelude.C_Pos x2) st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(x2))
+c_mult2 x1@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_Zero
+c_mult2 x1@(Curry.Module.Prelude.C_Neg x3) st = Curry.Module.Prelude.C_Neg(Curry.Module.Prelude.C_O(x3))
+c_mult2 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_mult2(x)(st))(i)(xs)(st)
+c_mult2 x st = Curry.RunTimeSystem.patternFail("Prelude.mult2")(x)
+
+
+
+op_45_94 :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+op_45_94 x1@Curry.Module.Prelude.C_IHi x2 st = Curry.Module.Prelude.c_inc(Curry.Module.Prelude.C_Neg(x2))(st)
+op_45_94 x1@(Curry.Module.Prelude.C_O x3) x2 st = Curry.Module.Prelude.c_'45'94_case_16(x3)(x2)(st)
+op_45_94 x1@(Curry.Module.Prelude.C_I x6) x2 st = Curry.Module.Prelude.c_'45'94_case_15(x6)(x2)(st)
+op_45_94 (Curry.Module.Prelude.C_NatOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_45_94(x)(x2)(st))(i)(xs)(st)
+op_45_94 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.-^")(x)
+
+
+
+c_div2 :: Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Nat
+c_div2 x1@(Curry.Module.Prelude.C_O x2) st = x2
+c_div2 x1@(Curry.Module.Prelude.C_I x3) st = x3
+c_div2 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_div2(x)(st))(i)(xs)(st)
+c_div2 x st = Curry.RunTimeSystem.patternFail("Prelude.div2")(x)
+
+
+
+c_mod2 :: Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_mod2 x1@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_mod2 x1@(Curry.Module.Prelude.C_O x2) st = Curry.Module.Prelude.C_Zero
+c_mod2 x1@(Curry.Module.Prelude.C_I x3) st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_mod2 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_mod2(x)(st))(i)(xs)(st)
+c_mod2 x st = Curry.RunTimeSystem.patternFail("Prelude.mod2")(x)
+
+
+
+c_divmodNat :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int
+c_divmodNat x1 x2 st = Curry.Module.Prelude.c_divmodNat_case_14(x1)(x2)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_IHi)(st))(st)
+
+
+
+c_divmodNat'46shift'46523 :: Curry.Module.Prelude.C_Nat -> Curry.Module.Prelude.C_Nat -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Nat
+c_divmodNat'46shift'46523 x1@(Curry.Module.Prelude.C_O x3) x2 st = Curry.Module.Prelude.C_O(x2)
+c_divmodNat'46shift'46523 x1@(Curry.Module.Prelude.C_I x4) x2 st = Curry.Module.Prelude.C_I(x2)
+c_divmodNat'46shift'46523 (Curry.Module.Prelude.C_NatOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmodNat'46shift'46523(x)(x2)(st))(i)(xs)(st)
+c_divmodNat'46shift'46523 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.divmodNat.shift.523")(x)
+
+
+
+op_43 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+op_43 x1@(Curry.Module.Prelude.C_Pos x3) x2 st = Curry.Module.Prelude.c_'43_case_7(x1)(x3)(x2)(st)
+op_43 x1@(Curry.Module.Prelude.C_Neg x6) x2 st = Curry.Module.Prelude.c_'43_case_6(x1)(x6)(x2)(st)
+op_43 x1@Curry.Module.Prelude.C_Zero x2 st = x2
+op_43 (Curry.Module.Prelude.C_IntOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_43(x)(x2)(st))(i)(xs)(st)
+op_43 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.+")(x)
+
+
+
+op_45 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+op_45 x1 x2@(Curry.Module.Prelude.C_Neg x3) st = Curry.Module.Prelude.op_43(x1)(Curry.Module.Prelude.C_Pos(x3))(st)
+op_45 x1 x2@(Curry.Module.Prelude.C_Pos x4) st = Curry.Module.Prelude.op_43(x1)(Curry.Module.Prelude.C_Neg(x4))(st)
+op_45 x1 x2@Curry.Module.Prelude.C_Zero st = x1
+op_45 x1 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_45(x1)(x)(st))(i)(xs)(st)
+op_45 x1 x st = Curry.RunTimeSystem.patternFail("Prelude.-")(x)
+
+
+
+op_42 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+op_42 x1@(Curry.Module.Prelude.C_Pos x3) x2 st = Curry.Module.Prelude.c_'42_case_5(x3)(x2)(st)
+op_42 x1@(Curry.Module.Prelude.C_Neg x6) x2 st = Curry.Module.Prelude.c_'42_case_4(x6)(x2)(st)
+op_42 x1@Curry.Module.Prelude.C_Zero x2 st = Curry.Module.Prelude.C_Zero
+op_42 (Curry.Module.Prelude.C_IntOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.op_42(x)(x2)(st))(i)(xs)(st)
+op_42 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.*")(x)
+
+
+
+c_divmod :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int
+c_divmod x1@Curry.Module.Prelude.C_Zero x2 st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.C_Zero)
+c_divmod x1@(Curry.Module.Prelude.C_Pos x3) x2 st = Curry.Module.Prelude.c_divmod_case_3(x3)(x2)(st)
+c_divmod x1@(Curry.Module.Prelude.C_Neg x9) x2 st = Curry.Module.Prelude.c_divmod_case_2(x9)(x2)(st)
+c_divmod (Curry.Module.Prelude.C_IntOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod(x)(x2)(st))(i)(xs)(st)
+c_divmod x x2 st = Curry.RunTimeSystem.patternFail("Prelude.divmod")(x)
+
+
+
+c_divmod'46_'35selFP25'35d :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_divmod'46_'35selFP25'35d x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_divmod'46_'35selFP25'35d (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod'46_'35selFP25'35d(x)(st))(i)(xs)(st)
+c_divmod'46_'35selFP25'35d x st = Curry.RunTimeSystem.patternFail("Prelude.divmod._#selFP25#d")(x)
+
+
+
+c_divmod'46_'35selFP26'35m :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_divmod'46_'35selFP26'35m x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_divmod'46_'35selFP26'35m (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod'46_'35selFP26'35m(x)(st))(i)(xs)(st)
+c_divmod'46_'35selFP26'35m x st = Curry.RunTimeSystem.patternFail("Prelude.divmod._#selFP26#m")(x)
+
+
+
+c_divmod'46_'35selFP28'35d :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_divmod'46_'35selFP28'35d x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_divmod'46_'35selFP28'35d (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod'46_'35selFP28'35d(x)(st))(i)(xs)(st)
+c_divmod'46_'35selFP28'35d x st = Curry.RunTimeSystem.patternFail("Prelude.divmod._#selFP28#d")(x)
+
+
+
+c_divmod'46_'35selFP29'35m :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_divmod'46_'35selFP29'35m x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_divmod'46_'35selFP29'35m (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod'46_'35selFP29'35m(x)(st))(i)(xs)(st)
+c_divmod'46_'35selFP29'35m x st = Curry.RunTimeSystem.patternFail("Prelude.divmod._#selFP29#m")(x)
+
+
+
+c_divmod'46_'35selFP31'35d :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_divmod'46_'35selFP31'35d x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_divmod'46_'35selFP31'35d (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod'46_'35selFP31'35d(x)(st))(i)(xs)(st)
+c_divmod'46_'35selFP31'35d x st = Curry.RunTimeSystem.patternFail("Prelude.divmod._#selFP31#d")(x)
+
+
+
+c_divmod'46_'35selFP32'35m :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_divmod'46_'35selFP32'35m x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_divmod'46_'35selFP32'35m (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod'46_'35selFP32'35m(x)(st))(i)(xs)(st)
+c_divmod'46_'35selFP32'35m x st = Curry.RunTimeSystem.patternFail("Prelude.divmod._#selFP32#m")(x)
+
+
+
+c_div :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_div x1 x2 st = Curry.Module.Prelude.c_fst(Curry.Module.Prelude.c_divmod(x1)(x2)(st))(st)
+
+
+
+c_mod :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_mod x1 x2 st = Curry.Module.Prelude.c_snd(Curry.Module.Prelude.c_divmod(x1)(x2)(st))(st)
+
+
+
+c_negate :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_negate x1@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_Zero
+c_negate x1@(Curry.Module.Prelude.C_Pos x2) st = Curry.Module.Prelude.C_Neg(x2)
+c_negate x1@(Curry.Module.Prelude.C_Neg x3) st = Curry.Module.Prelude.C_Pos(x3)
+c_negate (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_negate(x)(st))(i)(xs)(st)
+c_negate x st = Curry.RunTimeSystem.patternFail("Prelude.negate")(x)
+
+
+
+c_success :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success
+c_success st = Curry.Module.Prelude.C_Success
+
+
+
+op_61_58_61 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success
+op_61_58_61 x1 x2 st = Curry.Module.Prelude.c_'61'58'61_case_1(x1)(x2)(Curry.Module.Prelude.op_61_61_61(x1)(x2)(st))(st)
+
+
+
+op_38_62 :: (Curry t0) => Curry.Module.Prelude.C_Success -> t0 -> Curry.RunTimeSystem.State -> t0
+op_38_62 x1 x2 st = Curry.Module.Prelude.c_cond(x1)(x2)(st)
+
+
+
+c_maybe :: (Curry t0,Curry t1) => t0 -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t0)) -> (Curry.Module.Prelude.C_Maybe t1) -> Curry.RunTimeSystem.State -> t0
+c_maybe x1 x2 x3@Curry.Module.Prelude.C_Nothing st = x1
+c_maybe x1 x2 x3@(Curry.Module.Prelude.C_Just x4) st = Curry.Module.Prelude.c_apply(x2)(x4)(st)
+c_maybe x1 x2 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_maybe(x1)(x2)(x)(st))(i)(xs)(st)
+c_maybe x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.maybe")(x)
+
+
+
+c_either :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> (Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t1)) -> (Curry.Module.Prelude.C_Either t0 t2) -> Curry.RunTimeSystem.State -> t1
+c_either x1 x2 x3@(Curry.Module.Prelude.C_Left x4) st = Curry.Module.Prelude.c_apply(x1)(x4)(st)
+c_either x1 x2 x3@(Curry.Module.Prelude.C_Right x5) st = Curry.Module.Prelude.c_apply(x2)(x5)(st)
+c_either x1 x2 (Curry.Module.Prelude.C_EitherOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_either(x1)(x2)(x)(st))(i)(xs)(st)
+c_either x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.either")(x)
+
+
+
+op_62_62 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.C_IO t0) -> (Curry.Module.Prelude.C_IO t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1
+op_62_62 x1 x2 st = Curry.Module.Prelude.op_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(x2)))(st)
+
+
+
+c_done :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_done st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T0)(st)
+
+
+
+c_putChar :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_putChar x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_prim_putChar))(x1)(st)
+
+
+
+c_readFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_readFile x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_prim_readFile))(x1)(st)
+
+
+
+c_writeFile :: (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_writeFile x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_prim_writeFile))(x1)(st))(x2)(st)
+
+
+
+c_appendFile :: (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_appendFile x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_prim_appendFile))(x1)(st))(x2)(st)
+
+
+
+c_putStr :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_putStr x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_done(st)
+c_putStr x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putChar(x2)(st))(Curry.Module.Prelude.c_putStr(x3)(st))(st)
+c_putStr (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_putStr(x)(st))(i)(xs)(st)
+c_putStr x st = Curry.RunTimeSystem.patternFail("Prelude.putStr")(x)
+
+
+
+c_putStrLn :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_putStrLn x1 st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStr(x1)(st))(Curry.Module.Prelude.c_putChar(Curry.Module.Prelude.C_Char('\n'))(st))(st)
+
+
+
+c_getLine :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getLine st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_getChar(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_getLine'46_'35lambda10))(st)
+
+
+
+c_getLine'46_'35lambda10 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getLine'46_'35lambda10 x1 st = Curry.Module.Prelude.c_getLine'46_'35lambda10_case_0(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char('\n'))(st))(st)
+
+
+
+c_getLine'46_'35lambda10'46_'35lambda11 :: 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.List Curry.Module.Prelude.C_Char)
+c_getLine'46_'35lambda10'46_'35lambda11 x1 x2 st = Curry.Module.Prelude.c_return((Curry.Module.Prelude.:<)(x1)(x2))(st)
+
+
+
+c_show :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_show x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_prim_show))(x1)(st)
+
+
+
+c_print :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_print x1 st = Curry.Module.Prelude.c_putStrLn(Curry.Module.Prelude.c_show(x1)(st))(st)
+
+
+
+c_doSolve :: Curry.Module.Prelude.C_Success -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_doSolve x1 st = Curry.Module.Prelude.c_cond(x1)(Curry.Module.Prelude.c_done(st))(st)
+
+
+
+c_sequenceIO :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.C_IO t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List t0)
+c_sequenceIO x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.List)(st)
+c_sequenceIO x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.op_62_62_61(x2)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_sequenceIO'46_'35lambda12(x3)))(st)
+c_sequenceIO (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_sequenceIO(x)(st))(i)(xs)(st)
+c_sequenceIO x st = Curry.RunTimeSystem.patternFail("Prelude.sequenceIO")(x)
+
+
+
+c_sequenceIO'46_'35lambda12 :: (Curry t937) => (Curry.Module.Prelude.List (Curry.Module.Prelude.C_IO t937)) -> t937 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List t937)
+c_sequenceIO'46_'35lambda12 x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_sequenceIO(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_sequenceIO'46_'35lambda12'46_'35lambda13(x2)))(st)
+
+
+
+c_sequenceIO'46_'35lambda12'46_'35lambda13 :: (Curry t937) => t937 -> (Curry.Module.Prelude.List t937) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List t937)
+c_sequenceIO'46_'35lambda12'46_'35lambda13 x1 x2 st = Curry.Module.Prelude.c_return((Curry.Module.Prelude.:<)(x1)(x2))(st)
+
+
+
+c_sequenceIO_ :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.C_IO t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_sequenceIO_ 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.Prelude.op_62_62))(Curry.Module.Prelude.c_done(st)))
+
+
+
+c_mapIO :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List t1))
+c_mapIO x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_sequenceIO))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(x1)))(st)
+
+
+
+c_mapIO_ :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0)
+c_mapIO_ x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.c_sequenceIO_(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(x1)))(st)
+
+
+
+op_63 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> t0
+op_63 x1 x2 st = Curry.RunTimeSystem.orF(x1)(x2)
+
+
+
+c_allValuesD :: (Curry t0) => (Curry.Module.Prelude.C_SearchTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_allValuesD x1@(Curry.Module.Prelude.C_Value x2) st = (Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)
+c_allValuesD x1@Curry.Module.Prelude.C_Fail st = Curry.Module.Prelude.List
+c_allValuesD x1@Curry.Module.Prelude.C_Suspend st = Curry.Module.Prelude.List
+c_allValuesD x1@(Curry.Module.Prelude.C_Choice x3) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_allValuesD))(st))(x3)(st)
+c_allValuesD (Curry.Module.Prelude.C_SearchTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesD(x)(st))(i)(xs)(st)
+c_allValuesD x st = Curry.RunTimeSystem.patternFail("Prelude.allValuesD")(x)
+
+
+
+c_allValuesB :: (Curry t0) => (Curry.Module.Prelude.C_SearchTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_allValuesB x1 st = Curry.Module.Prelude.c_allValuesB'46unfoldOrs'46692((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))(st)
+
+
+
+c_allValuesB'46partition'46692 :: (Curry t0) => (Curry.Module.Prelude.C_SearchTree t0) -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0))
+c_allValuesB'46partition'46692 x1@(Curry.Module.Prelude.C_Value x3) x2 st = Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.c_allValuesB'46partition'46692'46_'35selFP34'35vs(x2)(st)))(Curry.Module.Prelude.c_allValuesB'46partition'46692'46_'35selFP35'35ors(x2)(st))
+c_allValuesB'46partition'46692 x1@(Curry.Module.Prelude.C_Choice x7) x2 st = Curry.Module.Prelude.T2(Curry.Module.Prelude.c_allValuesB'46partition'46692'46_'35selFP37'35vs(x2)(st))(Curry.Module.Prelude.op_43_43(x7)(Curry.Module.Prelude.c_allValuesB'46partition'46692'46_'35selFP38'35ors(x2)(st))(st))
+c_allValuesB'46partition'46692 x1@Curry.Module.Prelude.C_Fail x2 st = x2
+c_allValuesB'46partition'46692 x1@Curry.Module.Prelude.C_Suspend x2 st = x2
+c_allValuesB'46partition'46692 (Curry.Module.Prelude.C_SearchTreeOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesB'46partition'46692(x)(x2)(st))(i)(xs)(st)
+c_allValuesB'46partition'46692 x x2 st = Curry.RunTimeSystem.patternFail("Prelude.allValuesB.partition.692")(x)
+
+
+
+c_allValuesB'46partition'46692'46_'35selFP34'35vs :: (Curry t1001) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1001) (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1001))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1001
+c_allValuesB'46partition'46692'46_'35selFP34'35vs x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_allValuesB'46partition'46692'46_'35selFP34'35vs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesB'46partition'46692'46_'35selFP34'35vs(x)(st))(i)(xs)(st)
+c_allValuesB'46partition'46692'46_'35selFP34'35vs x st = Curry.RunTimeSystem.patternFail("Prelude.allValuesB.partition.692._#selFP34#vs")(x)
+
+
+
+c_allValuesB'46partition'46692'46_'35selFP35'35ors :: (Curry t1001) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1001) (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1001))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1001)
+c_allValuesB'46partition'46692'46_'35selFP35'35ors x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_allValuesB'46partition'46692'46_'35selFP35'35ors (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesB'46partition'46692'46_'35selFP35'35ors(x)(st))(i)(xs)(st)
+c_allValuesB'46partition'46692'46_'35selFP35'35ors x st = Curry.RunTimeSystem.patternFail("Prelude.allValuesB.partition.692._#selFP35#ors")(x)
+
+
+
+c_allValuesB'46partition'46692'46_'35selFP37'35vs :: (Curry t1001) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1001) (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1001))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1001
+c_allValuesB'46partition'46692'46_'35selFP37'35vs x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_allValuesB'46partition'46692'46_'35selFP37'35vs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesB'46partition'46692'46_'35selFP37'35vs(x)(st))(i)(xs)(st)
+c_allValuesB'46partition'46692'46_'35selFP37'35vs x st = Curry.RunTimeSystem.patternFail("Prelude.allValuesB.partition.692._#selFP37#vs")(x)
+
+
+
+c_allValuesB'46partition'46692'46_'35selFP38'35ors :: (Curry t1001) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1001) (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1001))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1001)
+c_allValuesB'46partition'46692'46_'35selFP38'35ors x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_allValuesB'46partition'46692'46_'35selFP38'35ors (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesB'46partition'46692'46_'35selFP38'35ors(x)(st))(i)(xs)(st)
+c_allValuesB'46partition'46692'46_'35selFP38'35ors x st = Curry.RunTimeSystem.patternFail("Prelude.allValuesB.partition.692._#selFP38#ors")(x)
+
+
+
+c_allValuesB'46unfoldOrs'46692 :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_allValuesB'46unfoldOrs'46692 x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_allValuesB'46unfoldOrs'46692 x1@((Curry.Module.Prelude.:<) x2 x3) st = let {x4 = 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_allValuesB'46partition'46692))(Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.List))((Curry.Module.Prelude.:<)(x2)(x3))(st)} in Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_allValuesB'46unfoldOrs'46692'46_'35selFP40'35vals(x4)(st))(Curry.Module.Prelude.c_allValuesB'46unfoldOrs'46692(Curry.Module.Prelude.c_allValuesB'46unfoldOrs'46692'46_'35selFP41'35ors(x4)(st))(st))(st)
+c_allValuesB'46unfoldOrs'46692 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesB'46unfoldOrs'46692(x)(st))(i)(xs)(st)
+c_allValuesB'46unfoldOrs'46692 x st = Curry.RunTimeSystem.patternFail("Prelude.allValuesB.unfoldOrs.692")(x)
+
+
+
+c_allValuesB'46unfoldOrs'46692'46_'35selFP40'35vals :: (Curry t1014) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1014) (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1014))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1014
+c_allValuesB'46unfoldOrs'46692'46_'35selFP40'35vals x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_allValuesB'46unfoldOrs'46692'46_'35selFP40'35vals (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesB'46unfoldOrs'46692'46_'35selFP40'35vals(x)(st))(i)(xs)(st)
+c_allValuesB'46unfoldOrs'46692'46_'35selFP40'35vals x st = Curry.RunTimeSystem.patternFail("Prelude.allValuesB.unfoldOrs.692._#selFP40#vals")(x)
+
+
+
+c_allValuesB'46unfoldOrs'46692'46_'35selFP41'35ors :: (Curry t1014) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1014) (Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1014))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.C_SearchTree t1014)
+c_allValuesB'46unfoldOrs'46692'46_'35selFP41'35ors x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_allValuesB'46unfoldOrs'46692'46_'35selFP41'35ors (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_allValuesB'46unfoldOrs'46692'46_'35selFP41'35ors(x)(st))(i)(xs)(st)
+c_allValuesB'46unfoldOrs'46692'46_'35selFP41'35ors x st = Curry.RunTimeSystem.patternFail("Prelude.allValuesB.unfoldOrs.692._#selFP41#ors")(x)
+
+
+
+c_inject :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success)) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success)
+c_inject x1 x2 st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_inject'46_'35lambda14(x1)(x2))
+
+
+
+c_inject'46_'35lambda14 :: (Curry t1025) => (Curry.Module.Prelude.Prim (t1025 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success)) -> (Curry.Module.Prelude.Prim (t1025 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success)) -> t1025 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success
+c_inject'46_'35lambda14 x1 x2 x3 st = Curry.Module.Prelude.op_38(Curry.Module.Prelude.c_apply(x2)(x3)(st))(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+c_PEVAL :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> t0
+c_PEVAL x1 st = x1
+
+
+
+c_unknown :: (Curry t0) => Curry.RunTimeSystem.State -> t0
+c_unknown st = Curry.RunTimeSystem.freeF(\ x1 -> x1)
+
+
+
+c_getLine'46_'35lambda10_case_0 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.List)(st)
+c_getLine'46_'35lambda10_case_0 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_getLine(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_getLine'46_'35lambda10'46_'35lambda11(x1)))(st)
+c_getLine'46_'35lambda10_case_0 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_getLine'46_'35lambda10_case_0(x1)(x)(st))(i)(xs)(st)
+c_getLine'46_'35lambda10_case_0 x1 x st = Curry.RunTimeSystem.patternFail("Prelude.getLine._#lambda10_case_0")(x)
+
+
+
+c_'61'58'61_case_1 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Success
+c_'61'58'61_case_1 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'61'58'61_case_1(x1)(x2)(x)(st))(i)(xs)(st)
+c_'61'58'61_case_1 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.=:=_case_1")(x)
+
+
+
+c_divmod_case_2 x9 x2@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.c_error((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('v'))((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('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('b'))((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('0'))(Curry.Module.Prelude.List))))))))))))))(st)
+c_divmod_case_2 x9 x2@(Curry.Module.Prelude.C_Pos x10) st = let {x11 = Curry.Module.Prelude.c_divmodNat(x9)(x10)(st)} in Curry.Module.Prelude.T2(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.c_divmod'46_'35selFP28'35d(x11)(st))(st))(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.c_divmod'46_'35selFP29'35m(x11)(st))(st))
+c_divmod_case_2 x9 x2@(Curry.Module.Prelude.C_Neg x14) st = let {x15 = Curry.Module.Prelude.c_divmodNat(x9)(x14)(st)} in Curry.Module.Prelude.T2(Curry.Module.Prelude.c_divmod'46_'35selFP31'35d(x15)(st))(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.c_divmod'46_'35selFP32'35m(x15)(st))(st))
+c_divmod_case_2 x9 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod_case_2(x9)(x)(st))(i)(xs)(st)
+c_divmod_case_2 x9 x st = Curry.RunTimeSystem.patternFail("Prelude.divmod_case_2")(x)
+
+
+
+c_divmod_case_3 x3 x2@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.c_error((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('v'))((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('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('b'))((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('0'))(Curry.Module.Prelude.List))))))))))))))(st)
+c_divmod_case_3 x3 x2@(Curry.Module.Prelude.C_Pos x4) st = Curry.Module.Prelude.c_divmodNat(x3)(x4)(st)
+c_divmod_case_3 x3 x2@(Curry.Module.Prelude.C_Neg x5) st = let {x6 = Curry.Module.Prelude.c_divmodNat(x3)(x5)(st)} in Curry.Module.Prelude.T2(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.c_divmod'46_'35selFP25'35d(x6)(st))(st))(Curry.Module.Prelude.c_divmod'46_'35selFP26'35m(x6)(st))
+c_divmod_case_3 x3 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmod_case_3(x3)(x)(st))(i)(xs)(st)
+c_divmod_case_3 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.divmod_case_3")(x)
+
+
+
+c_'42_case_4 x6 x2@(Curry.Module.Prelude.C_Neg x7) st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.op_42_94(x6)(x7)(st))
+c_'42_case_4 x6 x2@(Curry.Module.Prelude.C_Pos x8) st = Curry.Module.Prelude.C_Neg(Curry.Module.Prelude.op_42_94(x6)(x8)(st))
+c_'42_case_4 x6 x2@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_Zero
+c_'42_case_4 x6 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'42_case_4(x6)(x)(st))(i)(xs)(st)
+c_'42_case_4 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.*_case_4")(x)
+
+
+
+c_'42_case_5 x3 x2@(Curry.Module.Prelude.C_Pos x4) st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.op_42_94(x3)(x4)(st))
+c_'42_case_5 x3 x2@(Curry.Module.Prelude.C_Neg x5) st = Curry.Module.Prelude.C_Neg(Curry.Module.Prelude.op_42_94(x3)(x5)(st))
+c_'42_case_5 x3 x2@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_Zero
+c_'42_case_5 x3 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'42_case_5(x3)(x)(st))(i)(xs)(st)
+c_'42_case_5 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.*_case_5")(x)
+
+
+
+c_'43_case_6 x1 x6 x2@(Curry.Module.Prelude.C_Neg x7) st = Curry.Module.Prelude.C_Neg(Curry.Module.Prelude.op_43_94(x6)(x7)(st))
+c_'43_case_6 x1 x6 x2@(Curry.Module.Prelude.C_Pos x8) st = Curry.Module.Prelude.op_45_94(x8)(x6)(st)
+c_'43_case_6 x1 x6 x2@Curry.Module.Prelude.C_Zero st = x1
+c_'43_case_6 x1 x6 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'43_case_6(x1)(x6)(x)(st))(i)(xs)(st)
+c_'43_case_6 x1 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.+_case_6")(x)
+
+
+
+c_'43_case_7 x1 x3 x2@(Curry.Module.Prelude.C_Pos x4) st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.op_43_94(x3)(x4)(st))
+c_'43_case_7 x1 x3 x2@(Curry.Module.Prelude.C_Neg x5) st = Curry.Module.Prelude.op_45_94(x3)(x5)(st)
+c_'43_case_7 x1 x3 x2@Curry.Module.Prelude.C_Zero st = x1
+c_'43_case_7 x1 x3 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'43_case_7(x1)(x3)(x)(st))(i)(xs)(st)
+c_'43_case_7 x1 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.+_case_7")(x)
+
+
+
+c_divmodNat_case_14 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Pos(x1))(Curry.Module.Prelude.C_Zero)
+c_divmodNat_case_14 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_divmodNat_case_13(x1)(x2)(Curry.Module.Prelude.c_cmpNat(x1)(x2)(st))(st)
+c_divmodNat_case_14 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmodNat_case_14(x1)(x2)(x)(st))(i)(xs)(st)
+c_divmodNat_case_14 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.divmodNat_case_14")(x)
+
+
+
+c_divmodNat_case_13 x1 x2 x3@Curry.Module.Prelude.C_EQ st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Prelude.C_Zero)
+c_divmodNat_case_13 x1 x2 x3@Curry.Module.Prelude.C_LT st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.C_Pos(x1))
+c_divmodNat_case_13 x1 x2 x3@Curry.Module.Prelude.C_GT st = Curry.Module.Prelude.c_divmodNat_case_12(x1)(x2)(Curry.Module.Prelude.c_divmodNat(Curry.Module.Prelude.c_div2(x1)(st))(x2)(st))(st)
+c_divmodNat_case_13 x1 x2 (Curry.Module.Prelude.C_OrderingOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmodNat_case_13(x1)(x2)(x)(st))(i)(xs)(st)
+c_divmodNat_case_13 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.divmodNat_case_13")(x)
+
+
+
+c_divmodNat_case_12 x1 x2 (Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Prelude.c_divmodNat_case_11(x1)(x2)(x4)(x3)(st)
+c_divmodNat_case_12 x1 x2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmodNat_case_12(x1)(x2)(x)(st))(i)(xs)(st)
+c_divmodNat_case_12 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.divmodNat_case_12")(x)
+
+
+
+c_divmodNat_case_11 x1 x2 x4 x3@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Prelude.op_45_94(x1)(x2)(st))
+c_divmodNat_case_11 x1 x2 x4 x3@(Curry.Module.Prelude.C_Pos x5) st = Curry.Module.Prelude.c_divmodNat_case_10(x1)(x2)(x5)(x4)(st)
+c_divmodNat_case_11 x1 x2 x4 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmodNat_case_11(x1)(x2)(x4)(x)(st))(i)(xs)(st)
+c_divmodNat_case_11 x1 x2 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.divmodNat_case_11")(x)
+
+
+
+c_divmodNat_case_10 x1 x2 x5 x4@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(x5)))(Curry.Module.Prelude.c_mod2(x1)(st))
+c_divmodNat_case_10 x1 x2 x5 x4@(Curry.Module.Prelude.C_Pos x6) st = Curry.Module.Prelude.c_divmodNat_case_9(x1)(x2)(x5)(x6)(Curry.Module.Prelude.c_divmodNat(Curry.Module.Prelude.c_divmodNat'46shift'46523(x1)(x6)(st))(x2)(st))(st)
+c_divmodNat_case_10 x1 x2 x5 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmodNat_case_10(x1)(x2)(x5)(x)(st))(i)(xs)(st)
+c_divmodNat_case_10 x1 x2 x5 x st = Curry.RunTimeSystem.patternFail("Prelude.divmodNat_case_10")(x)
+
+
+
+c_divmodNat_case_9 x1 x2 x5 x6 (Curry.Module.Prelude.T2 x7 x8) st = Curry.Module.Prelude.c_divmodNat_case_8(x5)(x8)(x7)(st)
+c_divmodNat_case_9 x1 x2 x5 x6 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmodNat_case_9(x1)(x2)(x5)(x6)(x)(st))(i)(xs)(st)
+c_divmodNat_case_9 x1 x2 x5 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.divmodNat_case_9")(x)
+
+
+
+c_divmodNat_case_8 x5 x8 x7@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(x5)))(x8)
+c_divmodNat_case_8 x5 x8 x7@(Curry.Module.Prelude.C_Pos x9) st = Curry.Module.Prelude.T2(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.op_43_94(Curry.Module.Prelude.C_O(x5))(x9)(st)))(x8)
+c_divmodNat_case_8 x5 x8 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_divmodNat_case_8(x5)(x8)(x)(st))(i)(xs)(st)
+c_divmodNat_case_8 x5 x8 x st = Curry.RunTimeSystem.patternFail("Prelude.divmodNat_case_8")(x)
+
+
+
+c_'45'94_case_15 x6 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(x6))
+c_'45'94_case_15 x6 x2@(Curry.Module.Prelude.C_O x7) st = Curry.Module.Prelude.c_inc(Curry.Module.Prelude.c_mult2(Curry.Module.Prelude.op_45_94(x6)(x7)(st))(st))(st)
+c_'45'94_case_15 x6 x2@(Curry.Module.Prelude.C_I x8) st = Curry.Module.Prelude.c_mult2(Curry.Module.Prelude.op_45_94(x6)(x8)(st))(st)
+c_'45'94_case_15 x6 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'45'94_case_15(x6)(x)(st))(i)(xs)(st)
+c_'45'94_case_15 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.-^_case_15")(x)
+
+
+
+c_'45'94_case_16 x3 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.c_pred(Curry.Module.Prelude.C_O(x3))(st))
+c_'45'94_case_16 x3 x2@(Curry.Module.Prelude.C_O x4) st = Curry.Module.Prelude.c_mult2(Curry.Module.Prelude.op_45_94(x3)(x4)(st))(st)
+c_'45'94_case_16 x3 x2@(Curry.Module.Prelude.C_I x5) st = Curry.Module.Prelude.c_dec(Curry.Module.Prelude.c_mult2(Curry.Module.Prelude.op_45_94(x3)(x5)(st))(st))(st)
+c_'45'94_case_16 x3 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'45'94_case_16(x3)(x)(st))(i)(xs)(st)
+c_'45'94_case_16 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.-^_case_16")(x)
+
+
+
+c_dec_case_17 x3@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_Zero
+c_dec_case_17 x3@(Curry.Module.Prelude.C_O x4) st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.c_pred(Curry.Module.Prelude.C_O(x4))(st))
+c_dec_case_17 x3@(Curry.Module.Prelude.C_I x5) st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(x5))
+c_dec_case_17 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_dec_case_17(x)(st))(i)(xs)(st)
+c_dec_case_17 x st = Curry.RunTimeSystem.patternFail("Prelude.dec_case_17")(x)
+
+
+
+c_inc_case_18 x3@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_Zero
+c_inc_case_18 x3@(Curry.Module.Prelude.C_O x4) st = Curry.Module.Prelude.C_Neg(Curry.Module.Prelude.c_pred(Curry.Module.Prelude.C_O(x4))(st))
+c_inc_case_18 x3@(Curry.Module.Prelude.C_I x5) st = Curry.Module.Prelude.C_Neg(Curry.Module.Prelude.C_O(x5))
+c_inc_case_18 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_inc_case_18(x)(st))(i)(xs)(st)
+c_inc_case_18 x st = Curry.RunTimeSystem.patternFail("Prelude.inc_case_18")(x)
+
+
+
+c_pred_case_19 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_IHi
+c_pred_case_19 x2@(Curry.Module.Prelude.C_O x3) st = Curry.Module.Prelude.C_I(Curry.Module.Prelude.c_pred(x2)(st))
+c_pred_case_19 x2@(Curry.Module.Prelude.C_I x4) st = Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(x4))
+c_pred_case_19 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_pred_case_19(x)(st))(i)(xs)(st)
+c_pred_case_19 x st = Curry.RunTimeSystem.patternFail("Prelude.pred_case_19")(x)
+
+
+
+c_cmpNatGT_case_20 x6 x1@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_LT
+c_cmpNatGT_case_20 x6 x1@(Curry.Module.Prelude.C_I x7) st = Curry.Module.Prelude.c_cmpNatGT(x7)(x6)(st)
+c_cmpNatGT_case_20 x6 x1@(Curry.Module.Prelude.C_O x8) st = Curry.Module.Prelude.c_cmpNatLT(x8)(x6)(st)
+c_cmpNatGT_case_20 x6 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNatGT_case_20(x6)(x)(st))(i)(xs)(st)
+c_cmpNatGT_case_20 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.cmpNatGT_case_20")(x)
+
+
+
+c_cmpNatGT_case_21 x3 x1@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_LT
+c_cmpNatGT_case_21 x3 x1@(Curry.Module.Prelude.C_O x4) st = Curry.Module.Prelude.c_cmpNatGT(x4)(x3)(st)
+c_cmpNatGT_case_21 x3 x1@(Curry.Module.Prelude.C_I x5) st = Curry.Module.Prelude.c_cmpNatGT(x5)(x3)(st)
+c_cmpNatGT_case_21 x3 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNatGT_case_21(x3)(x)(st))(i)(xs)(st)
+c_cmpNatGT_case_21 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.cmpNatGT_case_21")(x)
+
+
+
+c_cmpNatLT_case_22 x6 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_GT
+c_cmpNatLT_case_22 x6 x2@(Curry.Module.Prelude.C_I x7) st = Curry.Module.Prelude.c_cmpNatLT(x6)(x7)(st)
+c_cmpNatLT_case_22 x6 x2@(Curry.Module.Prelude.C_O x8) st = Curry.Module.Prelude.c_cmpNatGT(x6)(x8)(st)
+c_cmpNatLT_case_22 x6 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNatLT_case_22(x6)(x)(st))(i)(xs)(st)
+c_cmpNatLT_case_22 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.cmpNatLT_case_22")(x)
+
+
+
+c_cmpNatLT_case_23 x3 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_GT
+c_cmpNatLT_case_23 x3 x2@(Curry.Module.Prelude.C_O x4) st = Curry.Module.Prelude.c_cmpNatLT(x3)(x4)(st)
+c_cmpNatLT_case_23 x3 x2@(Curry.Module.Prelude.C_I x5) st = Curry.Module.Prelude.c_cmpNatLT(x3)(x5)(st)
+c_cmpNatLT_case_23 x3 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNatLT_case_23(x3)(x)(st))(i)(xs)(st)
+c_cmpNatLT_case_23 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.cmpNatLT_case_23")(x)
+
+
+
+c_cmpNat_case_24 x8 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_GT
+c_cmpNat_case_24 x8 x2@(Curry.Module.Prelude.C_I x9) st = Curry.Module.Prelude.c_cmpNat(x8)(x9)(st)
+c_cmpNat_case_24 x8 x2@(Curry.Module.Prelude.C_O x10) st = Curry.Module.Prelude.c_cmpNatGT(x8)(x10)(st)
+c_cmpNat_case_24 x8 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNat_case_24(x8)(x)(st))(i)(xs)(st)
+c_cmpNat_case_24 x8 x st = Curry.RunTimeSystem.patternFail("Prelude.cmpNat_case_24")(x)
+
+
+
+c_cmpNat_case_25 x5 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_GT
+c_cmpNat_case_25 x5 x2@(Curry.Module.Prelude.C_O x6) st = Curry.Module.Prelude.c_cmpNat(x5)(x6)(st)
+c_cmpNat_case_25 x5 x2@(Curry.Module.Prelude.C_I x7) st = Curry.Module.Prelude.c_cmpNatLT(x5)(x7)(st)
+c_cmpNat_case_25 x5 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNat_case_25(x5)(x)(st))(i)(xs)(st)
+c_cmpNat_case_25 x5 x st = Curry.RunTimeSystem.patternFail("Prelude.cmpNat_case_25")(x)
+
+
+
+c_cmpNat_case_26 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_EQ
+c_cmpNat_case_26 x2@(Curry.Module.Prelude.C_O x3) st = Curry.Module.Prelude.C_LT
+c_cmpNat_case_26 x2@(Curry.Module.Prelude.C_I x4) st = Curry.Module.Prelude.C_LT
+c_cmpNat_case_26 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_cmpNat_case_26(x)(st))(i)(xs)(st)
+c_cmpNat_case_26 x st = Curry.RunTimeSystem.patternFail("Prelude.cmpNat_case_26")(x)
+
+
+
+c_'43'94_case_27 x6 x2@(Curry.Module.Prelude.C_O x7) st = Curry.Module.Prelude.C_I(Curry.Module.Prelude.op_43_94(x6)(x7)(st))
+c_'43'94_case_27 x6 x2@(Curry.Module.Prelude.C_I x8) st = Curry.Module.Prelude.C_O(Curry.Module.Prelude.op_43_94(Curry.Module.Prelude.c_succ(x6)(st))(x8)(st))
+c_'43'94_case_27 x6 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_O(Curry.Module.Prelude.c_succ(x6)(st))
+c_'43'94_case_27 x6 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'43'94_case_27(x6)(x)(st))(i)(xs)(st)
+c_'43'94_case_27 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.+^_case_27")(x)
+
+
+
+c_'43'94_case_28 x3 x2@(Curry.Module.Prelude.C_O x4) st = Curry.Module.Prelude.C_O(Curry.Module.Prelude.op_43_94(x3)(x4)(st))
+c_'43'94_case_28 x3 x2@(Curry.Module.Prelude.C_I x5) st = Curry.Module.Prelude.C_I(Curry.Module.Prelude.op_43_94(x3)(x5)(st))
+c_'43'94_case_28 x3 x2@Curry.Module.Prelude.C_IHi st = Curry.Module.Prelude.C_I(x3)
+c_'43'94_case_28 x3 (Curry.Module.Prelude.C_NatOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'43'94_case_28(x3)(x)(st))(i)(xs)(st)
+c_'43'94_case_28 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.+^_case_28")(x)
+
+
+
+c_enumFromThenTo'46p'46364_case_29 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_60_61(x4)(x1)(st)
+c_enumFromThenTo'46p'46364_case_29 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_61(x4)(x1)(st)
+c_enumFromThenTo'46p'46364_case_29 x1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_enumFromThenTo'46p'46364_case_29(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_enumFromThenTo'46p'46364_case_29 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.enumFromThenTo.p.364_case_29")(x)
+
+
+
+c_enumFromTo_case_30 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.List
+c_enumFromTo_case_30 x1 x2 x3@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.c_enumFromTo(Curry.Module.Prelude.op_43(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x2)(st))
+c_enumFromTo_case_30 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_enumFromTo_case_30(x1)(x2)(x)(st))(i)(xs)(st)
+c_enumFromTo_case_30 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.enumFromTo_case_30")(x)
+
+
+
+c_lookup_case_32 x1 x4 x3@(Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.Prelude.c_lookup_case_31(x1)(x4)(x5)(x6)(Curry.Module.Prelude.op_61_61(x1)(x5)(st))(st)
+c_lookup_case_32 x1 x4 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lookup_case_32(x1)(x4)(x)(st))(i)(xs)(st)
+c_lookup_case_32 x1 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.lookup_case_32")(x)
+
+
+
+c_lookup_case_31 x1 x4 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Just(x6)
+c_lookup_case_31 x1 x4 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_lookup(x1)(x4)(st)
+c_lookup_case_31 x1 x4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lookup_case_31(x1)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_lookup_case_31 x1 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.lookup_case_31")(x)
+
+
+
+c_unwords_case_33 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.List
+c_unwords_case_33 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_foldr1(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_unwords'46_'35lambda6))(x1)(st)
+c_unwords_case_33 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unwords_case_33(x1)(x)(st))(i)(xs)(st)
+c_unwords_case_33 x1 x st = Curry.RunTimeSystem.patternFail("Prelude.unwords_case_33")(x)
+
+
+
+c_words_case_34 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.List
+c_words_case_34 x2 x3@Curry.Module.Prelude.C_False st = let {x3 = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_break(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_words'46isSpace'46326))(st))(x2)(st)} in (Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_words'46_'35selFP22'35w(x3)(st))(Curry.Module.Prelude.c_words(Curry.Module.Prelude.c_words'46_'35selFP23'35s2(x3)(st))(st))
+c_words_case_34 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_words_case_34(x2)(x)(st))(i)(xs)(st)
+c_words_case_34 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.words_case_34")(x)
+
+
+
+c_lines'46splitline'46314_case_35 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(x3)
+c_lines'46splitline'46314_case_35 x2 x3 x4@Curry.Module.Prelude.C_False st = let {x4 = Curry.Module.Prelude.c_lines'46splitline'46314(x3)(st)} in Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.c_lines'46splitline'46314'46_'35selFP16'35ds(x4)(st)))(Curry.Module.Prelude.c_lines'46splitline'46314'46_'35selFP17'35es(x4)(st))
+c_lines'46splitline'46314_case_35 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_lines'46splitline'46314_case_35(x2)(x3)(x)(st))(i)(xs)(st)
+c_lines'46splitline'46314_case_35 x2 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.lines.splitline.314_case_35")(x)
+
+
+
+c_span_case_36 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = let {x5 = Curry.Module.Prelude.c_span(x1)(x4)(st)} in Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.c_span'46_'35selFP13'35ys(x5)(st)))(Curry.Module.Prelude.c_span'46_'35selFP14'35zs(x5)(st))
+c_span_case_36 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)((Curry.Module.Prelude.:<)(x3)(x4))
+c_span_case_36 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_span_case_36(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_span_case_36 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.span_case_36")(x)
+
+
+
+c_dropWhile_case_37 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_dropWhile(x1)(x4)(st)
+c_dropWhile_case_37 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x3)(x4)
+c_dropWhile_case_37 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_dropWhile_case_37(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_dropWhile_case_37 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.dropWhile_case_37")(x)
+
+
+
+c_takeWhile_case_38 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.c_takeWhile(x1)(x4)(st))
+c_takeWhile_case_38 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.List
+c_takeWhile_case_38 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_takeWhile_case_38(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_takeWhile_case_38 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.takeWhile_case_38")(x)
+
+
+
+c_splitAt_case_39 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(x2)
+c_splitAt_case_39 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_splitAt'46splitAtp'46282(x1)(x2)(st)
+c_splitAt_case_39 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_splitAt_case_39(x1)(x2)(x)(st))(i)(xs)(st)
+c_splitAt_case_39 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.splitAt_case_39")(x)
+
+
+
+c_drop_case_40 x1 x2 x3@Curry.Module.Prelude.C_True st = x2
+c_drop_case_40 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_drop'46dropp'46272(x1)(x2)(st)
+c_drop_case_40 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_drop_case_40(x1)(x2)(x)(st))(i)(xs)(st)
+c_drop_case_40 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.drop_case_40")(x)
+
+
+
+c_take_case_41 x4 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_take_case_41 x4 x2@((Curry.Module.Prelude.:<) x5 x6) st = (Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.c_take(Curry.Module.Prelude.op_45(Curry.Module.Prelude.C_Pos(x4))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x6)(st))
+c_take_case_41 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_take_case_41(x4)(x)(st))(i)(xs)(st)
+c_take_case_41 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.take_case_41")(x)
+
+
+
+c_unzip3_case_42 x3 x2@(Curry.Module.Prelude.T3 x4 x5 x6) st = let {x7 = Curry.Module.Prelude.c_unzip3(x3)(st)} in Curry.Module.Prelude.T3((Curry.Module.Prelude.:<)(x4)(Curry.Module.Prelude.c_unzip3'46_'35selFP6'35xs(x7)(st)))((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.c_unzip3'46_'35selFP7'35ys(x7)(st)))((Curry.Module.Prelude.:<)(x6)(Curry.Module.Prelude.c_unzip3'46_'35selFP8'35zs(x7)(st)))
+c_unzip3_case_42 x3 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip3_case_42(x3)(x)(st))(i)(xs)(st)
+c_unzip3_case_42 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.unzip3_case_42")(x)
+
+
+
+c_unzip_case_43 x3 x2@(Curry.Module.Prelude.T2 x4 x5) st = let {x6 = Curry.Module.Prelude.c_unzip(x3)(st)} in Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x4)(Curry.Module.Prelude.c_unzip'46_'35selFP3'35xs(x6)(st)))((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.c_unzip'46_'35selFP4'35ys(x6)(st)))
+c_unzip_case_43 x3 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_unzip_case_43(x3)(x)(st))(i)(xs)(st)
+c_unzip_case_43 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.unzip_case_43")(x)
+
+
+
+c_zipWith3_case_45 x1 x4 x5 x6 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_zipWith3_case_45 x1 x4 x5 x6 x3@((Curry.Module.Prelude.:<) x7 x8) st = Curry.Module.Prelude.c_zipWith3_case_44(x1)(x5)(x6)(x7)(x8)(x4)(st)
+c_zipWith3_case_45 x1 x4 x5 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zipWith3_case_45(x1)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_zipWith3_case_45 x1 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Prelude.zipWith3_case_45")(x)
+
+
+
+c_zipWith3_case_44 x1 x5 x6 x7 x8 x4@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_zipWith3_case_44 x1 x5 x6 x7 x8 x4@((Curry.Module.Prelude.:<) x9 x10) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x5)(st))(x7)(st))(x9)(st))(Curry.Module.Prelude.c_zipWith3(x1)(x6)(x8)(x10)(st))
+c_zipWith3_case_44 x1 x5 x6 x7 x8 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zipWith3_case_44(x1)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_zipWith3_case_44 x1 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("Prelude.zipWith3_case_44")(x)
+
+
+
+c_zipWith_case_46 x1 x4 x5 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_zipWith_case_46 x1 x4 x5 x3@((Curry.Module.Prelude.:<) x6 x7) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(x6)(st))(Curry.Module.Prelude.c_zipWith(x1)(x5)(x7)(st))
+c_zipWith_case_46 x1 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zipWith_case_46(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_zipWith_case_46 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("Prelude.zipWith_case_46")(x)
+
+
+
+c_zip3_case_48 x3 x4 x5 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_zip3_case_48 x3 x4 x5 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Prelude.c_zip3_case_47(x4)(x5)(x6)(x7)(x3)(st)
+c_zip3_case_48 x3 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zip3_case_48(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_zip3_case_48 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("Prelude.zip3_case_48")(x)
+
+
+
+c_zip3_case_47 x4 x5 x6 x7 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_zip3_case_47 x4 x5 x6 x7 x3@((Curry.Module.Prelude.:<) x8 x9) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.T3(x4)(x6)(x8))(Curry.Module.Prelude.c_zip3(x5)(x7)(x9)(st))
+c_zip3_case_47 x4 x5 x6 x7 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zip3_case_47(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_zip3_case_47 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Prelude.zip3_case_47")(x)
+
+
+
+c_zip_case_49 x3 x4 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_zip_case_49 x3 x4 x2@((Curry.Module.Prelude.:<) x5 x6) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2(x3)(x5))(Curry.Module.Prelude.c_zip(x4)(x6)(st))
+c_zip_case_49 x3 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_zip_case_49(x3)(x4)(x)(st))(i)(xs)(st)
+c_zip_case_49 x3 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.zip_case_49")(x)
+
+
+
+c_filter_case_50 x1 x3 x4 x5@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.c_filter(x1)(x4)(st))
+c_filter_case_50 x1 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_filter(x1)(x4)(st)
+c_filter_case_50 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_filter_case_50(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_filter_case_50 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.filter_case_50")(x)
+
+
+
+c_foldr1_case_51 x1 x3 x4@Curry.Module.Prelude.List st = x3
+c_foldr1_case_51 x1 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(Curry.Module.Prelude.c_foldr1(x1)((Curry.Module.Prelude.:<)(x5)(x6))(st))(st)
+c_foldr1_case_51 x1 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_foldr1_case_51(x1)(x3)(x)(st))(i)(xs)(st)
+c_foldr1_case_51 x1 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.foldr1_case_51")(x)
+
+
+
+c_'33'33_case_53 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = x3
+c_'33'33_case_53 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_'33'33_case_52(x2)(x4)(Curry.Module.Prelude.op_62(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_'33'33_case_53 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'33'33_case_53(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_'33'33_case_53 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.!!_case_53")(x)
+
+
+
+c_'33'33_case_52 x2 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_33_33(x4)(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)
+c_'33'33_case_52 x2 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_'33'33_case_52(x2)(x4)(x)(st))(i)(xs)(st)
+c_'33'33_case_52 x2 x4 x st = Curry.RunTimeSystem.patternFail("Prelude.!!_case_52")(x)
+
+
+
+c_min_case_54 x1 x2 x3@Curry.Module.Prelude.C_GT st = x2
+c_min_case_54 x1 x2 x3@Curry.Module.Prelude.C_LT st = x1
+c_min_case_54 x1 x2 x3@Curry.Module.Prelude.C_EQ st = x1
+c_min_case_54 x1 x2 (Curry.Module.Prelude.C_OrderingOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_min_case_54(x1)(x2)(x)(st))(i)(xs)(st)
+c_min_case_54 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.min_case_54")(x)
+
+
+
+c_max_case_55 x1 x2 x3@Curry.Module.Prelude.C_LT st = x2
+c_max_case_55 x1 x2 x3@Curry.Module.Prelude.C_EQ st = x1
+c_max_case_55 x1 x2 x3@Curry.Module.Prelude.C_GT st = x1
+c_max_case_55 x1 x2 (Curry.Module.Prelude.C_OrderingOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_max_case_55(x1)(x2)(x)(st))(i)(xs)(st)
+c_max_case_55 x1 x2 x st = Curry.RunTimeSystem.patternFail("Prelude.max_case_55")(x)
+
+
+
+c_compare_case_56 x8 x2@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_LT
+c_compare_case_56 x8 x2@(Curry.Module.Prelude.C_Pos x9) st = Curry.Module.Prelude.C_LT
+c_compare_case_56 x8 x2@(Curry.Module.Prelude.C_Neg x10) st = Curry.Module.Prelude.c_cmpNat(x10)(x8)(st)
+c_compare_case_56 x8 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_compare_case_56(x8)(x)(st))(i)(xs)(st)
+c_compare_case_56 x8 x st = Curry.RunTimeSystem.patternFail("Prelude.compare_case_56")(x)
+
+
+
+c_compare_case_57 x5 x2@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_GT
+c_compare_case_57 x5 x2@(Curry.Module.Prelude.C_Pos x6) st = Curry.Module.Prelude.c_cmpNat(x5)(x6)(st)
+c_compare_case_57 x5 x2@(Curry.Module.Prelude.C_Neg x7) st = Curry.Module.Prelude.C_GT
+c_compare_case_57 x5 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_compare_case_57(x5)(x)(st))(i)(xs)(st)
+c_compare_case_57 x5 x st = Curry.RunTimeSystem.patternFail("Prelude.compare_case_57")(x)
+
+
+
+c_compare_case_58 x2@Curry.Module.Prelude.C_Zero st = Curry.Module.Prelude.C_EQ
+c_compare_case_58 x2@(Curry.Module.Prelude.C_Pos x3) st = Curry.Module.Prelude.C_LT
+c_compare_case_58 x2@(Curry.Module.Prelude.C_Neg x4) st = Curry.Module.Prelude.C_GT
+c_compare_case_58 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_compare_case_58(x)(st))(i)(xs)(st)
+c_compare_case_58 x st = Curry.RunTimeSystem.patternFail("Prelude.compare_case_58")(x)
+
+
+
+c_until_case_59 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x3
+c_until_case_59 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_until(x1)(x2)(Curry.Module.Prelude.c_apply(x2)(x3)(st))(st)
+c_until_case_59 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Prelude.c_until_case_59(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_until_case_59 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Prelude.until_case_59")(x)
+
+
+
+op_36_33 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> t0 -> Curry.RunTimeSystem.State -> t1
+op_36_33 x1 x2 st = (Curry.Module.Prelude.$!)(x1)(x2)(st)
+
+
+
+op_36_33_33 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> t0 -> Curry.RunTimeSystem.State -> t1
+op_36_33_33 x1 x2 st = (Curry.Module.Prelude.$!!)(x1)(x2)(st)
+
+
+
+op_36_35 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> t0 -> Curry.RunTimeSystem.State -> t1
+op_36_35 x1 x2 st = (Curry.Module.Prelude.$#)(x1)(x2)(st)
+
+
+
+op_36_35_35 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> t0 -> Curry.RunTimeSystem.State -> t1
+op_36_35_35 x1 x2 st = (Curry.Module.Prelude.$##)(x1)(x2)(st)
+
+
+
+c_prim_error :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t0
+c_prim_error x1 st = Curry.Module.Prelude.prim_error(x1)(st)
+
+
+
+c_failed :: (Curry t0) => Curry.RunTimeSystem.State -> t0
+c_failed st = Curry.Module.Prelude.failed(st)
+
+
+
+op_61_61 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_61_61 x1 x2 st = (Curry.Module.Prelude.==)(x1)(x2)(st)
+
+
+
+c_prim_ord :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_prim_ord x1 st = Curry.Module.Prelude.prim_ord(x1)(st)
+
+
+
+c_prim_chr :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_prim_chr x1 st = Curry.Module.Prelude.prim_chr(x1)(st)
+
+
+
+op_61_61_61 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+op_61_61_61 x1 x2 st = (Curry.Module.Prelude.===)(x1)(x2)(st)
+
+
+
+op_38 :: Curry.Module.Prelude.C_Success -> Curry.Module.Prelude.C_Success -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success
+op_38 x1 x2 st = (Curry.Module.Prelude.&)(x1)(x2)(st)
+
+
+
+op_62_62_61 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.C_IO t0) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1
+op_62_62_61 x1 x2 st = (Curry.Module.Prelude.>>=)(x1)(x2)(st)
+
+
+
+c_return :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_return x1 st = Curry.Module.Prelude.return(x1)(st)
+
+
+
+c_prim_putChar :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_putChar x1 st = Curry.Module.Prelude.prim_putChar(x1)(st)
+
+
+
+c_getChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Char
+c_getChar st = Curry.Module.Prelude.getChar(st)
+
+
+
+c_prim_readFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_prim_readFile x1 st = Curry.Module.Prelude.prim_readFile(x1)(st)
+
+
+
+c_prim_writeFile :: (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_prim_writeFile x1 x2 st = Curry.Module.Prelude.prim_writeFile(x1)(x2)(st)
+
+
+
+c_prim_appendFile :: (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_prim_appendFile x1 x2 st = Curry.Module.Prelude.prim_appendFile(x1)(x2)(st)
+
+
+
+c_catchFail :: (Curry t0) => (Curry.Module.Prelude.C_IO t0) -> (Curry.Module.Prelude.C_IO t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_catchFail x1 x2 st = Curry.Module.Prelude.catchFail(x1)(x2)(st)
+
+
+
+c_prim_show :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_prim_show x1 st = Curry.Module.Prelude.prim_show(x1)(st)
+
+
+
+c_getSearchTree :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_SearchTree t0)
+c_getSearchTree x1 st = Curry.Module.Prelude.getSearchTree(x1)(st)
+
+
+
+c_apply :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> t0 -> Curry.RunTimeSystem.State -> t1
+c_apply x1 x2 st = Curry.Module.Prelude.apply(x1)(x2)(st)
+
+
+
+c_cond :: (Curry t0) => Curry.Module.Prelude.C_Success -> t0 -> Curry.RunTimeSystem.State -> t0
+c_cond x1 x2 st = Curry.Module.Prelude.cond(x1)(x2)(st)
+
+
+
+op_61_58_60_61 :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Success
+op_61_58_60_61 x1 x2 st = (Curry.Module.Prelude.=:<=)(x1)(x2)(st)
+
+
diff --git a/dist/build/Curry/Module/Pretty.hs b/dist/build/Curry/Module/Pretty.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Pretty.hs
@@ -0,0 +1,963 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Pretty (module Curry.Module.Pretty) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Dequeue
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_Layout = Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_Horizontal = Curry.Module.Prelude.C_Bool
+
+type C_Remaining = Curry.Module.Prelude.C_Int
+
+type C_Width = Curry.Module.Prelude.C_Int
+
+type C_Position = Curry.Module.Prelude.C_Int
+
+type C_StartPosition = Curry.Module.Prelude.C_Int
+
+type C_EndPosition = Curry.Module.Prelude.C_Int
+
+type C_Out = Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_OutGroupPrefix = Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_Margins = Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+
+data C_Doc = C_Doc (Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Tokens -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Tokens))
+  | C_DocFail Curry.RunTimeSystem.C_Exceptions
+  | C_DocOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Pretty.C_Doc)
+
+data C_Tokens = C_Text (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Pretty.C_Tokens
+  | C_Line (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.Pretty.C_Tokens
+  | C_Open Curry.Module.Pretty.C_Tokens
+  | C_Close Curry.Module.Pretty.C_Tokens
+  | C_Empty
+  | C_OpenNest (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) Curry.Module.Pretty.C_Tokens
+  | C_CloseNest Curry.Module.Pretty.C_Tokens
+  | C_TokensFail Curry.RunTimeSystem.C_Exceptions
+  | C_TokensOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Pretty.C_Tokens)
+
+instance BaseCurry Curry.Module.Pretty.C_Doc where
+  nf f (Curry.Module.Pretty.C_Doc x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Pretty.C_Doc(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Pretty.C_Doc x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Pretty.C_Doc(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Pretty.C_DocOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Pretty.C_Doc(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(1)
+
+  failed  = Curry.Module.Pretty.C_DocFail
+
+  branching  = Curry.Module.Pretty.C_DocOr
+
+  consKind (Curry.Module.Pretty.C_DocOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Pretty.C_DocFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Pretty.C_DocFail x) = x
+
+  orRef (Curry.Module.Pretty.C_DocOr x _) = x
+
+  branches (Curry.Module.Pretty.C_DocOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.Pretty.C_Tokens where
+  nf f (Curry.Module.Pretty.C_Text x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Pretty.C_Text(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Pretty.C_Line x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Pretty.C_Line(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Pretty.C_Open x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Pretty.C_Open(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Pretty.C_Close x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Pretty.C_Close(v1))(state1))(x1)(state0)
+  nf f (Curry.Module.Pretty.C_OpenNest x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f(Curry.Module.Pretty.C_OpenNest(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f (Curry.Module.Pretty.C_CloseNest x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Pretty.C_CloseNest(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Pretty.C_Text x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Pretty.C_Text(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Pretty.C_Line x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Pretty.C_Line(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Pretty.C_Open x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Pretty.C_Open(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Pretty.C_Close x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Pretty.C_Close(v1))(state1))(x1)(state0)
+  gnf f (Curry.Module.Pretty.C_OpenNest x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f(Curry.Module.Pretty.C_OpenNest(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f (Curry.Module.Pretty.C_CloseNest x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Pretty.C_CloseNest(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Pretty.C_TokensOr(Curry.RunTimeSystem.mkRef(r)(2)(i))([Curry.Module.Pretty.C_Text(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Pretty.C_Line(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Pretty.C_Open(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Pretty.C_Close(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Pretty.C_Empty,Curry.Module.Pretty.C_OpenNest(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.Pretty.C_CloseNest(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(2)
+
+  failed  = Curry.Module.Pretty.C_TokensFail
+
+  branching  = Curry.Module.Pretty.C_TokensOr
+
+  consKind (Curry.Module.Pretty.C_TokensOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Pretty.C_TokensFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Pretty.C_TokensFail x) = x
+
+  orRef (Curry.Module.Pretty.C_TokensOr x _) = x
+
+  branches (Curry.Module.Pretty.C_TokensOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.Pretty.C_Doc where
+  strEq (Curry.Module.Pretty.C_Doc x1) (Curry.Module.Pretty.C_Doc y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Pretty.C_Doc x1) (Curry.Module.Pretty.C_Doc y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Pretty.C_Doc x1) st = Curry.Module.Pretty.C_Doc(f((0::Int))(x1)(st))
+
+  foldCurry f c (Curry.Module.Pretty.C_Doc x1) st = f(x1)(c)(st)
+
+  typeName _ = "Doc"
+
+  showQ d (Curry.Module.Pretty.C_Doc x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Pretty.Doc "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ (Curry.Module.Pretty.C_DocOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.Pretty.C_Tokens where
+  strEq (Curry.Module.Pretty.C_Text x1 x2) (Curry.Module.Pretty.C_Text y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq (Curry.Module.Pretty.C_Line x1 x2) (Curry.Module.Pretty.C_Line y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq (Curry.Module.Pretty.C_Open x1) (Curry.Module.Pretty.C_Open y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq (Curry.Module.Pretty.C_Close x1) (Curry.Module.Pretty.C_Close y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq Curry.Module.Pretty.C_Empty Curry.Module.Pretty.C_Empty st = Curry.Module.Prelude.strEqSuccess
+  strEq (Curry.Module.Pretty.C_OpenNest x1 x2) (Curry.Module.Pretty.C_OpenNest y1 y2) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(st)
+  strEq (Curry.Module.Pretty.C_CloseNest x1) (Curry.Module.Pretty.C_CloseNest y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Pretty.C_Text x1 x2) (Curry.Module.Pretty.C_Text y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq (Curry.Module.Pretty.C_Line x1 x2) (Curry.Module.Pretty.C_Line y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq (Curry.Module.Pretty.C_Open x1) (Curry.Module.Pretty.C_Open y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq (Curry.Module.Pretty.C_Close x1) (Curry.Module.Pretty.C_Close y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq Curry.Module.Pretty.C_Empty Curry.Module.Pretty.C_Empty st = Curry.Module.Prelude.C_True
+  eq (Curry.Module.Pretty.C_OpenNest x1 x2) (Curry.Module.Pretty.C_OpenNest y1 y2) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.genEq(x2)(y2)(st))(st)
+  eq (Curry.Module.Pretty.C_CloseNest x1) (Curry.Module.Pretty.C_CloseNest y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Pretty.C_Text x1 x2) st = Curry.Module.Pretty.C_Text(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+  propagate f (Curry.Module.Pretty.C_Line x1 x2) st = Curry.Module.Pretty.C_Line(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+  propagate f (Curry.Module.Pretty.C_Open x1) st = Curry.Module.Pretty.C_Open(f((0::Int))(x1)(st))
+  propagate f (Curry.Module.Pretty.C_Close x1) st = Curry.Module.Pretty.C_Close(f((0::Int))(x1)(st))
+  propagate f Curry.Module.Pretty.C_Empty st = Curry.Module.Pretty.C_Empty
+  propagate f (Curry.Module.Pretty.C_OpenNest x1 x2) st = Curry.Module.Pretty.C_OpenNest(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))
+  propagate f (Curry.Module.Pretty.C_CloseNest x1) st = Curry.Module.Pretty.C_CloseNest(f((0::Int))(x1)(st))
+
+  foldCurry f c (Curry.Module.Pretty.C_Text x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+  foldCurry f c (Curry.Module.Pretty.C_Line x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+  foldCurry f c (Curry.Module.Pretty.C_Open x1) st = f(x1)(c)(st)
+  foldCurry f c (Curry.Module.Pretty.C_Close x1) st = f(x1)(c)(st)
+  foldCurry f c Curry.Module.Pretty.C_Empty st = c
+  foldCurry f c (Curry.Module.Pretty.C_OpenNest x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+  foldCurry f c (Curry.Module.Pretty.C_CloseNest x1) st = f(x1)(c)(st)
+
+  typeName _ = "Tokens"
+
+  showQ d (Curry.Module.Pretty.C_Text x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Pretty.Text "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ d (Curry.Module.Pretty.C_Line x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Pretty.Line "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ d (Curry.Module.Pretty.C_Open x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Pretty.Open "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ d (Curry.Module.Pretty.C_Close x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Pretty.Close "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ Curry.Module.Pretty.C_Empty = Prelude.showString("Pretty.Empty")
+  showQ d (Curry.Module.Pretty.C_OpenNest x1 x2) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Pretty.OpenNest "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showQ d (Curry.Module.Pretty.C_CloseNest x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Pretty.CloseNest "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ (Curry.Module.Pretty.C_TokensOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Pretty.C_Doc where
+  showsPrec d (Curry.Module.Pretty.C_Doc x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Doc "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ (Curry.Module.Pretty.C_DocOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Pretty.C_Tokens where
+  showsPrec d (Curry.Module.Pretty.C_Text x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Text "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec d (Curry.Module.Pretty.C_Line x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Line "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec d (Curry.Module.Pretty.C_Open x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Open "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec d (Curry.Module.Pretty.C_Close x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Close "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ Curry.Module.Pretty.C_Empty = Prelude.showString("Empty")
+  showsPrec d (Curry.Module.Pretty.C_OpenNest x1 x2) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("OpenNest "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))))
+
+
+  showsPrec d (Curry.Module.Pretty.C_CloseNest x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("CloseNest "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ (Curry.Module.Pretty.C_TokensOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.Pretty.C_Doc where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Pretty.C_Doc(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Pretty")("Doc")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r)
+
+
+
+
+
+instance Read Curry.Module.Pretty.C_Tokens where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Pretty.C_Text(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Pretty")("Text")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Pretty.C_Line(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Pretty")("Line")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Pretty.C_Open(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Pretty")("Open")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Pretty.C_Close(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Pretty")("Close")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r))((Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.Pretty.C_Empty)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Pretty")("Empty")(r)])(r))((Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Pretty.C_OpenNest(x1)(x2))(r2) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Pretty")("OpenNest")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1)])(r))(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Pretty.C_CloseNest(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Pretty")("CloseNest")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r)))))))
+
+
+
+
+
+c_deDoc :: Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Tokens -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Tokens)
+c_deDoc x1@(Curry.Module.Pretty.C_Doc x2) st = x2
+c_deDoc (Curry.Module.Pretty.C_DocOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_deDoc(x)(st))(i)(xs)(st)
+c_deDoc x st = Curry.RunTimeSystem.patternFail("Pretty.deDoc")(x)
+
+
+
+c_empty :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_empty st = Curry.Module.Pretty.c_text(Curry.Module.Prelude.List)(st)
+
+
+
+c_text :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_text x1 st = Curry.Module.Pretty.C_Doc(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_Text(x1)))
+
+
+
+c_linesep :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_linesep st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_Doc))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pc))(Curry.Module.Pretty.C_Line))(st)
+
+
+
+c_line :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_line st = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_linesep(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))(st)
+
+
+
+c_linebreak :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_linebreak st = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_linesep(st))(Curry.Module.Prelude.List)(st)
+
+
+
+c_softline :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_softline st = Curry.Module.Pretty.c_group(Curry.Module.Pretty.c_line(st))(st)
+
+
+
+c_softbreak :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_softbreak st = Curry.Module.Pretty.c_group(Curry.Module.Pretty.c_linebreak(st))(st)
+
+
+
+c_group :: Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_group x1 st = Curry.Module.Pretty.C_Doc(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_Open))(Curry.Module.Prelude.op_46(Curry.Module.Pretty.c_deDoc(x1)(st))(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_Close))(st))(st))
+
+
+
+c_nest :: Curry.Module.Prelude.C_Int -> Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_nest x1 x2 st = Curry.Module.Pretty.C_Doc(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_OpenNest(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.Pretty.c_nest'46_'35lambda2(x1)))))(Curry.Module.Prelude.op_46(Curry.Module.Pretty.c_deDoc(x2)(st))(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_CloseNest))(st))(st))
+
+
+
+c_nest'46_'35lambda2 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_nest'46_'35lambda2 x1 x2@((Curry.Module.Prelude.:<) x5 x6) x3 x4 st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.op_43(x5)(x1)(st))(x2)
+c_nest'46_'35lambda2 x1 (Curry.Module.Prelude.ListOr i xs) x3 x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_nest'46_'35lambda2(x1)(x)(x3)(x4)(st))(i)(xs)(st)
+c_nest'46_'35lambda2 x1 x x3 x4 st = Curry.RunTimeSystem.patternFail("Pretty.nest._#lambda2")(x)
+
+
+
+c_hang :: Curry.Module.Prelude.C_Int -> Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_hang x1 x2 st = Curry.Module.Pretty.C_Doc(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_OpenNest(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.Pretty.c_hang'46_'35lambda3(x1)))))(Curry.Module.Prelude.op_46(Curry.Module.Pretty.c_deDoc(x2)(st))(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_CloseNest))(st))(st))
+
+
+
+c_hang'46_'35lambda3 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_hang'46_'35lambda3 x1 x2 x3 x4 st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(x4)(x3)(st))(x1)(st))(x2)
+
+
+
+c_align :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_align st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_hang(Curry.Module.Prelude.C_Zero))
+
+
+
+c_combine :: Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_combine x1 x2 x3 st = Curry.Module.Pretty.c_enclose(x2)(x3)(x1)(st)
+
+
+
+op_60_62 :: Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+op_60_62 x1 x2 st = Curry.Module.Pretty.C_Doc(Curry.Module.Prelude.op_46(Curry.Module.Pretty.c_deDoc(x1)(st))(Curry.Module.Pretty.c_deDoc(x2)(st))(st))
+
+
+
+op_60_43_62 :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc))
+op_60_43_62 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_combine(Curry.Module.Pretty.c_space(st)))
+
+
+
+op_60_36_62 :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc))
+op_60_36_62 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_combine(Curry.Module.Pretty.c_line(st)))
+
+
+
+op_60_47_62 :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc))
+op_60_47_62 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_combine(Curry.Module.Pretty.c_softline(st)))
+
+
+
+op_60_36_36_62 :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc))
+op_60_36_36_62 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_combine(Curry.Module.Pretty.c_linebreak(st)))
+
+
+
+op_60_47_47_62 :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc))
+op_60_47_47_62 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_combine(Curry.Module.Pretty.c_softbreak(st)))
+
+
+
+c_compose :: (Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc))) -> (Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_compose x1 x2@Curry.Module.Prelude.List st = Curry.Module.Pretty.c_empty(st)
+c_compose x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_foldr1(x1)(x2)(st)
+c_compose x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_compose(x1)(x)(st))(i)(xs)(st)
+c_compose x1 x st = Curry.RunTimeSystem.patternFail("Pretty.compose")(x)
+
+
+
+c_hsep :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_hsep st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_compose(Curry.Module.Pretty.op_60_43_62(st)))
+
+
+
+c_vsep :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_vsep st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_compose(Curry.Module.Pretty.op_60_36_62(st)))
+
+
+
+c_fillSep :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_fillSep st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_compose(Curry.Module.Pretty.op_60_47_62(st)))
+
+
+
+c_sep :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_sep st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Pretty.c_group))(Curry.Module.Pretty.c_vsep(st))(st)
+
+
+
+c_hcat :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_hcat st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_compose(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.op_60_62)))
+
+
+
+c_vcat :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_vcat st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_compose(Curry.Module.Pretty.op_60_36_36_62(st)))
+
+
+
+c_fillCat :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_fillCat st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_compose(Curry.Module.Pretty.op_60_47_47_62(st)))
+
+
+
+c_cat :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_cat st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Pretty.c_group))(Curry.Module.Pretty.c_vcat(st))(st)
+
+
+
+c_punctuate :: Curry.Module.Pretty.C_Doc -> (Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc
+c_punctuate x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_punctuate x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Pretty.c_punctuate'46go'4675(x1)(x2)(st)
+c_punctuate x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_punctuate(x1)(x)(st))(i)(xs)(st)
+c_punctuate x1 x st = Curry.RunTimeSystem.patternFail("Pretty.punctuate")(x)
+
+
+
+c_punctuate'46go'4675 :: Curry.Module.Pretty.C_Doc -> (Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc
+c_punctuate'46go'4675 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Pretty.c_punctuate'46go'4675_case_13(x1)(x3)(x4)(st)
+c_punctuate'46go'4675 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_punctuate'46go'4675(x1)(x)(st))(i)(xs)(st)
+c_punctuate'46go'4675 x1 x st = Curry.RunTimeSystem.patternFail("Pretty.punctuate.go.75")(x)
+
+
+
+c_encloseSep :: Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> (Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_encloseSep x1 x2 x3 x4@Curry.Module.Prelude.List st = Curry.Module.Pretty.op_60_62(x1)(x2)(st)
+c_encloseSep x1 x2 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_align(st))(Curry.Module.Pretty.c_enclose(x1)(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_cat(st))((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Pretty.op_60_62(x3)))(x6)(st)))(st))(st))(st)
+c_encloseSep x1 x2 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_encloseSep(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_encloseSep x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Pretty.encloseSep")(x)
+
+
+
+c_hEncloseSep :: Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> (Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_hEncloseSep x1 x2 x3 x4@Curry.Module.Prelude.List st = Curry.Module.Pretty.op_60_62(x1)(x2)(st)
+c_hEncloseSep x1 x2 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_align(st))(Curry.Module.Pretty.c_enclose(x1)(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_hcat(st))((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Pretty.op_60_62(x3)))(x6)(st)))(st))(st))(st)
+c_hEncloseSep x1 x2 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_hEncloseSep(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_hEncloseSep x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Pretty.hEncloseSep")(x)
+
+
+
+c_fillEncloseSep :: Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> (Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_fillEncloseSep x1 x2 x3 x4@Curry.Module.Prelude.List st = Curry.Module.Pretty.op_60_62(x1)(x2)(st)
+c_fillEncloseSep x1 x2 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_align(st))(Curry.Module.Pretty.c_enclose(x1)(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_hcat(st))((Curry.Module.Prelude.:<)(x5)(Curry.Module.Pretty.c_fillEncloseSep'46withSoftBreaks'4696(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Pretty.op_60_62(x3)))(x6)(st))(st)))(st))(st))(st)
+c_fillEncloseSep x1 x2 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_fillEncloseSep(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_fillEncloseSep x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Pretty.fillEncloseSep")(x)
+
+
+
+c_fillEncloseSep'46withSoftBreaks'4696 :: (Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc
+c_fillEncloseSep'46withSoftBreaks'4696 x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_fillEncloseSep'46withSoftBreaks'4696 x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Pretty.c_fillEncloseSep'46withSoftBreaks'4696_case_12(x2)(x3)(st)
+c_fillEncloseSep'46withSoftBreaks'4696 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_fillEncloseSep'46withSoftBreaks'4696(x)(st))(i)(xs)(st)
+c_fillEncloseSep'46withSoftBreaks'4696 x st = Curry.RunTimeSystem.patternFail("Pretty.fillEncloseSep.withSoftBreaks.96")(x)
+
+
+
+c_list :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_list st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_fillEncloseSep(Curry.Module.Pretty.c_lbracket(st))(Curry.Module.Pretty.c_rbracket(st))(Curry.Module.Pretty.c_comma(st)))
+
+
+
+c_tupled :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_tupled st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_fillEncloseSep(Curry.Module.Pretty.c_lparen(st))(Curry.Module.Pretty.c_rparen(st))(Curry.Module.Pretty.c_comma(st)))
+
+
+
+c_semiBraces :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Pretty.C_Doc) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_semiBraces st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_fillEncloseSep(Curry.Module.Pretty.c_lbrace(st))(Curry.Module.Pretty.c_rbrace(st))(Curry.Module.Pretty.c_semi(st)))
+
+
+
+c_enclose :: Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_enclose x1 x2 x3 st = Curry.Module.Pretty.op_60_62(Curry.Module.Pretty.op_60_62(x1)(x3)(st))(x2)(st)
+
+
+
+c_squotes :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_squotes st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_enclose(Curry.Module.Pretty.c_squote(st))(Curry.Module.Pretty.c_squote(st)))
+
+
+
+c_dquotes :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_dquotes st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_enclose(Curry.Module.Pretty.c_dquote(st))(Curry.Module.Pretty.c_dquote(st)))
+
+
+
+c_bquotes :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bquotes st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_enclose(Curry.Module.Pretty.c_bquote(st))(Curry.Module.Pretty.c_bquote(st)))
+
+
+
+c_parens :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_parens st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_enclose(Curry.Module.Pretty.c_lparen(st))(Curry.Module.Pretty.c_rparen(st)))
+
+
+
+c_angles :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_angles st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_enclose(Curry.Module.Pretty.c_langle(st))(Curry.Module.Pretty.c_rangle(st)))
+
+
+
+c_braces :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_braces st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_enclose(Curry.Module.Pretty.c_lbrace(st))(Curry.Module.Pretty.c_rbrace(st)))
+
+
+
+c_brackets :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_brackets st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_enclose(Curry.Module.Pretty.c_lbracket(st))(Curry.Module.Pretty.c_rbracket(st)))
+
+
+
+c_char :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_char x1 st = Curry.Module.Pretty.c_text((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))(st)
+
+
+
+c_string :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_string st = Curry.Module.Prelude.op_46(Curry.Module.Pretty.c_hcat(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Pretty.c_string'46_'35lambda4))))(st)
+
+
+
+c_string'46_'35lambda4 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_string'46_'35lambda4 x1 st = Curry.Module.Pretty.c_string'46_'35lambda4_case_11(x1)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x1)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\r'))(Curry.Module.Prelude.List)))(st))(st)
+
+
+
+c_int :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_int x1 st = Curry.Module.Pretty.c_text(Curry.Module.Prelude.c_show(x1)(st))(st)
+
+
+
+c_float :: Curry.Module.Prelude.C_Float -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_float x1 st = Curry.Module.Pretty.c_text(Curry.Module.Prelude.c_show(x1)(st))(st)
+
+
+
+c_lparen :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_lparen st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('('))(st)
+
+
+
+c_rparen :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_rparen st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char(')'))(st)
+
+
+
+c_langle :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_langle st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('<'))(st)
+
+
+
+c_rangle :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_rangle st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('>'))(st)
+
+
+
+c_lbrace :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_lbrace st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('{'))(st)
+
+
+
+c_rbrace :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_rbrace st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('}'))(st)
+
+
+
+c_lbracket :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_lbracket st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('['))(st)
+
+
+
+c_rbracket :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_rbracket st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char(']'))(st)
+
+
+
+c_squote :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_squote st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('\''))(st)
+
+
+
+c_dquote :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_dquote st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('\"'))(st)
+
+
+
+c_bquote :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_bquote st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('`'))(st)
+
+
+
+c_semi :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_semi st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char(';'))(st)
+
+
+
+c_colon :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_colon st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char(':'))(st)
+
+
+
+c_comma :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_comma st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char(','))(st)
+
+
+
+c_space :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_space st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char(' '))(st)
+
+
+
+c_dot :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_dot st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('.'))(st)
+
+
+
+c_backslash :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_backslash st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('\\'))(st)
+
+
+
+c_equals :: Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc
+c_equals st = Curry.Module.Pretty.c_char(Curry.Module.Prelude.C_Char('='))(st)
+
+
+
+c_normalise :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Tokens -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Tokens)
+c_normalise st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_normalise'46go'46173(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)))
+
+
+
+c_normalise'46open'46173 :: Curry.Module.Pretty.C_Tokens -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Tokens
+c_normalise'46open'46173 x1@(Curry.Module.Pretty.C_Close x2) st = x2
+c_normalise'46open'46173 x1@(Curry.Module.Pretty.C_Text x3 x4) st = Curry.Module.Pretty.C_Open(x1)
+c_normalise'46open'46173 x1@(Curry.Module.Pretty.C_Line x5 x6) st = Curry.Module.Pretty.C_Open(x1)
+c_normalise'46open'46173 x1@(Curry.Module.Pretty.C_Open x7) st = Curry.Module.Pretty.C_Open(x1)
+c_normalise'46open'46173 x1@Curry.Module.Pretty.C_Empty st = Curry.Module.Pretty.C_Open(x1)
+c_normalise'46open'46173 x1@(Curry.Module.Pretty.C_OpenNest x8 x9) st = Curry.Module.Pretty.C_Open(x1)
+c_normalise'46open'46173 x1@(Curry.Module.Pretty.C_CloseNest x10) st = Curry.Module.Pretty.C_Open(x1)
+c_normalise'46open'46173 (Curry.Module.Pretty.C_TokensOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_normalise'46open'46173(x)(st))(i)(xs)(st)
+c_normalise'46open'46173 x st = Curry.RunTimeSystem.patternFail("Pretty.normalise.open.173")(x)
+
+
+
+c_normalise'46go'46173 :: (Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Tokens -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Tokens)) -> Curry.Module.Pretty.C_Tokens -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Tokens
+c_normalise'46go'46173 x1 x2@Curry.Module.Pretty.C_Empty st = Curry.Module.Prelude.c_apply(x1)(Curry.Module.Pretty.C_Empty)(st)
+c_normalise'46go'46173 x1 x2@(Curry.Module.Pretty.C_Open x3) st = Curry.Module.Pretty.c_normalise'46go'46173(Curry.Module.Prelude.op_46(x1)(Curry.Module.Prelude.pf(Curry.Module.Pretty.c_normalise'46open'46173))(st))(x3)(st)
+c_normalise'46go'46173 x1 x2@(Curry.Module.Pretty.C_Close x4) st = Curry.Module.Pretty.c_normalise'46go'46173(Curry.Module.Prelude.op_46(x1)(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_Close))(st))(x4)(st)
+c_normalise'46go'46173 x1 x2@(Curry.Module.Pretty.C_Line x5 x6) st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.op_46(x1)(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.Pretty.C_Line(x5)))(Curry.Module.Prelude.pf(Curry.Module.Pretty.c_normalise'46go'46173(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))))(st))(st))(x6)(st)
+c_normalise'46go'46173 x1 x2@(Curry.Module.Pretty.C_Text x7 x8) st = Curry.Module.Pretty.C_Text(x7)(Curry.Module.Pretty.c_normalise'46go'46173(x1)(x8)(st))
+c_normalise'46go'46173 x1 x2@(Curry.Module.Pretty.C_OpenNest x9 x10) st = Curry.Module.Pretty.C_OpenNest(x9)(Curry.Module.Pretty.c_normalise'46go'46173(x1)(x10)(st))
+c_normalise'46go'46173 x1 x2@(Curry.Module.Pretty.C_CloseNest x11) st = Curry.Module.Pretty.C_CloseNest(Curry.Module.Pretty.c_normalise'46go'46173(x1)(x11)(st))
+c_normalise'46go'46173 x1 (Curry.Module.Pretty.C_TokensOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_normalise'46go'46173(x1)(x)(st))(i)(xs)(st)
+c_normalise'46go'46173 x1 x st = Curry.RunTimeSystem.patternFail("Pretty.normalise.go.173")(x)
+
+
+
+c_doc2Tokens :: Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Tokens
+c_doc2Tokens x1@(Curry.Module.Pretty.C_Doc x2) st = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_normalise(st))(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Pretty.C_Empty)(st))(st)
+c_doc2Tokens (Curry.Module.Pretty.C_DocOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_doc2Tokens(x)(st))(i)(xs)(st)
+c_doc2Tokens x st = Curry.RunTimeSystem.patternFail("Pretty.doc2Tokens")(x)
+
+
+
+c_pretty :: Curry.Module.Prelude.C_Int -> Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_pretty x1 x2 st = Curry.Module.Pretty.c_noGroup(Curry.Module.Pretty.c_doc2Tokens(x2)(st))(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.List))(st)
+
+
+
+c_length :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int)
+c_length st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_length))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_elem))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(Curry.Module.Prelude.List))))(Curry.Module.Prelude.c_enumFromTo(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st))(st))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_ord))(st))(st))))(st)
+
+
+
+c_noGroup :: Curry.Module.Pretty.C_Tokens -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_noGroup x1@Curry.Module.Pretty.C_Empty x2 x3 x4 x5 st = Curry.Module.Prelude.List
+c_noGroup x1@(Curry.Module.Pretty.C_Text x6 x7) x2 x3 x4 x5 st = let {x8 = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_length(st))(x6)(st)} in Curry.Module.Prelude.op_43_43(x6)(Curry.Module.Pretty.c_noGroup(x7)(x2)(Curry.Module.Prelude.op_43(x3)(x8)(st))(Curry.Module.Prelude.op_45(x4)(x8)(st))(x5)(st))(st)
+c_noGroup x1@(Curry.Module.Pretty.C_Line x9 x10) x2 x3 x4 x5 st = Curry.Module.Pretty.c_noGroup_case_10(x2)(x3)(x10)(x5)(st)
+c_noGroup x1@(Curry.Module.Pretty.C_Open x13) x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_oneGroup(x13)(x2)(x3)(Curry.Module.Prelude.op_43(x3)(x4)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_noGroup'46_'35lambda6))(st))(x4)(st))(x5)(st)
+c_noGroup x1@(Curry.Module.Pretty.C_Close x14) x2 x3 x4 x5 st = Curry.Module.Pretty.c_noGroup(x14)(x2)(x3)(x4)(x5)(st)
+c_noGroup x1@(Curry.Module.Pretty.C_OpenNest x15 x16) x2 x3 x4 x5 st = Curry.Module.Pretty.c_noGroup(x16)(x2)(x3)(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x15)(x5)(st))(x4)(st))(x2)(st))(st)
+c_noGroup x1@(Curry.Module.Pretty.C_CloseNest x17) x2 x3 x4 x5 st = Curry.Module.Pretty.c_noGroup(x17)(x2)(x3)(x4)(Curry.Module.Prelude.c_tail(x5)(st))(st)
+c_noGroup (Curry.Module.Pretty.C_TokensOr i xs) x2 x3 x4 x5 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_noGroup(x)(x2)(x3)(x4)(x5)(st))(i)(xs)(st)
+c_noGroup x x2 x3 x4 x5 st = Curry.RunTimeSystem.patternFail("Pretty.noGroup")(x)
+
+
+
+c_noGroup'46_'35lambda6 :: Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_noGroup'46_'35lambda6 x1 x2 st = x2
+
+
+
+c_oneGroup :: Curry.Module.Pretty.C_Tokens -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> 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.List Curry.Module.Prelude.C_Char))
+c_oneGroup x1@(Curry.Module.Pretty.C_Text x6 x7) x2 x3 x4 x5 st = let {x8 = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_length(st))(x6)(st)} in Curry.Module.Pretty.c_pruneOne(x7)(x2)(Curry.Module.Prelude.op_43(x3)(x8)(st))(x4)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46_'35lambda7(x8)(x5)(x6)))(st)
+c_oneGroup x1@(Curry.Module.Pretty.C_Line x9 x10) x2 x3 x4 x5 st = let {x11 = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_length(st))(x9)(st)} in Curry.Module.Pretty.c_pruneOne(x10)(x2)(Curry.Module.Prelude.op_43(x3)(x11)(st))(x4)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46_'35lambda8(x11)(x5)(x9)(x2)))(st)
+c_oneGroup x1@(Curry.Module.Pretty.C_Open x12) x2 x3 x4 x5 st = Curry.Module.Pretty.c_multiGroup(x12)(x2)(x3)(x4)(x5)(Curry.Module.Dequeue.c_empty(st))(x3)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46_'35lambda9))(st)
+c_oneGroup x1@(Curry.Module.Pretty.C_Close x13) x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(Curry.Module.Prelude.op_60_61(x3)(x4)(st))(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_noGroup(x13)(x2)(x3)))(st)
+c_oneGroup x1@(Curry.Module.Pretty.C_OpenNest x14 x15) x2 x3 x4 x5 st = Curry.Module.Pretty.c_oneGroup(x15)(x2)(x3)(x4)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46_'35lambda10(x14)(x5)(x2)))(st)
+c_oneGroup x1@(Curry.Module.Pretty.C_CloseNest x16) x2 x3 x4 x5 st = Curry.Module.Pretty.c_oneGroup(x16)(x2)(x3)(x4)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46_'35lambda12(x5)))(st)
+c_oneGroup (Curry.Module.Pretty.C_TokensOr i xs) x2 x3 x4 x5 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_oneGroup(x)(x2)(x3)(x4)(x5)(st))(i)(xs)(st)
+c_oneGroup x x2 x3 x4 x5 st = Curry.RunTimeSystem.patternFail("Pretty.oneGroup")(x)
+
+
+
+c_oneGroup'46outText'46234 :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> Curry.Module.Prelude.C_Int -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_oneGroup'46outText'46234 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(Curry.Module.Prelude.op_45(x4)(x1)(st))(st))(x5)(st))(st)
+
+
+
+c_oneGroup'46_'35lambda7 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_oneGroup'46_'35lambda7 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x4)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46outText'46234(x1)(x3)(x5)))(st)
+
+
+
+c_oneGroup'46outLine'46240 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_oneGroup'46outLine'46240 x1 x2 x3 x4 x5 x6 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Pretty.c_oneGroup'46outLine'46240_case_9(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x4)(st)
+c_oneGroup'46outLine'46240 x1 x2 x3 x4 x5 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_oneGroup'46outLine'46240(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_oneGroup'46outLine'46240 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Pretty.oneGroup.outLine.240")(x)
+
+
+
+c_oneGroup'46_'35lambda8 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_oneGroup'46_'35lambda8 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46outLine'46240(x1)(x3)(x4)(x5)(x6)))(st)
+
+
+
+c_oneGroup'46_'35lambda9 :: Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_oneGroup'46_'35lambda9 x1 x2 st = x2
+
+
+
+c_oneGroup'46_'35lambda10 :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_oneGroup'46_'35lambda10 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x4)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46_'35lambda10'46_'35lambda11(x5)(x1)(x3)))(st)
+
+
+
+c_oneGroup'46_'35lambda10'46_'35lambda11 :: (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.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_oneGroup'46_'35lambda10'46_'35lambda11 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(x4)(st))(x3)(st))(st)
+
+
+
+c_oneGroup'46_'35lambda12 :: (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_oneGroup'46_'35lambda12 x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_oneGroup'46_'35lambda12'46_'35lambda13(x3)))(st)
+
+
+
+c_oneGroup'46_'35lambda12'46_'35lambda13 :: (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.List Curry.Module.Prelude.C_Char))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_oneGroup'46_'35lambda12'46_'35lambda13 x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(Curry.Module.Prelude.c_tail(x3)(st))(st)
+
+
+
+c_multiGroup :: Curry.Module.Pretty.C_Tokens -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> (Curry.Module.Dequeue.C_Queue (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> 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.List Curry.Module.Prelude.C_Char))
+c_multiGroup x1@(Curry.Module.Pretty.C_Text x9 x10) x2 x3 x4 x5 x6 x7 x8 st = let {x11 = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_length(st))(x9)(st)} in Curry.Module.Pretty.c_pruneMulti(x10)(x2)(Curry.Module.Prelude.op_43(x3)(x11)(st))(x4)(x5)(x6)(x7)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda14(x11)(x8)(x9)))(st)
+c_multiGroup x1@(Curry.Module.Pretty.C_Line x12 x13) x2 x3 x4 x5 x6 x7 x8 st = let {x14 = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_length(st))(x12)(st)} in Curry.Module.Pretty.c_pruneMulti(x13)(x2)(Curry.Module.Prelude.op_43(x3)(x14)(st))(x4)(x5)(x6)(x7)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda15(x14)(x8)(x12)(x2)))(st)
+c_multiGroup x1@(Curry.Module.Pretty.C_Open x15) x2 x3 x4 x5 x6 x7 x8 st = Curry.Module.Pretty.c_multiGroup(x15)(x2)(x3)(x4)(x5)(Curry.Module.Dequeue.c_cons(Curry.Module.Prelude.T2(x7)(x8))(x6)(st))(x3)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda16))(st)
+c_multiGroup x1@(Curry.Module.Pretty.C_Close x16) x2 x3 x4 x5 x6 x7 x8 st = Curry.Module.Pretty.c_multiGroup_case_8(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x16)(Curry.Module.Dequeue.c_matchHead(x6)(st))(st)
+c_multiGroup x1@(Curry.Module.Pretty.C_OpenNest x22 x23) x2 x3 x4 x5 x6 x7 x8 st = Curry.Module.Pretty.c_multiGroup(x23)(x2)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda22(x22)(x8)(x2)))(st)
+c_multiGroup x1@(Curry.Module.Pretty.C_CloseNest x24) x2 x3 x4 x5 x6 x7 x8 st = Curry.Module.Pretty.c_multiGroup(x24)(x2)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda24(x8)))(st)
+c_multiGroup (Curry.Module.Pretty.C_TokensOr i xs) x2 x3 x4 x5 x6 x7 x8 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_multiGroup(x)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(st))(i)(xs)(st)
+c_multiGroup x x2 x3 x4 x5 x6 x7 x8 st = Curry.RunTimeSystem.patternFail("Pretty.multiGroup")(x)
+
+
+
+c_multiGroup'46outText'46261 :: (Curry t0) => Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> Curry.Module.Prelude.C_Int -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_multiGroup'46outText'46261 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(Curry.Module.Prelude.op_45(x4)(x1)(st))(st))(x5)(st))(st)
+
+
+
+c_multiGroup'46_'35lambda14 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_multiGroup'46_'35lambda14 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x4)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46outText'46261(x1)(x3)(x5)))(st)
+
+
+
+c_multiGroup'46outLine'46267 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_multiGroup'46outLine'46267 x1 x2 x3 x4 x5 x6 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Pretty.c_multiGroup'46outLine'46267_case_5(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x4)(st)
+c_multiGroup'46outLine'46267 x1 x2 x3 x4 x5 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_multiGroup'46outLine'46267(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_multiGroup'46outLine'46267 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Pretty.multiGroup.outLine.267")(x)
+
+
+
+c_multiGroup'46_'35lambda15 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_multiGroup'46_'35lambda15 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46outLine'46267(x1)(x3)(x4)(x5)(x6)))(st)
+
+
+
+c_multiGroup'46_'35lambda16 :: Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_multiGroup'46_'35lambda16 x1 x2 st = x2
+
+
+
+c_multiGroup'46_'35lambda18 :: (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_multiGroup'46_'35lambda18 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(Curry.Module.Prelude.pf(Curry.Module.Pretty.c_multiGroup'46_'35lambda18'46_'35lambda19(x6)(x1)(x3)(x4)))(st)
+
+
+
+c_multiGroup'46_'35lambda18'46_'35lambda19 :: (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.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> 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.List Curry.Module.Prelude.C_Char)
+c_multiGroup'46_'35lambda18'46_'35lambda19 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Prelude.op_60_61(x3)(Curry.Module.Prelude.op_43(x4)(x5)(st))(st))(st))(x1)(st))(x5)(st)
+
+
+
+c_multiGroup'46_'35lambda20 :: (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_multiGroup'46_'35lambda20 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x5)(st))(Curry.Module.Prelude.pf(Curry.Module.Pretty.c_multiGroup'46_'35lambda20'46_'35lambda21(x6)(x2)(x3)(x4)))(st)
+
+
+
+c_multiGroup'46_'35lambda20'46_'35lambda21 :: (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.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> 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.List Curry.Module.Prelude.C_Char)
+c_multiGroup'46_'35lambda20'46_'35lambda21 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Prelude.op_60_61(x3)(Curry.Module.Prelude.op_43(x4)(x5)(st))(st))(st))(x1)(st))(x5)(st)
+
+
+
+c_multiGroup'46_'35lambda22 :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_multiGroup'46_'35lambda22 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x4)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda22'46_'35lambda23(x5)(x1)(x3)))(st)
+
+
+
+c_multiGroup'46_'35lambda22'46_'35lambda23 :: (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.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_multiGroup'46_'35lambda22'46_'35lambda23 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(x4)(st))(x3)(st))(st)
+
+
+
+c_multiGroup'46_'35lambda24 :: (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Bool -> (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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))
+c_multiGroup'46_'35lambda24 x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda24'46_'35lambda25(x3)))(st)
+
+
+
+c_multiGroup'46_'35lambda24'46_'35lambda25 :: (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.List Curry.Module.Prelude.C_Char))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_multiGroup'46_'35lambda24'46_'35lambda25 x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(Curry.Module.Prelude.c_tail(x3)(st))(st)
+
+
+
+c_pruneOne :: Curry.Module.Pretty.C_Tokens -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> 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.List Curry.Module.Prelude.C_Char))
+c_pruneOne x1 x2 x3 x4 x5 st = Curry.Module.Pretty.c_pruneOne_case_4(x1)(x2)(x3)(x4)(x5)(Curry.Module.Prelude.op_60_61(x3)(x4)(st))(st)
+
+
+
+c_pruneMulti :: Curry.Module.Pretty.C_Tokens -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> (Curry.Module.Dequeue.C_Queue (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> 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.List Curry.Module.Prelude.C_Char))
+c_pruneMulti x1 x2 x3 x4 x5 x6 x7 x8 st = Curry.Module.Pretty.c_pruneMulti_case_3(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(Curry.Module.Prelude.op_60_61(x3)(x4)(st))(st)
+
+
+
+c_pruneMulti'46_'35lambda26 :: (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Dequeue.C_Queue (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((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.List Curry.Module.Prelude.C_Char))) -> 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.List Curry.Module.Prelude.C_Char))))))) -> Curry.Module.Prelude.C_Int -> Curry.Module.Pretty.C_Tokens -> Curry.Module.Prelude.C_Int -> 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.List Curry.Module.Prelude.C_Char)
+c_pruneMulti'46_'35lambda26 x1 x2 x3 x4 x5 x6 x7 st = Curry.Module.Pretty.c_pruneMulti'46_'35lambda26_case_2(x1)(x2)(x3)(x4)(x5)(x6)(x7)(Curry.Module.Dequeue.c_matchLast(x3)(st))(st)
+
+
+
+c_pruneMulti'46_'35lambda26_case_2 x1 x2 x3 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_Nothing st = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_pruneOne(x5)(x6)(x2)(Curry.Module.Prelude.op_43(x4)(x7)(st))(x1)(st))(x7)(st)
+c_pruneMulti'46_'35lambda26_case_2 x1 x2 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_Just x8) st = Curry.Module.Pretty.c_pruneMulti'46_'35lambda26_case_1(x1)(x2)(x4)(x5)(x6)(x7)(x8)(st)
+c_pruneMulti'46_'35lambda26_case_2 x1 x2 x3 x4 x5 x6 x7 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_pruneMulti'46_'35lambda26_case_2(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_pruneMulti'46_'35lambda26_case_2 x1 x2 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Pretty.pruneMulti._#lambda26_case_2")(x)
+
+
+
+c_pruneMulti'46_'35lambda26_case_1 x1 x2 x4 x5 x6 x7 x8@(Curry.Module.Prelude.T2 x9 x10) st = Curry.Module.Pretty.c_pruneMulti'46_'35lambda26_case_0(x1)(x2)(x4)(x5)(x6)(x7)(x10)(x9)(st)
+c_pruneMulti'46_'35lambda26_case_1 x1 x2 x4 x5 x6 x7 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_pruneMulti'46_'35lambda26_case_1(x1)(x2)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_pruneMulti'46_'35lambda26_case_1 x1 x2 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Pretty.pruneMulti._#lambda26_case_1")(x)
+
+
+
+c_pruneMulti'46_'35lambda26_case_0 x1 x2 x4 x5 x6 x7 x10 x9@(Curry.Module.Prelude.T2 x11 x12) st = Curry.Module.Prelude.c_apply(Curry.Module.Pretty.c_pruneMulti(x5)(x6)(x2)(Curry.Module.Prelude.op_43(x11)(x7)(st))(x12)(x10)(x4)(x1)(st))(x7)(st)
+c_pruneMulti'46_'35lambda26_case_0 x1 x2 x4 x5 x6 x7 x10 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_pruneMulti'46_'35lambda26_case_0(x1)(x2)(x4)(x5)(x6)(x7)(x10)(x)(st))(i)(xs)(st)
+c_pruneMulti'46_'35lambda26_case_0 x1 x2 x4 x5 x6 x7 x10 x st = Curry.RunTimeSystem.patternFail("Pretty.pruneMulti._#lambda26_case_0")(x)
+
+
+
+c_pruneMulti_case_3 x1 x2 x3 x4 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Pretty.c_multiGroup(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(st)
+c_pruneMulti_case_3 x1 x2 x3 x4 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(Curry.Module.Prelude.C_False)(st))(Curry.Module.Prelude.pf(Curry.Module.Pretty.c_pruneMulti'46_'35lambda26(x8)(x3)(x6)(x7)(x1)(x2)))(st)
+c_pruneMulti_case_3 x1 x2 x3 x4 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_pruneMulti_case_3(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_pruneMulti_case_3 x1 x2 x3 x4 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("Pretty.pruneMulti_case_3")(x)
+
+
+
+c_pruneOne_case_4 x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Pretty.c_oneGroup(x1)(x2)(x3)(x4)(x5)(st)
+c_pruneOne_case_4 x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(Curry.Module.Prelude.C_False)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_noGroup(x1)(x2)(x3)))(st)
+c_pruneOne_case_4 x1 x2 x3 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_pruneOne_case_4(x1)(x2)(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_pruneOne_case_4 x1 x2 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("Pretty.pruneOne_case_4")(x)
+
+
+
+c_multiGroup'46outLine'46267_case_5 x1 x2 x3 x5 x6 x7 x8 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(Curry.Module.Prelude.op_45(x6)(x1)(st))(st))(x7)(st))(st)
+c_multiGroup'46outLine'46267_case_5 x1 x2 x3 x5 x6 x7 x8 x4@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_replicate(x8)(Curry.Module.Prelude.C_Char(' '))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(Curry.Module.Prelude.op_45(x3)(x8)(st))(st))(x7)(st))(st))
+c_multiGroup'46outLine'46267_case_5 x1 x2 x3 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_multiGroup'46outLine'46267_case_5(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_multiGroup'46outLine'46267_case_5 x1 x2 x3 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("Pretty.multiGroup.outLine.267_case_5")(x)
+
+
+
+c_multiGroup_case_8 x2 x3 x4 x5 x6 x7 x8 x16 x17@Curry.Module.Prelude.C_Nothing st = Curry.Module.Pretty.c_oneGroup(x16)(x2)(x3)(x4)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda18(x8)(x5)(x3)(x7)))(st)
+c_multiGroup_case_8 x2 x3 x4 x5 x6 x7 x8 x16 (Curry.Module.Prelude.C_Just x17) st = Curry.Module.Pretty.c_multiGroup_case_7(x2)(x3)(x4)(x5)(x7)(x8)(x16)(x17)(st)
+c_multiGroup_case_8 x2 x3 x4 x5 x6 x7 x8 x16 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_multiGroup_case_8(x2)(x3)(x4)(x5)(x6)(x7)(x8)(x16)(x)(st))(i)(xs)(st)
+c_multiGroup_case_8 x2 x3 x4 x5 x6 x7 x8 x16 x st = Curry.RunTimeSystem.patternFail("Pretty.multiGroup_case_8")(x)
+
+
+
+c_multiGroup_case_7 x2 x3 x4 x5 x7 x8 x16 x17@(Curry.Module.Prelude.T2 x18 x19) st = Curry.Module.Pretty.c_multiGroup_case_6(x2)(x3)(x4)(x5)(x7)(x8)(x16)(x19)(x18)(st)
+c_multiGroup_case_7 x2 x3 x4 x5 x7 x8 x16 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_multiGroup_case_7(x2)(x3)(x4)(x5)(x7)(x8)(x16)(x)(st))(i)(xs)(st)
+c_multiGroup_case_7 x2 x3 x4 x5 x7 x8 x16 x st = Curry.RunTimeSystem.patternFail("Pretty.multiGroup_case_7")(x)
+
+
+
+c_multiGroup_case_6 x2 x3 x4 x5 x7 x8 x16 x19 x18@(Curry.Module.Prelude.T2 x20 x21) st = Curry.Module.Pretty.c_multiGroup(x16)(x2)(x3)(x4)(x5)(x19)(x20)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Pretty.c_multiGroup'46_'35lambda20(x21)(x8)(x3)(x7)))(st)
+c_multiGroup_case_6 x2 x3 x4 x5 x7 x8 x16 x19 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_multiGroup_case_6(x2)(x3)(x4)(x5)(x7)(x8)(x16)(x19)(x)(st))(i)(xs)(st)
+c_multiGroup_case_6 x2 x3 x4 x5 x7 x8 x16 x19 x st = Curry.RunTimeSystem.patternFail("Pretty.multiGroup_case_6")(x)
+
+
+
+c_oneGroup'46outLine'46240_case_9 x1 x2 x3 x5 x6 x7 x8 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(Curry.Module.Prelude.op_45(x6)(x1)(st))(st))(x7)(st))(st)
+c_oneGroup'46outLine'46240_case_9 x1 x2 x3 x5 x6 x7 x8 x4@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_replicate(x8)(Curry.Module.Prelude.C_Char(' '))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(Curry.Module.Prelude.op_45(x3)(x8)(st))(st))(x7)(st))(st))
+c_oneGroup'46outLine'46240_case_9 x1 x2 x3 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_oneGroup'46outLine'46240_case_9(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_oneGroup'46outLine'46240_case_9 x1 x2 x3 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("Pretty.oneGroup.outLine.240_case_9")(x)
+
+
+
+c_noGroup_case_10 x2 x3 x10 x5@((Curry.Module.Prelude.:<) x11 x12) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_replicate(x11)(Curry.Module.Prelude.C_Char(' '))(st))(Curry.Module.Pretty.c_noGroup(x10)(x2)(Curry.Module.Prelude.op_43(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.op_45(x2)(x11)(st))(x5)(st))(st))
+c_noGroup_case_10 x2 x3 x10 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_noGroup_case_10(x2)(x3)(x10)(x)(st))(i)(xs)(st)
+c_noGroup_case_10 x2 x3 x10 x st = Curry.RunTimeSystem.patternFail("Pretty.noGroup_case_10")(x)
+
+
+
+c_string'46_'35lambda4_case_11 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Pretty.c_line(st)
+c_string'46_'35lambda4_case_11 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Pretty.c_char(x1)(st)
+c_string'46_'35lambda4_case_11 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_string'46_'35lambda4_case_11(x1)(x)(st))(i)(xs)(st)
+c_string'46_'35lambda4_case_11 x1 x st = Curry.RunTimeSystem.patternFail("Pretty.string._#lambda4_case_11")(x)
+
+
+
+c_fillEncloseSep'46withSoftBreaks'4696_case_12 x2 x3@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)(Curry.Module.Pretty.c_group(Curry.Module.Pretty.op_60_62(Curry.Module.Pretty.c_linebreak(st))(x2)(st))(st))(Curry.Module.Prelude.List)
+c_fillEncloseSep'46withSoftBreaks'4696_case_12 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = (Curry.Module.Prelude.:<)(Curry.Module.Pretty.c_group(Curry.Module.Pretty.op_60_62(Curry.Module.Pretty.c_linebreak(st))(Curry.Module.Pretty.c_group(Curry.Module.Pretty.op_60_62(x2)(Curry.Module.Pretty.c_linebreak(st))(st))(st))(st))(st))(Curry.Module.Pretty.c_fillEncloseSep'46withSoftBreaks'4696(x3)(st))
+c_fillEncloseSep'46withSoftBreaks'4696_case_12 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_fillEncloseSep'46withSoftBreaks'4696_case_12(x2)(x)(st))(i)(xs)(st)
+c_fillEncloseSep'46withSoftBreaks'4696_case_12 x2 x st = Curry.RunTimeSystem.patternFail("Pretty.fillEncloseSep.withSoftBreaks.96_case_12")(x)
+
+
+
+c_punctuate'46go'4675_case_13 x1 x3 x4@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List)
+c_punctuate'46go'4675_case_13 x1 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = (Curry.Module.Prelude.:<)(Curry.Module.Pretty.op_60_62(x3)(x1)(st))(Curry.Module.Pretty.c_punctuate'46go'4675(x1)(x4)(st))
+c_punctuate'46go'4675_case_13 x1 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Pretty.c_punctuate'46go'4675_case_13(x1)(x3)(x)(st))(i)(xs)(st)
+c_punctuate'46go'4675_case_13 x1 x3 x st = Curry.RunTimeSystem.patternFail("Pretty.punctuate.go.75_case_13")(x)
+
+
diff --git a/dist/build/Curry/Module/PropertyFile.hs b/dist/build/Curry/Module/PropertyFile.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/PropertyFile.hs
@@ -0,0 +1,123 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.PropertyFile (module Curry.Module.PropertyFile) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Char
+import Curry.Module.Directory
+import Curry.Module.IOExts
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_readPropertyFile :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (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_readPropertyFile x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_doesFileExist(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.PropertyFile.c_readPropertyFile'46_'35lambda3(x1)))(st)
+
+
+
+c_readPropertyFile'46splitEqs'463 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> 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_readPropertyFile'46splitEqs'463 x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_readPropertyFile'46splitEqs'463 x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.PropertyFile.c_readPropertyFile'46splitEqs'463_case_4(x2)(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))(x2)(st))(st)
+c_readPropertyFile'46splitEqs'463 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_readPropertyFile'46splitEqs'463(x)(st))(i)(xs)(st)
+c_readPropertyFile'46splitEqs'463 x st = Curry.RunTimeSystem.patternFail("PropertyFile.readPropertyFile.splitEqs.3")(x)
+
+
+
+c_readPropertyFile'46_'35lambda3 :: (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.List (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)))
+c_readPropertyFile'46_'35lambda3 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_readFile(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.PropertyFile.c_readPropertyFile'46_'35lambda3'46_'35lambda4))(st)
+c_readPropertyFile'46_'35lambda3 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.List)(st)
+c_readPropertyFile'46_'35lambda3 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_readPropertyFile'46_'35lambda3(x1)(x)(st))(i)(xs)(st)
+c_readPropertyFile'46_'35lambda3 x1 x st = Curry.RunTimeSystem.patternFail("PropertyFile.readPropertyFile._#lambda3")(x)
+
+
+
+c_readPropertyFile'46_'35lambda3'46_'35lambda4 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (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_readPropertyFile'46_'35lambda3'46_'35lambda4 x1 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.PropertyFile.c_readPropertyFile'46splitEqs'463))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.pf(Curry.Module.PropertyFile.c_readPropertyFile'46_'35lambda3'46_'35lambda4'46_'35lambda5))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_lines))(st))(st))(x1)(st))(st)
+
+
+
+c_readPropertyFile'46_'35lambda3'46_'35lambda4'46_'35lambda5 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_readPropertyFile'46_'35lambda3'46_'35lambda4'46_'35lambda5 x1 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.c_not(Curry.Module.Prelude.c_null(x1)(st))(st))(Curry.Module.Char.c_isAlpha(Curry.Module.Prelude.c_head(x1)(st))(st))(st)
+
+
+
+c_updatePropertyFile :: (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_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_updatePropertyFile x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.PropertyFile.c_readPropertyFile(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.PropertyFile.c_updatePropertyFile'46_'35lambda6(x1)(x2)(x3)))(st)
+
+
+
+c_updatePropertyFile'46_'35lambda6 :: (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_Char) -> (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.C_IO Curry.Module.Prelude.T0
+c_updatePropertyFile'46_'35lambda6 x1 x2 x3 x4 st = Curry.Module.PropertyFile.c_updatePropertyFile'46_'35lambda6_case_2(x1)(x2)(x3)(x4)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_lookup(x2)(x4)(st))(Curry.Module.Prelude.C_Nothing)(st))(st)
+
+
+
+c_changePropertyInFile :: (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_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_changePropertyInFile x1 x2 x3 st = Curry.Module.IOExts.c_updateFile(Curry.Module.Prelude.pf(Curry.Module.PropertyFile.c_changePropertyInFile'46_'35lambda7(x2)(x3)))(x1)(st)
+
+
+
+c_changePropertyInFile'46changeProp'4621 :: (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_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_changePropertyInFile'46changeProp'4621 x1 x2 x3 st = let {x4 = 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)} in let {x5 = Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621'46_'35selFP3'35s1(x4)(st)} in Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621_case_1(x1)(x2)(x3)(x4)(x5)(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.c_null(x3)(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.c_not(Curry.Module.Char.c_isAlpha(Curry.Module.Prelude.c_head(x3)(st))(st))(st))(Curry.Module.Prelude.c_null(Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621'46_'35selFP4'35s2(x4)(st))(st))(st))(st))(st)
+
+
+
+c_changePropertyInFile'46changeProp'4621'46_'35selFP3'35s1 :: (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_changePropertyInFile'46changeProp'4621'46_'35selFP3'35s1 x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_changePropertyInFile'46changeProp'4621'46_'35selFP3'35s1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621'46_'35selFP3'35s1(x)(st))(i)(xs)(st)
+c_changePropertyInFile'46changeProp'4621'46_'35selFP3'35s1 x st = Curry.RunTimeSystem.patternFail("PropertyFile.changePropertyInFile.changeProp.21._#selFP3#s1")(x)
+
+
+
+c_changePropertyInFile'46changeProp'4621'46_'35selFP4'35s2 :: (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_changePropertyInFile'46changeProp'4621'46_'35selFP4'35s2 x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_changePropertyInFile'46changeProp'4621'46_'35selFP4'35s2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621'46_'35selFP4'35s2(x)(st))(i)(xs)(st)
+c_changePropertyInFile'46changeProp'4621'46_'35selFP4'35s2 x st = Curry.RunTimeSystem.patternFail("PropertyFile.changePropertyInFile.changeProp.21._#selFP4#s2")(x)
+
+
+
+c_changePropertyInFile'46_'35lambda7 :: (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_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_changePropertyInFile'46_'35lambda7 x1 x2 x3 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_unlines))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621(x1)(x2)))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_lines))(st))(st))(x3)(st)
+
+
+
+c_changePropertyInFile'46changeProp'4621_case_1 x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.C_True st = x3
+c_changePropertyInFile'46changeProp'4621_case_1 x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621_case_0(x1)(x2)(x3)(x5)(Curry.Module.Prelude.op_61_61(x5)(x1)(st))(st)
+c_changePropertyInFile'46changeProp'4621_case_1 x1 x2 x3 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621_case_1(x1)(x2)(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_changePropertyInFile'46changeProp'4621_case_1 x1 x2 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("PropertyFile.changePropertyInFile.changeProp.21_case_1")(x)
+
+
+
+c_changePropertyInFile'46changeProp'4621_case_0 x1 x2 x3 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_43_43(x5)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('='))(Curry.Module.Prelude.List))(x2)(st))(st)
+c_changePropertyInFile'46changeProp'4621_case_0 x1 x2 x3 x5 x6@Curry.Module.Prelude.C_False st = x3
+c_changePropertyInFile'46changeProp'4621_case_0 x1 x2 x3 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_changePropertyInFile'46changeProp'4621_case_0(x1)(x2)(x3)(x5)(x)(st))(i)(xs)(st)
+c_changePropertyInFile'46changeProp'4621_case_0 x1 x2 x3 x5 x st = Curry.RunTimeSystem.patternFail("PropertyFile.changePropertyInFile.changeProp.21_case_0")(x)
+
+
+
+c_updatePropertyFile'46_'35lambda6_case_2 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_appendFile(x1)(Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('='))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(x3)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))(st))(st))(st))(st)
+c_updatePropertyFile'46_'35lambda6_case_2 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.PropertyFile.c_changePropertyInFile(x1)(x2)(x3)(st)
+c_updatePropertyFile'46_'35lambda6_case_2 x1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_updatePropertyFile'46_'35lambda6_case_2(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_updatePropertyFile'46_'35lambda6_case_2 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("PropertyFile.updatePropertyFile._#lambda6_case_2")(x)
+
+
+
+c_readPropertyFile'46splitEqs'463_case_4 x2 x3 (Curry.Module.Prelude.T2 x4 x5) st = Curry.Module.PropertyFile.c_readPropertyFile'46splitEqs'463_case_3(x3)(x4)(x5)(st)
+c_readPropertyFile'46splitEqs'463_case_4 x2 x3 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_readPropertyFile'46splitEqs'463_case_4(x2)(x3)(x)(st))(i)(xs)(st)
+c_readPropertyFile'46splitEqs'463_case_4 x2 x3 x st = Curry.RunTimeSystem.patternFail("PropertyFile.readPropertyFile.splitEqs.3_case_4")(x)
+
+
+
+c_readPropertyFile'46splitEqs'463_case_3 x3 x4 x5@((Curry.Module.Prelude.:<) x6 x7) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2(x4)(x7))(Curry.Module.PropertyFile.c_readPropertyFile'46splitEqs'463(x3)(st))
+c_readPropertyFile'46splitEqs'463_case_3 x3 x4 x5@Curry.Module.Prelude.List st = Curry.Module.PropertyFile.c_readPropertyFile'46splitEqs'463(x3)(st)
+c_readPropertyFile'46splitEqs'463_case_3 x3 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.PropertyFile.c_readPropertyFile'46splitEqs'463_case_3(x3)(x4)(x)(st))(i)(xs)(st)
+c_readPropertyFile'46splitEqs'463_case_3 x3 x4 x st = Curry.RunTimeSystem.patternFail("PropertyFile.readPropertyFile.splitEqs.3_case_3")(x)
+
+
diff --git a/dist/build/Curry/Module/Random.hs b/dist/build/Curry/Module/Random.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Random.hs
@@ -0,0 +1,228 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Random (module Curry.Module.Random) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+import Curry.Module.System
+import Curry.Module.Time
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_multiplier :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_multiplier st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))))
+
+
+
+c_addend :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addend st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))
+
+
+
+c_powermask :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_powermask st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))
+
+
+
+c_mask :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_mask st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))))))))))))))))))
+
+
+
+c_intsize :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_intsize st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))
+
+
+
+c_intspan :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_intspan st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))
+
+
+
+c_intlimit :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_intlimit st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))
+
+
+
+c_sequence :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_sequence x1 st = let {x2 = Curry.Module.Random.c_nextseed(x1)(st)} in (Curry.Module.Prelude.:<)(x2)(Curry.Module.Random.c_sequence(x2)(st))
+
+
+
+c_nextseed :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_nextseed x1 st = Curry.Module.Prelude.c_mod(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))))))))))))))))(st)
+
+
+
+c_xor :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_xor x1 x2 st = Curry.Module.Random.c_xor_case_6(x1)(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st))(st)
+
+
+
+c_power :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_power x1 x2 st = Curry.Module.Random.c_power'46binary'4643(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(x1)(x2)(st)
+
+
+
+c_power'46binary'4643 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_power'46binary'4643 x1 x2 x3 st = Curry.Module.Random.c_power'46binary'4643_case_4(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_nextIntBits :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_nextIntBits x1 x2 st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Random.c_nextIntBits'46adjust'4653(Curry.Module.Random.c_power(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.op_45(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))(x2)(st))(st))))(Curry.Module.Random.c_sequence(Curry.Module.Prelude.c_mod(Curry.Module.Random.c_xor(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))))))))))))))))(st))(st))(st)
+
+
+
+c_nextIntBits'46adjust'4653 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_nextIntBits'46adjust'4653 x1 x2 st = let {x3 = Curry.Module.Prelude.c_mod(Curry.Module.Prelude.c_div(x2)(x1)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))(st)} in Curry.Module.Random.c_nextIntBits'46adjust'4653_case_2(x3)(Curry.Module.Prelude.op_62(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))(st))(st)
+
+
+
+c_nextInt :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_nextInt x1 st = Curry.Module.Random.c_nextIntBits(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(st)
+
+
+
+c_nextIntRange :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_nextIntRange x1 x2 st = let {x3 = Curry.Module.Random.c_nextIntBits(x1)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)} in Curry.Module.Random.c_nextIntRange_case_1(x2)(x3)(Curry.Module.Prelude.op_62(x2)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_nextIntRange'46adjust_a'4664 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_nextIntRange'46adjust_a'4664 x1 x2 st = Curry.Module.Prelude.c_div(Curry.Module.Prelude.op_42(x1)(x2)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))(st)
+
+
+
+c_nextIntRange'46adjust_b'4664 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_nextIntRange'46adjust_b'4664 x1 x2 st = Curry.Module.Prelude.c_mod(x2)(x1)(st)
+
+
+
+c_nextIntRange'46adjust_c'4664 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_nextIntRange'46adjust_c'4664 x1 x2 st = Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.c_mod(x2)(x1)(st))(st))(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(Curry.Module.Prelude.C_Zero)(st)
+
+
+
+c_nextIntRange'46power_of_2'4664 :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_nextIntRange'46power_of_2'4664 x1 st = Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Random.c_nextIntRange'46power_of_2'4664(Curry.Module.Prelude.c_div(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(st))(st)
+
+
+
+c_nextBoolean :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool
+c_nextBoolean x1 st = 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_47_61))(Curry.Module.Prelude.C_Zero)))(Curry.Module.Random.c_nextIntBits(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)
+
+
+
+c_getRandomSeed :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_getRandomSeed st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Time.c_getClockTime(st))(Curry.Module.Prelude.pf(Curry.Module.Random.c_getRandomSeed'46_'35lambda2))(st)
+
+
+
+c_getRandomSeed'46_'35lambda2 :: Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_getRandomSeed'46_'35lambda2 x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.System.c_getCPUTime(st))(Curry.Module.Prelude.pf(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3(x1)))(st)
+
+
+
+c_getRandomSeed'46_'35lambda2'46_'35lambda3 :: Curry.Module.Time.C_ClockTime -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_getRandomSeed'46_'35lambda2'46_'35lambda3 x1 x2 st = let {x3 = Curry.Module.Time.c_toUTCTime(x1)(st)} in Curry.Module.Prelude.c_return(Curry.Module.Prelude.c_mod(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_43(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y(x3)(st))(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo(x3)(st))(st))(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d(x3)(st))(st))(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h(x3)(st))(st))(Curry.Module.Prelude.op_42(Curry.Module.Prelude.op_42(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m(x3)(st))(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s(x3)(st))(st))(x2)(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))))))))))))))))(st))(st)
+
+
+
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x2
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y(x)(st))(i)(xs)(st)
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP3#y")(x)
+
+
+
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x3
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo(x)(st))(i)(xs)(st)
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP4#mo")(x)
+
+
+
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x4
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d(x)(st))(i)(xs)(st)
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP5#d")(x)
+
+
+
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x5
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h(x)(st))(i)(xs)(st)
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP6#h")(x)
+
+
+
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x6
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m(x)(st))(i)(xs)(st)
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP7#m")(x)
+
+
+
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x7
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s(x)(st))(i)(xs)(st)
+c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP8#s")(x)
+
+
+
+c_nextIntRange_case_1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Random.c_nextIntRange_case_0(x2)(x3)(Curry.Module.Random.c_nextIntRange'46power_of_2'4664(x2)(st))(st)
+c_nextIntRange_case_1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_nextIntRange_case_1(x2)(x3)(x)(st))(i)(xs)(st)
+c_nextIntRange_case_1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Random.nextIntRange_case_1")(x)
+
+
+
+c_nextIntRange_case_0 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Random.c_nextIntRange'46adjust_a'4664(x2)))(x3)(st)
+c_nextIntRange_case_0 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Random.c_nextIntRange'46adjust_b'4664(x2)))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.pf(Curry.Module.Random.c_nextIntRange'46adjust_c'4664(x2)))(x3)(st))(st)
+c_nextIntRange_case_0 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_nextIntRange_case_0(x2)(x3)(x)(st))(i)(xs)(st)
+c_nextIntRange_case_0 x2 x3 x st = Curry.RunTimeSystem.patternFail("Random.nextIntRange_case_0")(x)
+
+
+
+c_nextIntBits'46adjust'4653_case_2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_45(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))(st)
+c_nextIntBits'46adjust'4653_case_2 x3 x4@Curry.Module.Prelude.C_False st = x3
+c_nextIntBits'46adjust'4653_case_2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_nextIntBits'46adjust'4653_case_2(x3)(x)(st))(i)(xs)(st)
+c_nextIntBits'46adjust'4653_case_2 x3 x st = Curry.RunTimeSystem.patternFail("Random.nextIntBits.adjust.53_case_2")(x)
+
+
+
+c_power'46binary'4643_case_4 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x1
+c_power'46binary'4643_case_4 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Random.c_power'46binary'4643(Curry.Module.Prelude.op_42(x1)(Curry.Module.Random.c_power'46binary'4643_case_3(x2)(x3)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st))(Curry.Module.Prelude.op_42(x2)(x2)(st))(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st)
+c_power'46binary'4643_case_4 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_power'46binary'4643_case_4(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_power'46binary'4643_case_4 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Random.power.binary.43_case_4")(x)
+
+
+
+c_power'46binary'4643_case_3 x2 x3 x4@Curry.Module.Prelude.C_True st = x2
+c_power'46binary'4643_case_3 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_power'46binary'4643_case_3 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_power'46binary'4643_case_3(x2)(x3)(x)(st))(i)(xs)(st)
+c_power'46binary'4643_case_3 x2 x3 x st = Curry.RunTimeSystem.patternFail("Random.power.binary.43_case_3")(x)
+
+
+
+c_xor_case_6 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
+c_xor_case_6 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43(Curry.Module.Random.c_xor_case_5(x1)(x2)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Random.c_xor(Curry.Module.Prelude.c_div(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.c_div(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(st)
+c_xor_case_6 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_xor_case_6(x1)(x2)(x)(st))(i)(xs)(st)
+c_xor_case_6 x1 x2 x st = Curry.RunTimeSystem.patternFail("Random.xor_case_6")(x)
+
+
+
+c_xor_case_5 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
+c_xor_case_5 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+c_xor_case_5 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_xor_case_5(x1)(x2)(x)(st))(i)(xs)(st)
+c_xor_case_5 x1 x2 x st = Curry.RunTimeSystem.patternFail("Random.xor_case_5")(x)
+
+
diff --git a/dist/build/Curry/Module/RandomExternal.hs b/dist/build/Curry/Module/RandomExternal.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/RandomExternal.hs
@@ -0,0 +1,95 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.RandomExternal (module Curry.Module.RandomExternal) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+import System.Random
+
+prim_split :: C_Int -> Result (T2 C_Int C_Int)
+prim_split seed _ = toCurry (fst (next g1), fst (next g2))
+ where
+  (g1,g2) = split (mkStdGen (fromCurry seed))
+
+prim_nextInt :: C_Int -> Result (List C_Int)
+prim_nextInt seed _ = toCurry (nextInt (fromCurry seed))
+
+nextInt :: Int -> [Int]
+nextInt = randoms . mkStdGen
+
+prim_nextIntRange :: C_Int -> C_Int -> Result (List C_Int)
+prim_nextIntRange seed bound _ =
+  toCurry (nextIntRange (fromCurry seed) (fromCurry bound))
+
+nextIntRange :: Int -> Int -> [Int]
+nextIntRange seed bound = randomRs (0,bound) (mkStdGen seed)
+
+getRandomSeed :: Result (C_IO C_Int)
+getRandomSeed = ioFunc0 (getStdRandom next)
+
+
+
+-- end included
+
+c_split :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_split x1 st = let {x2 = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.RandomExternal.c_prim_split))(x1)(st)} in (Curry.Module.Prelude.:<)(Curry.Module.RandomExternal.c_split'46_'35selFP3'35s1(x2)(st))(Curry.Module.RandomExternal.c_split(Curry.Module.RandomExternal.c_split'46_'35selFP4'35s2(x2)(st))(st))
+
+
+
+c_split'46_'35selFP3'35s1 :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_split'46_'35selFP3'35s1 x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_split'46_'35selFP3'35s1 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RandomExternal.c_split'46_'35selFP3'35s1(x)(st))(i)(xs)(st)
+c_split'46_'35selFP3'35s1 x st = Curry.RunTimeSystem.patternFail("RandomExternal.split._#selFP3#s1")(x)
+
+
+
+c_split'46_'35selFP4'35s2 :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_split'46_'35selFP4'35s2 x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_split'46_'35selFP4'35s2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RandomExternal.c_split'46_'35selFP4'35s2(x)(st))(i)(xs)(st)
+c_split'46_'35selFP4'35s2 x st = Curry.RunTimeSystem.patternFail("RandomExternal.split._#selFP4#s2")(x)
+
+
+
+c_nextInt :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_nextInt x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.RandomExternal.c_prim_nextInt))(x1)(st)
+
+
+
+c_nextIntRange :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_nextIntRange x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.RandomExternal.c_prim_nextIntRange))(x1)(st))(x2)(st)
+
+
+
+c_nextBoolean :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool
+c_nextBoolean x1 st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.C_Zero)))(Curry.Module.RandomExternal.c_nextIntRange(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)
+
+
+
+c_prim_split :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int
+c_prim_split x1 st = Curry.Module.RandomExternal.prim_split(x1)(st)
+
+
+
+c_prim_nextInt :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_prim_nextInt x1 st = Curry.Module.RandomExternal.prim_nextInt(x1)(st)
+
+
+
+c_prim_nextIntRange :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_prim_nextIntRange x1 x2 st = Curry.Module.RandomExternal.prim_nextIntRange(x1)(x2)(st)
+
+
+
+c_getRandomSeed :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_getRandomSeed st = Curry.Module.RandomExternal.getRandomSeed(st)
+
+
diff --git a/dist/build/Curry/Module/Read.hs b/dist/build/Curry/Module/Read.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Read.hs
@@ -0,0 +1,111 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Read (module Curry.Module.Read) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Char
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_readNat :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_readNat x1 st = Curry.Module.Read.c_readNat'46readNatPrefix'463(Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Read.c_readNat'46_'35lambda2))(x1)(st))(Curry.Module.Prelude.C_Zero)(st)
+
+
+
+c_readNat'46readNatPrefix'463 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_readNat'46readNatPrefix'463 x1@Curry.Module.Prelude.List x2 st = x2
+c_readNat'46readNatPrefix'463 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = let {x5 = Curry.Module.Prelude.c_ord(x3)(st)} in Curry.Module.Read.c_readNat'46readNatPrefix'463_case_4(x2)(x4)(x5)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(x5)(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('0'))(st))(st))(Curry.Module.Prelude.op_60_61(x5)(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('9'))(st))(st))(st))(st)
+c_readNat'46readNatPrefix'463 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Read.c_readNat'46readNatPrefix'463(x)(x2)(st))(i)(xs)(st)
+c_readNat'46readNatPrefix'463 x x2 st = Curry.RunTimeSystem.patternFail("Read.readNat.readNatPrefix.3")(x)
+
+
+
+c_readNat'46_'35lambda2 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_readNat'46_'35lambda2 x1 st = Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char(' '))(st)
+
+
+
+c_readInt :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_readInt x1 st = Curry.Module.Read.c_readInt'46readIntPrefix'4614(Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Read.c_readInt'46_'35lambda3))(x1)(st))(st)
+
+
+
+c_readInt'46readIntPrefix'4614 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_readInt'46readIntPrefix'4614 x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Zero
+c_readInt'46readIntPrefix'4614 x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Read.c_readInt'46readIntPrefix'4614_case_3(x2)(x3)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Char('-'))(st))(st)
+c_readInt'46readIntPrefix'4614 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Read.c_readInt'46readIntPrefix'4614(x)(st))(i)(xs)(st)
+c_readInt'46readIntPrefix'4614 x st = Curry.RunTimeSystem.patternFail("Read.readInt.readIntPrefix.14")(x)
+
+
+
+c_readInt'46_'35lambda3 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_readInt'46_'35lambda3 x1 st = Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char(' '))(st)
+
+
+
+c_readHex :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_readHex x1 st = Curry.Module.Read.c_readHex'46readHexPrefix'4622(Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Read.c_readHex'46_'35lambda4))(x1)(st))(Curry.Module.Prelude.C_Zero)(st)
+
+
+
+c_readHex'46hex2int'4622 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_readHex'46hex2int'4622 x1 st = Curry.Module.Read.c_readHex'46hex2int'4622_case_2(x1)(Curry.Module.Char.c_isDigit(x1)(st))(st)
+
+
+
+c_readHex'46readHexPrefix'4622 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_readHex'46readHexPrefix'4622 x1@Curry.Module.Prelude.List x2 st = x2
+c_readHex'46readHexPrefix'4622 x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = let {x5 = Curry.Module.Read.c_readHex'46hex2int'4622(x3)(st)} in Curry.Module.Read.c_readHex'46readHexPrefix'4622_case_0(x2)(x4)(x5)(Curry.Module.Prelude.op_62_61(x5)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_readHex'46readHexPrefix'4622 (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Read.c_readHex'46readHexPrefix'4622(x)(x2)(st))(i)(xs)(st)
+c_readHex'46readHexPrefix'4622 x x2 st = Curry.RunTimeSystem.patternFail("Read.readHex.readHexPrefix.22")(x)
+
+
+
+c_readHex'46_'35lambda4 :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_readHex'46_'35lambda4 x1 st = Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Char(' '))(st)
+
+
+
+c_readHex'46readHexPrefix'4622_case_0 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Read.c_readHex'46readHexPrefix'4622(x4)(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st))(x5)(st))(st)
+c_readHex'46readHexPrefix'4622_case_0 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = x2
+c_readHex'46readHexPrefix'4622_case_0 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Read.c_readHex'46readHexPrefix'4622_case_0(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_readHex'46readHexPrefix'4622_case_0 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Read.readHex.readHexPrefix.22_case_0")(x)
+
+
+
+c_readHex'46hex2int'4622_case_2 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('0'))(st))(st)
+c_readHex'46hex2int'4622_case_2 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Read.c_readHex'46hex2int'4622_case_1(x1)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('F'))(st))(st))(st))(st)
+c_readHex'46hex2int'4622_case_2 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Read.c_readHex'46hex2int'4622_case_2(x1)(x)(st))(i)(xs)(st)
+c_readHex'46hex2int'4622_case_2 x1 x st = Curry.RunTimeSystem.patternFail("Read.readHex.hex2int.22_case_2")(x)
+
+
+
+c_readHex'46hex2int'4622_case_1 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st)
+c_readHex'46hex2int'4622_case_1 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_negate(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_readHex'46hex2int'4622_case_1 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Read.c_readHex'46hex2int'4622_case_1(x1)(x)(st))(i)(xs)(st)
+c_readHex'46hex2int'4622_case_1 x1 x st = Curry.RunTimeSystem.patternFail("Read.readHex.hex2int.22_case_1")(x)
+
+
+
+c_readInt'46readIntPrefix'4614_case_3 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_negate(Curry.Module.Read.c_readNat(x3)(st))(st)
+c_readInt'46readIntPrefix'4614_case_3 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Read.c_readNat((Curry.Module.Prelude.:<)(x2)(x3))(st)
+c_readInt'46readIntPrefix'4614_case_3 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Read.c_readInt'46readIntPrefix'4614_case_3(x2)(x3)(x)(st))(i)(xs)(st)
+c_readInt'46readIntPrefix'4614_case_3 x2 x3 x st = Curry.RunTimeSystem.patternFail("Read.readInt.readIntPrefix.14_case_3")(x)
+
+
+
+c_readNat'46readNatPrefix'463_case_4 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Read.c_readNat'46readNatPrefix'463(x4)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(x5)(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('0'))(st))(st))(st)
+c_readNat'46readNatPrefix'463_case_4 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = x2
+c_readNat'46readNatPrefix'463_case_4 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Read.c_readNat'46readNatPrefix'463_case_4(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_readNat'46readNatPrefix'463_case_4 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Read.readNat.readNatPrefix.3_case_4")(x)
+
+
diff --git a/dist/build/Curry/Module/ReadShowTerm.hs b/dist/build/Curry/Module/ReadShowTerm.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/ReadShowTerm.hs
@@ -0,0 +1,205 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.ReadShowTerm (module Curry.Module.ReadShowTerm) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Char
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+import Data.Char
+
+prim_showTerm :: Curry t0 => t0 -> Result (List C_Char)
+prim_showTerm = prim_show 
+
+--because of type classes there is no need to qualify in kics
+prim_showQTerm :: Curry t0 => t0 -> Result (List C_Char)
+prim_showQTerm x _ = toCurry (showQ 0 x [])
+
+prim_readsUnqualifiedTerm :: Curry t0 => 
+   List C_String -> C_String -> Result (List (T2 t0 C_String))
+prim_readsUnqualifiedTerm _ x _ = 
+  fromHaskellList $ map (\ (x,y) -> T2 x (toCurry y)) $ reads $ fromCurry x
+
+prim_readsQTerm :: Curry t0 => C_String -> Result (List (T2 t0 C_String))
+prim_readsQTerm = prim_readsUnqualifiedTerm List  
+
+
+
+-- end included
+
+c_showTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showTerm x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.ReadShowTerm.c_prim_showTerm))(x1)(st)
+
+
+
+c_showQTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showQTerm x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.ReadShowTerm.c_prim_showQTerm))(x1)(st)
+
+
+
+c_readsUnqualifiedTerm :: (Curry t0) => (Curry.Module.Prelude.List (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.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_readsUnqualifiedTerm x1@Curry.Module.Prelude.List x2 st = Curry.Module.Prelude.c_error((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('n'))((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('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('f'))((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('T'))((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('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((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('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('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(' '))((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('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((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('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('e'))((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('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(st)
+c_readsUnqualifiedTerm x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.ReadShowTerm.c_readsUnqualifiedTermWithPrefixes((Curry.Module.Prelude.:<)(x3)(x4))(x2)(st)
+c_readsUnqualifiedTerm (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readsUnqualifiedTerm(x)(x2)(st))(i)(xs)(st)
+c_readsUnqualifiedTerm x x2 st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readsUnqualifiedTerm")(x)
+
+
+
+c_readsUnqualifiedTermWithPrefixes :: (Curry t0) => (Curry.Module.Prelude.List (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.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_readsUnqualifiedTermWithPrefixes x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.ReadShowTerm.c_prim_readsUnqualifiedTerm))(x1)(st))(x2)(st)
+
+
+
+c_readUnqualifiedTerm :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t0
+c_readUnqualifiedTerm x1 x2 st = Curry.Module.ReadShowTerm.c_readUnqualifiedTerm_case_11(x1)(x2)(Curry.Module.ReadShowTerm.c_readsUnqualifiedTerm(x1)(x2)(st))(st)
+
+
+
+c_readsTerm :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_readsTerm x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.ReadShowTerm.c_prim_readsUnqualifiedTerm(Curry.Module.Prelude.List)))(x1)(st)
+
+
+
+c_readTerm :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t0
+c_readTerm x1 st = Curry.Module.ReadShowTerm.c_readTerm_case_7(x1)(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.ReadShowTerm.c_prim_readsUnqualifiedTerm(Curry.Module.Prelude.List)))(x1)(st))(st)
+
+
+
+c_readsQTerm :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_readsQTerm x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.ReadShowTerm.c_prim_readsQTerm))(x1)(st)
+
+
+
+c_readQTerm :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t0
+c_readQTerm x1 st = Curry.Module.ReadShowTerm.c_readQTerm_case_3(x1)(Curry.Module.ReadShowTerm.c_readsQTerm(x1)(st))(st)
+
+
+
+c_readQTermFile :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_readQTermFile x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_readFile(x1)(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pf(Curry.Module.ReadShowTerm.c_readQTerm))(st))(st)
+
+
+
+c_readQTermListFile :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List t0)
+c_readQTermListFile x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_readFile(x1)(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.ReadShowTerm.c_readQTerm))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_lines))(st))(st))(st)
+
+
+
+c_writeQTermFile :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_writeQTermFile x1 x2 st = Curry.Module.Prelude.c_writeFile(x1)(Curry.Module.ReadShowTerm.c_showQTerm(x2)(st))(st)
+
+
+
+c_writeQTermListFile :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_writeQTermListFile x1 x2 st = Curry.Module.Prelude.c_writeFile(x1)(Curry.Module.Prelude.c_unlines(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.ReadShowTerm.c_showQTerm))(x2)(st))(st))(st)
+
+
+
+c_readQTerm_case_3 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.ReadShowTerm.c_readQTerm_case_2(x4)(x3)(st)
+c_readQTerm_case_3 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_error((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('Q'))((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('r'))((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(' '))((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(' '))((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('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))(st)
+c_readQTerm_case_3 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readQTerm_case_3(x1)(x)(st))(i)(xs)(st)
+c_readQTerm_case_3 x1 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readQTerm_case_3")(x)
+
+
+
+c_readQTerm_case_2 x4 x3@(Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.ReadShowTerm.c_readQTerm_case_1(x5)(x6)(x4)(st)
+c_readQTerm_case_2 x4 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readQTerm_case_2(x4)(x)(st))(i)(xs)(st)
+c_readQTerm_case_2 x4 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readQTerm_case_2")(x)
+
+
+
+c_readQTerm_case_1 x5 x6 x4@Curry.Module.Prelude.List st = Curry.Module.ReadShowTerm.c_readQTerm_case_0(x5)(x6)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_all(Curry.Module.Prelude.pf(Curry.Module.Char.c_isSpace))(st))(x6)(st))(st)
+c_readQTerm_case_1 x5 x6 x4@((Curry.Module.Prelude.:<) x7 x8) st = Curry.Module.Prelude.c_error((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('Q'))((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('r'))((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(' '))((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('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('s'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))(st)
+c_readQTerm_case_1 x5 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readQTerm_case_1(x5)(x6)(x)(st))(i)(xs)(st)
+c_readQTerm_case_1 x5 x6 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readQTerm_case_1")(x)
+
+
+
+c_readQTerm_case_0 x5 x6 x7@Curry.Module.Prelude.C_True st = x5
+c_readQTerm_case_0 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_error((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('Q'))((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('r'))((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(' '))((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(' '))((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('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))(st)
+c_readQTerm_case_0 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readQTerm_case_0(x5)(x6)(x)(st))(i)(xs)(st)
+c_readQTerm_case_0 x5 x6 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readQTerm_case_0")(x)
+
+
+
+c_readTerm_case_7 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.ReadShowTerm.c_readTerm_case_6(x4)(x3)(st)
+c_readTerm_case_7 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_error))(Curry.Module.Prelude.op_43_43((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('r'))((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(' '))((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(' '))((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('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('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('s'))((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('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('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((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('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('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.List))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(Curry.Module.Prelude.c_take(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(x1)(st))(st))(st)
+c_readTerm_case_7 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readTerm_case_7(x1)(x)(st))(i)(xs)(st)
+c_readTerm_case_7 x1 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readTerm_case_7")(x)
+
+
+
+c_readTerm_case_6 x4 x3@(Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.ReadShowTerm.c_readTerm_case_5(x5)(x6)(x4)(st)
+c_readTerm_case_6 x4 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readTerm_case_6(x4)(x)(st))(i)(xs)(st)
+c_readTerm_case_6 x4 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readTerm_case_6")(x)
+
+
+
+c_readTerm_case_5 x5 x6 x4@Curry.Module.Prelude.List st = Curry.Module.ReadShowTerm.c_readTerm_case_4(x5)(x6)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_all(Curry.Module.Prelude.pf(Curry.Module.Char.c_isSpace))(st))(x6)(st))(st)
+c_readTerm_case_5 x5 x6 x4@((Curry.Module.Prelude.:<) x7 x8) st = Curry.Module.Prelude.c_error((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('r'))((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(' '))((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('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('s'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))(st)
+c_readTerm_case_5 x5 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readTerm_case_5(x5)(x6)(x)(st))(i)(xs)(st)
+c_readTerm_case_5 x5 x6 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readTerm_case_5")(x)
+
+
+
+c_readTerm_case_4 x5 x6 x7@Curry.Module.Prelude.C_True st = x5
+c_readTerm_case_4 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_error(Curry.Module.Prelude.op_43_43((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('r'))((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(' '))((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(' '))((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('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(' '))((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('m'))((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('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('s'))((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('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('f'))((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('r'))((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('e'))((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(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(x6)(st))(st)
+c_readTerm_case_4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readTerm_case_4(x5)(x6)(x)(st))(i)(xs)(st)
+c_readTerm_case_4 x5 x6 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readTerm_case_4")(x)
+
+
+
+c_readUnqualifiedTerm_case_11 x1 x2 ((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.ReadShowTerm.c_readUnqualifiedTerm_case_10(x4)(x3)(st)
+c_readUnqualifiedTerm_case_11 x1 x2 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_error((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((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('n'))((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('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('f'))((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('T'))((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('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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(' '))((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('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))(st)
+c_readUnqualifiedTerm_case_11 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readUnqualifiedTerm_case_11(x1)(x2)(x)(st))(i)(xs)(st)
+c_readUnqualifiedTerm_case_11 x1 x2 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readUnqualifiedTerm_case_11")(x)
+
+
+
+c_readUnqualifiedTerm_case_10 x4 x3@(Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.ReadShowTerm.c_readUnqualifiedTerm_case_9(x5)(x6)(x4)(st)
+c_readUnqualifiedTerm_case_10 x4 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readUnqualifiedTerm_case_10(x4)(x)(st))(i)(xs)(st)
+c_readUnqualifiedTerm_case_10 x4 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readUnqualifiedTerm_case_10")(x)
+
+
+
+c_readUnqualifiedTerm_case_9 x5 x6 x4@Curry.Module.Prelude.List st = Curry.Module.ReadShowTerm.c_readUnqualifiedTerm_case_8(x5)(x6)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_all(Curry.Module.Prelude.pf(Curry.Module.Char.c_isSpace))(st))(x6)(st))(st)
+c_readUnqualifiedTerm_case_9 x5 x6 x4@((Curry.Module.Prelude.:<) x7 x8) st = Curry.Module.Prelude.c_error((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((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('n'))((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('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('f'))((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('T'))((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('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((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('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('s'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))))))))))))(st)
+c_readUnqualifiedTerm_case_9 x5 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readUnqualifiedTerm_case_9(x5)(x6)(x)(st))(i)(xs)(st)
+c_readUnqualifiedTerm_case_9 x5 x6 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readUnqualifiedTerm_case_9")(x)
+
+
+
+c_readUnqualifiedTerm_case_8 x5 x6 x7@Curry.Module.Prelude.C_True st = x5
+c_readUnqualifiedTerm_case_8 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_error(Curry.Module.Prelude.op_43_43((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((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('n'))((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('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('f'))((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('T'))((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('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((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(' '))((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('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(' '))((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('m'))((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('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('s'))((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('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('f'))((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('r'))((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('e'))((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(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(x6)(st))(st)
+c_readUnqualifiedTerm_case_8 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.ReadShowTerm.c_readUnqualifiedTerm_case_8(x5)(x6)(x)(st))(i)(xs)(st)
+c_readUnqualifiedTerm_case_8 x5 x6 x st = Curry.RunTimeSystem.patternFail("ReadShowTerm.readUnqualifiedTerm_case_8")(x)
+
+
+
+c_prim_showTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_prim_showTerm x1 st = Curry.Module.ReadShowTerm.prim_showTerm(x1)(st)
+
+
+
+c_prim_showQTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_prim_showQTerm x1 st = Curry.Module.ReadShowTerm.prim_showQTerm(x1)(st)
+
+
+
+c_prim_readsUnqualifiedTerm :: (Curry t0) => (Curry.Module.Prelude.List (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.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_prim_readsUnqualifiedTerm x1 x2 st = Curry.Module.ReadShowTerm.prim_readsUnqualifiedTerm(x1)(x2)(st)
+
+
+
+c_prim_readsQTerm :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_prim_readsQTerm x1 st = Curry.Module.ReadShowTerm.prim_readsQTerm(x1)(st)
+
+
diff --git a/dist/build/Curry/Module/RedBlackTree.hs b/dist/build/Curry/Module/RedBlackTree.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/RedBlackTree.hs
@@ -0,0 +1,2159 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.RedBlackTree (module Curry.Module.RedBlackTree) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+data C_RedBlackTree t0 = C_RedBlackTree (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) (Curry.Module.RedBlackTree.C_Tree t0)
+  | C_RedBlackTreeFail Curry.RunTimeSystem.C_Exceptions
+  | C_RedBlackTreeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.RedBlackTree.C_RedBlackTree t0))
+
+data C_Color = C_Red
+  | C_Black
+  | C_DoublyBlack
+  | C_ColorFail Curry.RunTimeSystem.C_Exceptions
+  | C_ColorOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.RedBlackTree.C_Color)
+
+data C_Tree t0 = C_Tree Curry.Module.RedBlackTree.C_Color t0 (Curry.Module.RedBlackTree.C_Tree t0) (Curry.Module.RedBlackTree.C_Tree t0)
+  | C_Empty
+  | C_TreeFail Curry.RunTimeSystem.C_Exceptions
+  | C_TreeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches (Curry.Module.RedBlackTree.C_Tree t0))
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.RedBlackTree.C_RedBlackTree t0) where
+  nf f (Curry.Module.RedBlackTree.C_RedBlackTree x1 x2 x3 x4) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> Curry.RunTimeSystem.nfCTC(\ v4 state4 -> f(Curry.Module.RedBlackTree.C_RedBlackTree(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.RedBlackTree.C_RedBlackTree x1 x2 x3 x4) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> Curry.RunTimeSystem.gnfCTC(\ v4 state4 -> f(Curry.Module.RedBlackTree.C_RedBlackTree(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.RedBlackTree.C_RedBlackTreeOr(Curry.RunTimeSystem.mkRef(r)(4)(i))([Curry.Module.RedBlackTree.C_RedBlackTree(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))))]))(4)
+
+  failed  = Curry.Module.RedBlackTree.C_RedBlackTreeFail
+
+  branching  = Curry.Module.RedBlackTree.C_RedBlackTreeOr
+
+  consKind (Curry.Module.RedBlackTree.C_RedBlackTreeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.RedBlackTree.C_RedBlackTreeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.RedBlackTree.C_RedBlackTreeFail x) = x
+
+  orRef (Curry.Module.RedBlackTree.C_RedBlackTreeOr x _) = x
+
+  branches (Curry.Module.RedBlackTree.C_RedBlackTreeOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.RedBlackTree.C_Color where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.RedBlackTree.C_ColorOr(Curry.RunTimeSystem.mkRef(r)(0)(i))([Curry.Module.RedBlackTree.C_Red,Curry.Module.RedBlackTree.C_Black,Curry.Module.RedBlackTree.C_DoublyBlack]))(0)
+
+  failed  = Curry.Module.RedBlackTree.C_ColorFail
+
+  branching  = Curry.Module.RedBlackTree.C_ColorOr
+
+  consKind (Curry.Module.RedBlackTree.C_ColorOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.RedBlackTree.C_ColorFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.RedBlackTree.C_ColorFail x) = x
+
+  orRef (Curry.Module.RedBlackTree.C_ColorOr x _) = x
+
+  branches (Curry.Module.RedBlackTree.C_ColorOr _ x) = x
+
+
+
+
+
+instance (BaseCurry t0) => BaseCurry (Curry.Module.RedBlackTree.C_Tree t0) where
+  nf f (Curry.Module.RedBlackTree.C_Tree x1 x2 x3 x4) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> Curry.RunTimeSystem.nfCTC(\ v4 state4 -> f(Curry.Module.RedBlackTree.C_Tree(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.RedBlackTree.C_Tree x1 x2 x3 x4) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> Curry.RunTimeSystem.gnfCTC(\ v4 state4 -> f(Curry.Module.RedBlackTree.C_Tree(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.RedBlackTree.C_TreeOr(Curry.RunTimeSystem.mkRef(r)(4)(i))([Curry.Module.RedBlackTree.C_Tree(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)))),Curry.Module.RedBlackTree.C_Empty]))(4)
+
+  failed  = Curry.Module.RedBlackTree.C_TreeFail
+
+  branching  = Curry.Module.RedBlackTree.C_TreeOr
+
+  consKind (Curry.Module.RedBlackTree.C_TreeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.RedBlackTree.C_TreeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.RedBlackTree.C_TreeFail x) = x
+
+  orRef (Curry.Module.RedBlackTree.C_TreeOr x _) = x
+
+  branches (Curry.Module.RedBlackTree.C_TreeOr _ x) = x
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.RedBlackTree.C_RedBlackTree t0) where
+  strEq (Curry.Module.RedBlackTree.C_RedBlackTree x1 x2 x3 x4) (Curry.Module.RedBlackTree.C_RedBlackTree y1 y2 y3 y4) 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.genStrEq(x4)(y4)(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.RedBlackTree.C_RedBlackTree x1 x2 x3 x4) (Curry.Module.RedBlackTree.C_RedBlackTree y1 y2 y3 y4) 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.genEq(x4)(y4)(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.RedBlackTree.C_RedBlackTree x1 x2 x3 x4) st = Curry.Module.RedBlackTree.C_RedBlackTree(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))(f((3::Int))(x4)(st))
+
+  foldCurry f c (Curry.Module.RedBlackTree.C_RedBlackTree x1 x2 x3 x4) st = f(x1)(f(x2)(f(x3)(f(x4)(c)(st))(st))(st))(st)
+
+  typeName _ = "RedBlackTree"
+
+  showQ d (Curry.Module.RedBlackTree.C_RedBlackTree x1 x2 x3 x4) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("RedBlackTree.RedBlackTree "))((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(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x4))))))))
+
+
+  showQ _ (Curry.Module.RedBlackTree.C_RedBlackTreeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.RedBlackTree.C_Color where
+  strEq Curry.Module.RedBlackTree.C_Red Curry.Module.RedBlackTree.C_Red st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.RedBlackTree.C_Black Curry.Module.RedBlackTree.C_Black st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.RedBlackTree.C_DoublyBlack Curry.Module.RedBlackTree.C_DoublyBlack st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq Curry.Module.RedBlackTree.C_Red Curry.Module.RedBlackTree.C_Red st = Curry.Module.Prelude.C_True
+  eq Curry.Module.RedBlackTree.C_Black Curry.Module.RedBlackTree.C_Black st = Curry.Module.Prelude.C_True
+  eq Curry.Module.RedBlackTree.C_DoublyBlack Curry.Module.RedBlackTree.C_DoublyBlack st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f Curry.Module.RedBlackTree.C_Red st = Curry.Module.RedBlackTree.C_Red
+  propagate f Curry.Module.RedBlackTree.C_Black st = Curry.Module.RedBlackTree.C_Black
+  propagate f Curry.Module.RedBlackTree.C_DoublyBlack st = Curry.Module.RedBlackTree.C_DoublyBlack
+
+  foldCurry f c Curry.Module.RedBlackTree.C_Red st = c
+  foldCurry f c Curry.Module.RedBlackTree.C_Black st = c
+  foldCurry f c Curry.Module.RedBlackTree.C_DoublyBlack st = c
+
+  typeName _ = "Color"
+
+  showQ _ Curry.Module.RedBlackTree.C_Red = Prelude.showString("RedBlackTree.Red")
+  showQ _ Curry.Module.RedBlackTree.C_Black = Prelude.showString("RedBlackTree.Black")
+  showQ _ Curry.Module.RedBlackTree.C_DoublyBlack = Prelude.showString("RedBlackTree.DoublyBlack")
+  showQ _ (Curry.Module.RedBlackTree.C_ColorOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Curry t0) => Curry (Curry.Module.RedBlackTree.C_Tree t0) where
+  strEq (Curry.Module.RedBlackTree.C_Tree x1 x2 x3 x4) (Curry.Module.RedBlackTree.C_Tree y1 y2 y3 y4) 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.genStrEq(x4)(y4)(st))(st))(st))(st)
+  strEq Curry.Module.RedBlackTree.C_Empty Curry.Module.RedBlackTree.C_Empty st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.RedBlackTree.C_Tree x1 x2 x3 x4) (Curry.Module.RedBlackTree.C_Tree y1 y2 y3 y4) 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.genEq(x4)(y4)(st))(st))(st))(st)
+  eq Curry.Module.RedBlackTree.C_Empty Curry.Module.RedBlackTree.C_Empty st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.RedBlackTree.C_Tree x1 x2 x3 x4) st = Curry.Module.RedBlackTree.C_Tree(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))(f((3::Int))(x4)(st))
+  propagate f Curry.Module.RedBlackTree.C_Empty st = Curry.Module.RedBlackTree.C_Empty
+
+  foldCurry f c (Curry.Module.RedBlackTree.C_Tree x1 x2 x3 x4) st = f(x1)(f(x2)(f(x3)(f(x4)(c)(st))(st))(st))(st)
+  foldCurry f c Curry.Module.RedBlackTree.C_Empty st = c
+
+  typeName _ = "Tree"
+
+  showQ d (Curry.Module.RedBlackTree.C_Tree x1 x2 x3 x4) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("RedBlackTree.Tree "))((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(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x4))))))))
+
+
+  showQ _ Curry.Module.RedBlackTree.C_Empty = Prelude.showString("RedBlackTree.Empty")
+  showQ _ (Curry.Module.RedBlackTree.C_TreeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.RedBlackTree.C_RedBlackTree t0) where
+  showsPrec d (Curry.Module.RedBlackTree.C_RedBlackTree x1 x2 x3 x4) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("RedBlackTree "))((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.showsPrec(Curry.RunTimeSystem.eleven)(x4))))))))
+
+
+  showsPrec _ (Curry.Module.RedBlackTree.C_RedBlackTreeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.RedBlackTree.C_Color where
+  showsPrec _ Curry.Module.RedBlackTree.C_Red = Prelude.showString("Red")
+  showsPrec _ Curry.Module.RedBlackTree.C_Black = Prelude.showString("Black")
+  showsPrec _ Curry.Module.RedBlackTree.C_DoublyBlack = Prelude.showString("DoublyBlack")
+  showsPrec _ (Curry.Module.RedBlackTree.C_ColorOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Show t0) => Show (Curry.Module.RedBlackTree.C_Tree t0) where
+  showsPrec d (Curry.Module.RedBlackTree.C_Tree x1 x2 x3 x4) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Tree "))((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.showsPrec(Curry.RunTimeSystem.eleven)(x4))))))))
+
+
+  showsPrec _ Curry.Module.RedBlackTree.C_Empty = Prelude.showString("Empty")
+  showsPrec _ (Curry.Module.RedBlackTree.C_TreeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.RedBlackTree.C_RedBlackTree t0) where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.RedBlackTree.C_RedBlackTree(x1)(x2)(x3)(x4))(r4) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("RedBlackTree")("RedBlackTree")(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)])(r)
+
+
+
+
+
+instance Read Curry.Module.RedBlackTree.C_Color where
+  readsPrec d r = (Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.RedBlackTree.C_Red)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("RedBlackTree")("Red")(r)])(r))((Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.RedBlackTree.C_Black)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("RedBlackTree")("Black")(r)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.RedBlackTree.C_DoublyBlack)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("RedBlackTree")("DoublyBlack")(r)])(r)))
+
+
+
+
+
+instance (Read t0) => Read (Curry.Module.RedBlackTree.C_Tree t0) where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.RedBlackTree.C_Tree(x1)(x2)(x3)(x4))(r4) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("RedBlackTree")("Tree")(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)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.RedBlackTree.C_Empty)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("RedBlackTree")("Empty")(r)])(r))
+
+
+
+
+
+c_empty :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0
+c_empty x1 x2 x3 st = Curry.Module.RedBlackTree.C_RedBlackTree(x1)(x2)(x3)(Curry.Module.RedBlackTree.C_Empty)
+
+
+
+c_isEmpty :: (Curry t0) => (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isEmpty x1@(Curry.Module.RedBlackTree.C_RedBlackTree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_isEmpty_case_177(x5)(st)
+c_isEmpty (Curry.Module.RedBlackTree.C_RedBlackTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_isEmpty(x)(st))(i)(xs)(st)
+c_isEmpty x st = Curry.RunTimeSystem.patternFail("RedBlackTree.isEmpty")(x)
+
+
+
+c_newTreeLike :: (Curry t0) => (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0
+c_newTreeLike x1@(Curry.Module.RedBlackTree.C_RedBlackTree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.C_RedBlackTree(x2)(x3)(x4)(Curry.Module.RedBlackTree.C_Empty)
+c_newTreeLike (Curry.Module.RedBlackTree.C_RedBlackTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_newTreeLike(x)(st))(i)(xs)(st)
+c_newTreeLike x st = Curry.RunTimeSystem.patternFail("RedBlackTree.newTreeLike")(x)
+
+
+
+c_lookup :: (Curry t0) => t0 -> (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t0
+c_lookup x1 x2@(Curry.Module.RedBlackTree.C_RedBlackTree x3 x4 x5 x6) st = Curry.Module.RedBlackTree.c_lookupTree(x4)(x5)(x1)(x6)(st)
+c_lookup x1 (Curry.Module.RedBlackTree.C_RedBlackTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_lookup(x1)(x)(st))(i)(xs)(st)
+c_lookup x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.lookup")(x)
+
+
+
+c_lookupTree :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t0 -> (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t0
+c_lookupTree x1 x2 x3 x4@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.Prelude.C_Nothing
+c_lookupTree x1 x2 x3 x4@(Curry.Module.RedBlackTree.C_Tree x5 x6 x7 x8) st = Curry.Module.RedBlackTree.c_lookupTree_case_176(x1)(x2)(x3)(x6)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x6)(st))(st)
+c_lookupTree x1 x2 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_lookupTree(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_lookupTree x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.lookupTree")(x)
+
+
+
+c_update :: (Curry t0) => t0 -> (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0
+c_update x1 x2@(Curry.Module.RedBlackTree.C_RedBlackTree x3 x4 x5 x6) st = Curry.Module.RedBlackTree.C_RedBlackTree(x3)(x4)(x5)(Curry.Module.RedBlackTree.c_updateTree(x3)(x5)(x1)(x6)(st))
+c_update x1 (Curry.Module.RedBlackTree.C_RedBlackTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_update(x1)(x)(st))(i)(xs)(st)
+c_update x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.update")(x)
+
+
+
+c_updateTree :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t0 -> (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_updateTree x1 x2 x3 x4 st = let {x5 = Curry.Module.RedBlackTree.c_updateTree'46upd'4635(x3)(x1)(x2)(x4)(st)} in Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_updateTree'46_'35selFP3'35e2(x5)(st))(Curry.Module.RedBlackTree.c_updateTree'46_'35selFP4'35l(x5)(st))(Curry.Module.RedBlackTree.c_updateTree'46_'35selFP5'35r(x5)(st))
+
+
+
+c_updateTree'46upd'4635 :: (Curry t183) => t183 -> (Curry.Module.Prelude.Prim (t183 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t183 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t183 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t183 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.RedBlackTree.C_Tree t183) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t183
+c_updateTree'46upd'4635 x1 x2 x3 x4@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(x1)(Curry.Module.RedBlackTree.C_Empty)(Curry.Module.RedBlackTree.C_Empty)
+c_updateTree'46upd'4635 x1 x2 x3 x4@(Curry.Module.RedBlackTree.C_Tree x5 x6 x7 x8) st = Curry.Module.RedBlackTree.c_updateTree'46upd'4635_case_173(x1)(x2)(x3)(x5)(x6)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x1)(st))(x6)(st))(st)
+c_updateTree'46upd'4635 x1 x2 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_updateTree'46upd'4635(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_updateTree'46upd'4635 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.updateTree.upd.35")(x)
+
+
+
+c_updateTree'46_'35selFP3'35e2 :: (Curry t183) => (Curry.Module.RedBlackTree.C_Tree t183) -> Curry.RunTimeSystem.State -> t183
+c_updateTree'46_'35selFP3'35e2 x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = x3
+c_updateTree'46_'35selFP3'35e2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_updateTree'46_'35selFP3'35e2(x)(st))(i)(xs)(st)
+c_updateTree'46_'35selFP3'35e2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.updateTree._#selFP3#e2")(x)
+
+
+
+c_updateTree'46_'35selFP4'35l :: (Curry t183) => (Curry.Module.RedBlackTree.C_Tree t183) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t183
+c_updateTree'46_'35selFP4'35l x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = x4
+c_updateTree'46_'35selFP4'35l (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_updateTree'46_'35selFP4'35l(x)(st))(i)(xs)(st)
+c_updateTree'46_'35selFP4'35l x st = Curry.RunTimeSystem.patternFail("RedBlackTree.updateTree._#selFP4#l")(x)
+
+
+
+c_updateTree'46_'35selFP5'35r :: (Curry t183) => (Curry.Module.RedBlackTree.C_Tree t183) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t183
+c_updateTree'46_'35selFP5'35r x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = x5
+c_updateTree'46_'35selFP5'35r (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_updateTree'46_'35selFP5'35r(x)(st))(i)(xs)(st)
+c_updateTree'46_'35selFP5'35r x st = Curry.RunTimeSystem.patternFail("RedBlackTree.updateTree._#selFP5#r")(x)
+
+
+
+c_delete :: (Curry t0) => t0 -> (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0
+c_delete x1 x2@(Curry.Module.RedBlackTree.C_RedBlackTree x3 x4 x5 x6) st = Curry.Module.RedBlackTree.C_RedBlackTree(x3)(x4)(x5)(Curry.Module.RedBlackTree.c_delete'46blackenRoot'4644(Curry.Module.RedBlackTree.c_deleteTree(x4)(x5)(x1)(x6)(st))(st))
+c_delete x1 (Curry.Module.RedBlackTree.C_RedBlackTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_delete(x1)(x)(st))(i)(xs)(st)
+c_delete x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.delete")(x)
+
+
+
+c_delete'46blackenRoot'4644 :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_delete'46blackenRoot'4644 x1@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.RedBlackTree.C_Empty
+c_delete'46blackenRoot'4644 x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(x3)(x4)(x5)
+c_delete'46blackenRoot'4644 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_delete'46blackenRoot'4644(x)(st))(i)(xs)(st)
+c_delete'46blackenRoot'4644 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.delete.blackenRoot.44")(x)
+
+
+
+c_deleteTree :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t0 -> (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_deleteTree x1 x2 x3 x4@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.RedBlackTree.C_Empty
+c_deleteTree x1 x2 x3 x4@(Curry.Module.RedBlackTree.C_Tree x5 x6 x7 x8) st = Curry.Module.RedBlackTree.c_deleteTree_case_170(x1)(x2)(x3)(x5)(x6)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x6)(st))(st)
+c_deleteTree x1 x2 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_deleteTree x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree")(x)
+
+
+
+c_deleteTree'46addColor'4656 :: (Curry t0) => Curry.Module.RedBlackTree.C_Color -> (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_deleteTree'46addColor'4656 x1@Curry.Module.RedBlackTree.C_Red x2 st = x2
+c_deleteTree'46addColor'4656 x1@Curry.Module.RedBlackTree.C_Black x2 st = Curry.Module.RedBlackTree.c_deleteTree'46addColor'4656_case_165(x2)(st)
+c_deleteTree'46addColor'4656 (Curry.Module.RedBlackTree.C_ColorOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree'46addColor'4656(x)(x2)(st))(i)(xs)(st)
+c_deleteTree'46addColor'4656 x x2 st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree.addColor.56")(x)
+
+
+
+c_deleteTree'46rightMost'4656 :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> t0
+c_deleteTree'46rightMost'4656 x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_deleteTree'46rightMost'4656_case_163(x3)(x5)(Curry.Module.Prelude.op_61_61(x5)(Curry.Module.RedBlackTree.C_Empty)(st))(st)
+c_deleteTree'46rightMost'4656 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree'46rightMost'4656(x)(st))(i)(xs)(st)
+c_deleteTree'46rightMost'4656 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree.rightMost.56")(x)
+
+
+
+c_tree2list :: (Curry t0) => (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_tree2list x1@(Curry.Module.RedBlackTree.C_RedBlackTree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_tree2listTree(x5)(st)
+c_tree2list (Curry.Module.RedBlackTree.C_RedBlackTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_tree2list(x)(st))(i)(xs)(st)
+c_tree2list x st = Curry.RunTimeSystem.patternFail("RedBlackTree.tree2list")(x)
+
+
+
+c_tree2listTree :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_tree2listTree x1 st = Curry.Module.RedBlackTree.c_tree2listTree'46t2l'4677(x1)(Curry.Module.Prelude.List)(st)
+
+
+
+c_tree2listTree'46t2l'4677 :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_tree2listTree'46t2l'4677 x1@Curry.Module.RedBlackTree.C_Empty x2 st = x2
+c_tree2listTree'46t2l'4677 x1@(Curry.Module.RedBlackTree.C_Tree x3 x4 x5 x6) x2 st = Curry.Module.RedBlackTree.c_tree2listTree'46t2l'4677(x5)((Curry.Module.Prelude.:<)(x4)(Curry.Module.RedBlackTree.c_tree2listTree'46t2l'4677(x6)(x2)(st)))(st)
+c_tree2listTree'46t2l'4677 (Curry.Module.RedBlackTree.C_TreeOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_tree2listTree'46t2l'4677(x)(x2)(st))(i)(xs)(st)
+c_tree2listTree'46t2l'4677 x x2 st = Curry.RunTimeSystem.patternFail("RedBlackTree.tree2listTree.t2l.77")(x)
+
+
+
+c_sort :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_sort x1 x2 st = Curry.Module.RedBlackTree.c_tree2list(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.RedBlackTree.c_update))(Curry.Module.RedBlackTree.c_empty(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.RedBlackTree.c_sort'46_'35lambda2))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_61_61))(x1)(st))(x2)(st))(st)
+
+
+
+c_sort'46_'35lambda2 :: (Curry t520) => t520 -> t520 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_sort'46_'35lambda2 x1 x2 st = Curry.Module.Prelude.C_False
+
+
+
+c_setInsertEquivalence :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0
+c_setInsertEquivalence x1 x2@(Curry.Module.RedBlackTree.C_RedBlackTree x3 x4 x5 x6) st = Curry.Module.RedBlackTree.C_RedBlackTree(x1)(x4)(x5)(x6)
+c_setInsertEquivalence x1 (Curry.Module.RedBlackTree.C_RedBlackTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_setInsertEquivalence(x1)(x)(st))(i)(xs)(st)
+c_setInsertEquivalence x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.setInsertEquivalence")(x)
+
+
+
+c_rbt :: (Curry t0) => (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_rbt x1@(Curry.Module.RedBlackTree.C_RedBlackTree x2 x3 x4 x5) st = x5
+c_rbt (Curry.Module.RedBlackTree.C_RedBlackTreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_rbt(x)(st))(i)(xs)(st)
+c_rbt x st = Curry.RunTimeSystem.patternFail("RedBlackTree.rbt")(x)
+
+
+
+c_isBlack :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isBlack x1@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.Prelude.C_True
+c_isBlack x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.Prelude.op_61_61(x2)(Curry.Module.RedBlackTree.C_Black)(st)
+c_isBlack (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_isBlack(x)(st))(i)(xs)(st)
+c_isBlack x st = Curry.RunTimeSystem.patternFail("RedBlackTree.isBlack")(x)
+
+
+
+c_isRed :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isRed x1@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.Prelude.C_False
+c_isRed x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.Prelude.op_61_61(x2)(Curry.Module.RedBlackTree.C_Red)(st)
+c_isRed (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_isRed(x)(st))(i)(xs)(st)
+c_isRed x st = Curry.RunTimeSystem.patternFail("RedBlackTree.isRed")(x)
+
+
+
+c_isDoublyBlack :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isDoublyBlack x1@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.Prelude.C_True
+c_isDoublyBlack x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.Prelude.op_61_61(x2)(Curry.Module.RedBlackTree.C_DoublyBlack)(st)
+c_isDoublyBlack (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_isDoublyBlack(x)(st))(i)(xs)(st)
+c_isDoublyBlack x st = Curry.RunTimeSystem.patternFail("RedBlackTree.isDoublyBlack")(x)
+
+
+
+c_element :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> t0
+c_element x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = x3
+c_element (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_element(x)(st))(i)(xs)(st)
+c_element x st = Curry.RunTimeSystem.patternFail("RedBlackTree.element")(x)
+
+
+
+c_left :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_left x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = x4
+c_left (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_left(x)(st))(i)(xs)(st)
+c_left x st = Curry.RunTimeSystem.patternFail("RedBlackTree.left")(x)
+
+
+
+c_right :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_right x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = x5
+c_right (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_right(x)(st))(i)(xs)(st)
+c_right x st = Curry.RunTimeSystem.patternFail("RedBlackTree.right")(x)
+
+
+
+c_singleBlack :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_singleBlack x1@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.RedBlackTree.C_Empty
+c_singleBlack x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_singleBlack_case_162(x3)(x4)(x5)(x2)(st)
+c_singleBlack (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_singleBlack(x)(st))(i)(xs)(st)
+c_singleBlack x st = Curry.RunTimeSystem.patternFail("RedBlackTree.singleBlack")(x)
+
+
+
+c_balanceL :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_balanceL x1 st = let {x2 = Curry.Module.RedBlackTree.c_left(x1)(st)} in Curry.Module.RedBlackTree.c_balanceL_case_161(x1)(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.RedBlackTree.c_isRed(x2)(st))(Curry.Module.RedBlackTree.c_isRed(Curry.Module.RedBlackTree.c_left(x2)(st))(st))(st))(st)
+
+
+
+c_balanceL'46_'35selFP7'35z :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> t88
+c_balanceL'46_'35selFP7'35z x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP7'35z_case_158(x3)(x4)(st)
+c_balanceL'46_'35selFP7'35z (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP7'35z(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP7'35z x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP7#z")(x)
+
+
+
+c_balanceL'46_'35selFP8'35y :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> t88
+c_balanceL'46_'35selFP8'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP8'35y_case_156(x4)(st)
+c_balanceL'46_'35selFP8'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP8'35y(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP8'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP8#y")(x)
+
+
+
+c_balanceL'46_'35selFP9'35x :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> t88
+c_balanceL'46_'35selFP9'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP9'35x_case_154(x4)(st)
+c_balanceL'46_'35selFP9'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP9'35x(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP9'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP9#x")(x)
+
+
+
+c_balanceL'46_'35selFP10'35a :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t88
+c_balanceL'46_'35selFP10'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP10'35a_case_152(x4)(st)
+c_balanceL'46_'35selFP10'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP10'35a(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP10'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP10#a")(x)
+
+
+
+c_balanceL'46_'35selFP11'35b :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t88
+c_balanceL'46_'35selFP11'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP11'35b_case_150(x4)(st)
+c_balanceL'46_'35selFP11'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP11'35b(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP11'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP11#b")(x)
+
+
+
+c_balanceL'46_'35selFP12'35c :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t88
+c_balanceL'46_'35selFP12'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP12'35c_case_148(x4)(st)
+c_balanceL'46_'35selFP12'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP12'35c(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP12'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP12#c")(x)
+
+
+
+c_balanceL'46_'35selFP13'35d :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t88
+c_balanceL'46_'35selFP13'35d x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP13'35d_case_146(x5)(x4)(st)
+c_balanceL'46_'35selFP13'35d (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP13'35d(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP13'35d x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP13#d")(x)
+
+
+
+c_balanceL'46_'35selFP15'35z :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> t88
+c_balanceL'46_'35selFP15'35z x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP15'35z_case_144(x3)(x4)(st)
+c_balanceL'46_'35selFP15'35z (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP15'35z(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP15'35z x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP15#z")(x)
+
+
+
+c_balanceL'46_'35selFP16'35x :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> t88
+c_balanceL'46_'35selFP16'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP16'35x_case_142(x4)(st)
+c_balanceL'46_'35selFP16'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP16'35x(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP16'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP16#x")(x)
+
+
+
+c_balanceL'46_'35selFP17'35a :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t88
+c_balanceL'46_'35selFP17'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP17'35a_case_140(x4)(st)
+c_balanceL'46_'35selFP17'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP17'35a(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP17'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP17#a")(x)
+
+
+
+c_balanceL'46_'35selFP18'35y :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> t88
+c_balanceL'46_'35selFP18'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP18'35y_case_138(x4)(st)
+c_balanceL'46_'35selFP18'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP18'35y(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP18'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP18#y")(x)
+
+
+
+c_balanceL'46_'35selFP19'35b :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t88
+c_balanceL'46_'35selFP19'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP19'35b_case_136(x4)(st)
+c_balanceL'46_'35selFP19'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP19'35b(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP19'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP19#b")(x)
+
+
+
+c_balanceL'46_'35selFP20'35c :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t88
+c_balanceL'46_'35selFP20'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP20'35c_case_134(x4)(st)
+c_balanceL'46_'35selFP20'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP20'35c(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP20'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP20#c")(x)
+
+
+
+c_balanceL'46_'35selFP21'35d :: (Curry t88) => (Curry.Module.RedBlackTree.C_Tree t88) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t88
+c_balanceL'46_'35selFP21'35d x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP21'35d_case_132(x5)(x4)(st)
+c_balanceL'46_'35selFP21'35d (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP21'35d(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP21'35d x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP21#d")(x)
+
+
+
+c_balanceR :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_balanceR x1 st = let {x2 = Curry.Module.RedBlackTree.c_right(x1)(st)} in Curry.Module.RedBlackTree.c_balanceR_case_130(x1)(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.RedBlackTree.c_isRed(x2)(st))(Curry.Module.RedBlackTree.c_isRed(Curry.Module.RedBlackTree.c_right(x2)(st))(st))(st))(st)
+
+
+
+c_balanceR'46_'35selFP23'35x :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> t131
+c_balanceR'46_'35selFP23'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP23'35x_case_127(x3)(x5)(st)
+c_balanceR'46_'35selFP23'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP23'35x(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP23'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP23#x")(x)
+
+
+
+c_balanceR'46_'35selFP24'35a :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t131
+c_balanceR'46_'35selFP24'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP24'35a_case_125(x4)(x5)(st)
+c_balanceR'46_'35selFP24'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP24'35a(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP24'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP24#a")(x)
+
+
+
+c_balanceR'46_'35selFP25'35y :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> t131
+c_balanceR'46_'35selFP25'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP25'35y_case_123(x5)(st)
+c_balanceR'46_'35selFP25'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP25'35y(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP25'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP25#y")(x)
+
+
+
+c_balanceR'46_'35selFP26'35b :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t131
+c_balanceR'46_'35selFP26'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP26'35b_case_121(x5)(st)
+c_balanceR'46_'35selFP26'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP26'35b(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP26'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP26#b")(x)
+
+
+
+c_balanceR'46_'35selFP27'35z :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> t131
+c_balanceR'46_'35selFP27'35z x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP27'35z_case_119(x5)(st)
+c_balanceR'46_'35selFP27'35z (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP27'35z(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP27'35z x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP27#z")(x)
+
+
+
+c_balanceR'46_'35selFP28'35c :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t131
+c_balanceR'46_'35selFP28'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP28'35c_case_117(x5)(st)
+c_balanceR'46_'35selFP28'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP28'35c(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP28'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP28#c")(x)
+
+
+
+c_balanceR'46_'35selFP29'35d :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t131
+c_balanceR'46_'35selFP29'35d x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP29'35d_case_115(x5)(st)
+c_balanceR'46_'35selFP29'35d (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP29'35d(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP29'35d x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP29#d")(x)
+
+
+
+c_balanceR'46_'35selFP31'35x :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> t131
+c_balanceR'46_'35selFP31'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP31'35x_case_113(x3)(x5)(st)
+c_balanceR'46_'35selFP31'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP31'35x(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP31'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP31#x")(x)
+
+
+
+c_balanceR'46_'35selFP32'35a :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t131
+c_balanceR'46_'35selFP32'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP32'35a_case_111(x4)(x5)(st)
+c_balanceR'46_'35selFP32'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP32'35a(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP32'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP32#a")(x)
+
+
+
+c_balanceR'46_'35selFP33'35z :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> t131
+c_balanceR'46_'35selFP33'35z x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP33'35z_case_109(x5)(st)
+c_balanceR'46_'35selFP33'35z (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP33'35z(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP33'35z x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP33#z")(x)
+
+
+
+c_balanceR'46_'35selFP34'35y :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> t131
+c_balanceR'46_'35selFP34'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP34'35y_case_107(x5)(st)
+c_balanceR'46_'35selFP34'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP34'35y(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP34'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP34#y")(x)
+
+
+
+c_balanceR'46_'35selFP35'35b :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t131
+c_balanceR'46_'35selFP35'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP35'35b_case_105(x5)(st)
+c_balanceR'46_'35selFP35'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP35'35b(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP35'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP35#b")(x)
+
+
+
+c_balanceR'46_'35selFP36'35c :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t131
+c_balanceR'46_'35selFP36'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP36'35c_case_103(x5)(st)
+c_balanceR'46_'35selFP36'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP36'35c(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP36'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP36#c")(x)
+
+
+
+c_balanceR'46_'35selFP37'35d :: (Curry t131) => (Curry.Module.RedBlackTree.C_Tree t131) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t131
+c_balanceR'46_'35selFP37'35d x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP37'35d_case_101(x5)(st)
+c_balanceR'46_'35selFP37'35d (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP37'35d(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP37'35d x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP37#d")(x)
+
+
+
+c_delBalanceL :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_delBalanceL x1 st = Curry.Module.RedBlackTree.c_delBalanceL_case_99(x1)(Curry.Module.RedBlackTree.c_isDoublyBlack(Curry.Module.RedBlackTree.c_left(x1)(st))(st))(st)
+
+
+
+c_reviseLeft :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_reviseLeft x1 st = let {x2 = Curry.Module.RedBlackTree.c_right(x1)(st)} in let {x3 = Curry.Module.RedBlackTree.c_isBlack(x2)(st)} in Curry.Module.RedBlackTree.c_reviseLeft_case_98(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.RedBlackTree.C_Empty)(st))(st)
+
+
+
+c_reviseLeft'46_'35selFP39'35col :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Color
+c_reviseLeft'46_'35selFP39'35col x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP39'35col_case_92(x2)(x5)(st)
+c_reviseLeft'46_'35selFP39'35col (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP39'35col(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP39'35col x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP39#col")(x)
+
+
+
+c_reviseLeft'46_'35selFP40'35x :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP40'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP40'35x_case_90(x3)(x5)(st)
+c_reviseLeft'46_'35selFP40'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP40'35x(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP40'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP40#x")(x)
+
+
+
+c_reviseLeft'46_'35selFP41'35a :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP41'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP41'35a_case_88(x4)(x5)(st)
+c_reviseLeft'46_'35selFP41'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP41'35a(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP41'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP41#a")(x)
+
+
+
+c_reviseLeft'46_'35selFP42'35z :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP42'35z x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP42'35z_case_86(x5)(st)
+c_reviseLeft'46_'35selFP42'35z (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP42'35z(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP42'35z x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP42#z")(x)
+
+
+
+c_reviseLeft'46_'35selFP43'35y :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP43'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP43'35y_case_84(x5)(st)
+c_reviseLeft'46_'35selFP43'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP43'35y(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP43'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP43#y")(x)
+
+
+
+c_reviseLeft'46_'35selFP44'35b :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP44'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP44'35b_case_82(x5)(st)
+c_reviseLeft'46_'35selFP44'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP44'35b(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP44'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP44#b")(x)
+
+
+
+c_reviseLeft'46_'35selFP45'35c :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP45'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP45'35c_case_80(x5)(st)
+c_reviseLeft'46_'35selFP45'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP45'35c(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP45'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP45#c")(x)
+
+
+
+c_reviseLeft'46_'35selFP46'35d :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP46'35d x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP46'35d_case_78(x5)(st)
+c_reviseLeft'46_'35selFP46'35d (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP46'35d(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP46'35d x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP46#d")(x)
+
+
+
+c_reviseLeft'46_'35selFP48'35col :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Color
+c_reviseLeft'46_'35selFP48'35col x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP48'35col_case_76(x2)(x5)(st)
+c_reviseLeft'46_'35selFP48'35col (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP48'35col(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP48'35col x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP48#col")(x)
+
+
+
+c_reviseLeft'46_'35selFP49'35x :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP49'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP49'35x_case_74(x3)(x5)(st)
+c_reviseLeft'46_'35selFP49'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP49'35x(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP49'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP49#x")(x)
+
+
+
+c_reviseLeft'46_'35selFP50'35a :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP50'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP50'35a_case_72(x4)(x5)(st)
+c_reviseLeft'46_'35selFP50'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP50'35a(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP50'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP50#a")(x)
+
+
+
+c_reviseLeft'46_'35selFP51'35y :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP51'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP51'35y_case_70(x5)(st)
+c_reviseLeft'46_'35selFP51'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP51'35y(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP51'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP51#y")(x)
+
+
+
+c_reviseLeft'46_'35selFP52'35b :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP52'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP52'35b_case_68(x5)(st)
+c_reviseLeft'46_'35selFP52'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP52'35b(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP52'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP52#b")(x)
+
+
+
+c_reviseLeft'46_'35selFP53'35z :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP53'35z x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP53'35z_case_66(x5)(st)
+c_reviseLeft'46_'35selFP53'35z (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP53'35z(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP53'35z x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP53#z")(x)
+
+
+
+c_reviseLeft'46_'35selFP54'35c :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP54'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP54'35c_case_64(x5)(st)
+c_reviseLeft'46_'35selFP54'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP54'35c(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP54'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP54#c")(x)
+
+
+
+c_reviseLeft'46_'35selFP55'35d :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP55'35d x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP55'35d_case_62(x5)(st)
+c_reviseLeft'46_'35selFP55'35d (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP55'35d(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP55'35d x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP55#d")(x)
+
+
+
+c_reviseLeft'46_'35selFP57'35col :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Color
+c_reviseLeft'46_'35selFP57'35col x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP57'35col_case_60(x2)(x5)(st)
+c_reviseLeft'46_'35selFP57'35col (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP57'35col(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP57'35col x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP57#col")(x)
+
+
+
+c_reviseLeft'46_'35selFP58'35x :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP58'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP58'35x_case_59(x3)(x5)(st)
+c_reviseLeft'46_'35selFP58'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP58'35x(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP58'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP58#x")(x)
+
+
+
+c_reviseLeft'46_'35selFP59'35a :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP59'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP59'35a_case_58(x4)(x5)(st)
+c_reviseLeft'46_'35selFP59'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP59'35a(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP59'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP59#a")(x)
+
+
+
+c_reviseLeft'46_'35selFP60'35y :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP60'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP60'35y_case_57(x5)(st)
+c_reviseLeft'46_'35selFP60'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP60'35y(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP60'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP60#y")(x)
+
+
+
+c_reviseLeft'46_'35selFP61'35b :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP61'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP61'35b_case_56(x5)(st)
+c_reviseLeft'46_'35selFP61'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP61'35b(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP61'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP61#b")(x)
+
+
+
+c_reviseLeft'46_'35selFP62'35c :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP62'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP62'35c_case_55(x5)(st)
+c_reviseLeft'46_'35selFP62'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP62'35c(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP62'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP62#c")(x)
+
+
+
+c_reviseLeft'46_'35selFP64'35x :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP64'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP64'35x_case_54(x3)(x5)(st)
+c_reviseLeft'46_'35selFP64'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP64'35x(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP64'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP64#x")(x)
+
+
+
+c_reviseLeft'46_'35selFP65'35a :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP65'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP65'35a_case_53(x4)(x5)(st)
+c_reviseLeft'46_'35selFP65'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP65'35a(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP65'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP65#a")(x)
+
+
+
+c_reviseLeft'46_'35selFP66'35y :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> t249
+c_reviseLeft'46_'35selFP66'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP66'35y_case_52(x5)(st)
+c_reviseLeft'46_'35selFP66'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP66'35y(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP66'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP66#y")(x)
+
+
+
+c_reviseLeft'46_'35selFP67'35b :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP67'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP67'35b_case_51(x5)(st)
+c_reviseLeft'46_'35selFP67'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP67'35b(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP67'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP67#b")(x)
+
+
+
+c_reviseLeft'46_'35selFP68'35c :: (Curry t249) => (Curry.Module.RedBlackTree.C_Tree t249) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t249
+c_reviseLeft'46_'35selFP68'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP68'35c_case_50(x5)(st)
+c_reviseLeft'46_'35selFP68'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP68'35c(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP68'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP68#c")(x)
+
+
+
+c_delBalanceR :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_delBalanceR x1 st = Curry.Module.RedBlackTree.c_delBalanceR_case_49(x1)(Curry.Module.RedBlackTree.c_isDoublyBlack(Curry.Module.RedBlackTree.c_right(x1)(st))(st))(st)
+
+
+
+c_reviseRight :: (Curry t0) => (Curry.Module.RedBlackTree.C_Tree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t0
+c_reviseRight x1 st = let {x2 = Curry.Module.RedBlackTree.c_left(x1)(st)} in let {x3 = Curry.Module.RedBlackTree.c_isBlack(x2)(st)} in Curry.Module.RedBlackTree.c_reviseRight_case_48(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.RedBlackTree.C_Empty)(st))(st)
+
+
+
+c_reviseRight'46_'35selFP70'35col :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Color
+c_reviseRight'46_'35selFP70'35col x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP70'35col_case_42(x2)(x4)(st)
+c_reviseRight'46_'35selFP70'35col (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP70'35col(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP70'35col x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP70#col")(x)
+
+
+
+c_reviseRight'46_'35selFP71'35x :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP71'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP71'35x_case_40(x3)(x4)(st)
+c_reviseRight'46_'35selFP71'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP71'35x(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP71'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP71#x")(x)
+
+
+
+c_reviseRight'46_'35selFP72'35y :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP72'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP72'35y_case_38(x4)(st)
+c_reviseRight'46_'35selFP72'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP72'35y(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP72'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP72#y")(x)
+
+
+
+c_reviseRight'46_'35selFP73'35z :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP73'35z x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP73'35z_case_36(x4)(st)
+c_reviseRight'46_'35selFP73'35z (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP73'35z(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP73'35z x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP73#z")(x)
+
+
+
+c_reviseRight'46_'35selFP74'35d :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP74'35d x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP74'35d_case_34(x4)(st)
+c_reviseRight'46_'35selFP74'35d (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP74'35d(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP74'35d x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP74#d")(x)
+
+
+
+c_reviseRight'46_'35selFP75'35c :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP75'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP75'35c_case_32(x4)(st)
+c_reviseRight'46_'35selFP75'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP75'35c(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP75'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP75#c")(x)
+
+
+
+c_reviseRight'46_'35selFP76'35b :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP76'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP76'35b_case_30(x4)(st)
+c_reviseRight'46_'35selFP76'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP76'35b(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP76'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP76#b")(x)
+
+
+
+c_reviseRight'46_'35selFP77'35a :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP77'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP77'35a_case_28(x5)(x4)(st)
+c_reviseRight'46_'35selFP77'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP77'35a(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP77'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP77#a")(x)
+
+
+
+c_reviseRight'46_'35selFP79'35col :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Color
+c_reviseRight'46_'35selFP79'35col x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP79'35col_case_26(x2)(x4)(st)
+c_reviseRight'46_'35selFP79'35col (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP79'35col(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP79'35col x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP79#col")(x)
+
+
+
+c_reviseRight'46_'35selFP80'35x :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP80'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP80'35x_case_24(x3)(x4)(st)
+c_reviseRight'46_'35selFP80'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP80'35x(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP80'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP80#x")(x)
+
+
+
+c_reviseRight'46_'35selFP81'35z :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP81'35z x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP81'35z_case_22(x4)(st)
+c_reviseRight'46_'35selFP81'35z (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP81'35z(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP81'35z x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP81#z")(x)
+
+
+
+c_reviseRight'46_'35selFP82'35d :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP82'35d x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP82'35d_case_20(x4)(st)
+c_reviseRight'46_'35selFP82'35d (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP82'35d(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP82'35d x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP82#d")(x)
+
+
+
+c_reviseRight'46_'35selFP83'35y :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP83'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP83'35y_case_18(x4)(st)
+c_reviseRight'46_'35selFP83'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP83'35y(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP83'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP83#y")(x)
+
+
+
+c_reviseRight'46_'35selFP84'35c :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP84'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP84'35c_case_16(x4)(st)
+c_reviseRight'46_'35selFP84'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP84'35c(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP84'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP84#c")(x)
+
+
+
+c_reviseRight'46_'35selFP85'35b :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP85'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP85'35b_case_14(x4)(st)
+c_reviseRight'46_'35selFP85'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP85'35b(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP85'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP85#b")(x)
+
+
+
+c_reviseRight'46_'35selFP86'35a :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP86'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP86'35a_case_12(x5)(x4)(st)
+c_reviseRight'46_'35selFP86'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP86'35a(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP86'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP86#a")(x)
+
+
+
+c_reviseRight'46_'35selFP88'35col :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Color
+c_reviseRight'46_'35selFP88'35col x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP88'35col_case_10(x2)(x4)(st)
+c_reviseRight'46_'35selFP88'35col (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP88'35col(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP88'35col x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP88#col")(x)
+
+
+
+c_reviseRight'46_'35selFP89'35x :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP89'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP89'35x_case_9(x3)(x4)(st)
+c_reviseRight'46_'35selFP89'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP89'35x(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP89'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP89#x")(x)
+
+
+
+c_reviseRight'46_'35selFP90'35y :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP90'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP90'35y_case_8(x4)(st)
+c_reviseRight'46_'35selFP90'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP90'35y(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP90'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP90#y")(x)
+
+
+
+c_reviseRight'46_'35selFP91'35c :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP91'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP91'35c_case_7(x4)(st)
+c_reviseRight'46_'35selFP91'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP91'35c(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP91'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP91#c")(x)
+
+
+
+c_reviseRight'46_'35selFP92'35b :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP92'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP92'35b_case_6(x4)(st)
+c_reviseRight'46_'35selFP92'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP92'35b(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP92'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP92#b")(x)
+
+
+
+c_reviseRight'46_'35selFP93'35a :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP93'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP93'35a_case_5(x5)(x4)(st)
+c_reviseRight'46_'35selFP93'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP93'35a(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP93'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP93#a")(x)
+
+
+
+c_reviseRight'46_'35selFP95'35x :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP95'35x x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP95'35x_case_4(x3)(x4)(st)
+c_reviseRight'46_'35selFP95'35x (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP95'35x(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP95'35x x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP95#x")(x)
+
+
+
+c_reviseRight'46_'35selFP96'35y :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> t327
+c_reviseRight'46_'35selFP96'35y x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP96'35y_case_3(x4)(st)
+c_reviseRight'46_'35selFP96'35y (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP96'35y(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP96'35y x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP96#y")(x)
+
+
+
+c_reviseRight'46_'35selFP97'35c :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP97'35c x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP97'35c_case_2(x4)(st)
+c_reviseRight'46_'35selFP97'35c (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP97'35c(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP97'35c x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP97#c")(x)
+
+
+
+c_reviseRight'46_'35selFP98'35b :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP98'35b x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP98'35b_case_1(x4)(st)
+c_reviseRight'46_'35selFP98'35b (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP98'35b(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP98'35b x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP98#b")(x)
+
+
+
+c_reviseRight'46_'35selFP99'35a :: (Curry t327) => (Curry.Module.RedBlackTree.C_Tree t327) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_Tree t327
+c_reviseRight'46_'35selFP99'35a x1@(Curry.Module.RedBlackTree.C_Tree x2 x3 x4 x5) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP99'35a_case_0(x5)(x4)(st)
+c_reviseRight'46_'35selFP99'35a (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP99'35a(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP99'35a x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP99#a")(x)
+
+
+
+c_reviseRight'46_'35selFP99'35a_case_0 x5 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x5
+c_reviseRight'46_'35selFP99'35a_case_0 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP99'35a_case_0(x5)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP99'35a_case_0 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP99#a_case_0")(x)
+
+
+
+c_reviseRight'46_'35selFP98'35b_case_1 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x9
+c_reviseRight'46_'35selFP98'35b_case_1 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP98'35b_case_1(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP98'35b_case_1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP98#b_case_1")(x)
+
+
+
+c_reviseRight'46_'35selFP97'35c_case_2 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x8
+c_reviseRight'46_'35selFP97'35c_case_2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP97'35c_case_2(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP97'35c_case_2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP97#c_case_2")(x)
+
+
+
+c_reviseRight'46_'35selFP96'35y_case_3 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x7
+c_reviseRight'46_'35selFP96'35y_case_3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP96'35y_case_3(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP96'35y_case_3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP96#y_case_3")(x)
+
+
+
+c_reviseRight'46_'35selFP95'35x_case_4 x3 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x3
+c_reviseRight'46_'35selFP95'35x_case_4 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP95'35x_case_4(x3)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP95'35x_case_4 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP95#x_case_4")(x)
+
+
+
+c_reviseRight'46_'35selFP93'35a_case_5 x5 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x5
+c_reviseRight'46_'35selFP93'35a_case_5 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP93'35a_case_5(x5)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP93'35a_case_5 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP93#a_case_5")(x)
+
+
+
+c_reviseRight'46_'35selFP92'35b_case_6 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x9
+c_reviseRight'46_'35selFP92'35b_case_6 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP92'35b_case_6(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP92'35b_case_6 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP92#b_case_6")(x)
+
+
+
+c_reviseRight'46_'35selFP91'35c_case_7 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x8
+c_reviseRight'46_'35selFP91'35c_case_7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP91'35c_case_7(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP91'35c_case_7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP91#c_case_7")(x)
+
+
+
+c_reviseRight'46_'35selFP90'35y_case_8 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x7
+c_reviseRight'46_'35selFP90'35y_case_8 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP90'35y_case_8(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP90'35y_case_8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP90#y_case_8")(x)
+
+
+
+c_reviseRight'46_'35selFP89'35x_case_9 x3 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x3
+c_reviseRight'46_'35selFP89'35x_case_9 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP89'35x_case_9(x3)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP89'35x_case_9 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP89#x_case_9")(x)
+
+
+
+c_reviseRight'46_'35selFP88'35col_case_10 x2 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x2
+c_reviseRight'46_'35selFP88'35col_case_10 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP88'35col_case_10(x2)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP88'35col_case_10 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP88#col_case_10")(x)
+
+
+
+c_reviseRight'46_'35selFP86'35a_case_12 x5 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP86'35a_case_11(x5)(x9)(st)
+c_reviseRight'46_'35selFP86'35a_case_12 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP86'35a_case_12(x5)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP86'35a_case_12 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP86#a_case_12")(x)
+
+
+
+c_reviseRight'46_'35selFP86'35a_case_11 x5 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x5
+c_reviseRight'46_'35selFP86'35a_case_11 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP86'35a_case_11(x5)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP86'35a_case_11 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP86#a_case_11")(x)
+
+
+
+c_reviseRight'46_'35selFP85'35b_case_14 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP85'35b_case_13(x9)(st)
+c_reviseRight'46_'35selFP85'35b_case_14 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP85'35b_case_14(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP85'35b_case_14 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP85#b_case_14")(x)
+
+
+
+c_reviseRight'46_'35selFP85'35b_case_13 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x13
+c_reviseRight'46_'35selFP85'35b_case_13 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP85'35b_case_13(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP85'35b_case_13 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP85#b_case_13")(x)
+
+
+
+c_reviseRight'46_'35selFP84'35c_case_16 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP84'35c_case_15(x9)(st)
+c_reviseRight'46_'35selFP84'35c_case_16 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP84'35c_case_16(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP84'35c_case_16 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP84#c_case_16")(x)
+
+
+
+c_reviseRight'46_'35selFP84'35c_case_15 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x12
+c_reviseRight'46_'35selFP84'35c_case_15 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP84'35c_case_15(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP84'35c_case_15 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP84#c_case_15")(x)
+
+
+
+c_reviseRight'46_'35selFP83'35y_case_18 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP83'35y_case_17(x9)(st)
+c_reviseRight'46_'35selFP83'35y_case_18 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP83'35y_case_18(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP83'35y_case_18 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP83#y_case_18")(x)
+
+
+
+c_reviseRight'46_'35selFP83'35y_case_17 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x11
+c_reviseRight'46_'35selFP83'35y_case_17 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP83'35y_case_17(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP83'35y_case_17 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP83#y_case_17")(x)
+
+
+
+c_reviseRight'46_'35selFP82'35d_case_20 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP82'35d_case_19(x8)(x9)(st)
+c_reviseRight'46_'35selFP82'35d_case_20 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP82'35d_case_20(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP82'35d_case_20 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP82#d_case_20")(x)
+
+
+
+c_reviseRight'46_'35selFP82'35d_case_19 x8 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x8
+c_reviseRight'46_'35selFP82'35d_case_19 x8 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP82'35d_case_19(x8)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP82'35d_case_19 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP82#d_case_19")(x)
+
+
+
+c_reviseRight'46_'35selFP81'35z_case_22 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP81'35z_case_21(x7)(x9)(st)
+c_reviseRight'46_'35selFP81'35z_case_22 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP81'35z_case_22(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP81'35z_case_22 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP81#z_case_22")(x)
+
+
+
+c_reviseRight'46_'35selFP81'35z_case_21 x7 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x7
+c_reviseRight'46_'35selFP81'35z_case_21 x7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP81'35z_case_21(x7)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP81'35z_case_21 x7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP81#z_case_21")(x)
+
+
+
+c_reviseRight'46_'35selFP80'35x_case_24 x3 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP80'35x_case_23(x3)(x9)(st)
+c_reviseRight'46_'35selFP80'35x_case_24 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP80'35x_case_24(x3)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP80'35x_case_24 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP80#x_case_24")(x)
+
+
+
+c_reviseRight'46_'35selFP80'35x_case_23 x3 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x3
+c_reviseRight'46_'35selFP80'35x_case_23 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP80'35x_case_23(x3)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP80'35x_case_23 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP80#x_case_23")(x)
+
+
+
+c_reviseRight'46_'35selFP79'35col_case_26 x2 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP79'35col_case_25(x2)(x9)(st)
+c_reviseRight'46_'35selFP79'35col_case_26 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP79'35col_case_26(x2)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP79'35col_case_26 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP79#col_case_26")(x)
+
+
+
+c_reviseRight'46_'35selFP79'35col_case_25 x2 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x2
+c_reviseRight'46_'35selFP79'35col_case_25 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP79'35col_case_25(x2)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP79'35col_case_25 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP79#col_case_25")(x)
+
+
+
+c_reviseRight'46_'35selFP77'35a_case_28 x5 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP77'35a_case_27(x5)(x8)(st)
+c_reviseRight'46_'35selFP77'35a_case_28 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP77'35a_case_28(x5)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP77'35a_case_28 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP77#a_case_28")(x)
+
+
+
+c_reviseRight'46_'35selFP77'35a_case_27 x5 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x5
+c_reviseRight'46_'35selFP77'35a_case_27 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP77'35a_case_27(x5)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP77'35a_case_27 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP77#a_case_27")(x)
+
+
+
+c_reviseRight'46_'35selFP76'35b_case_30 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP76'35b_case_29(x9)(x8)(st)
+c_reviseRight'46_'35selFP76'35b_case_30 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP76'35b_case_30(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP76'35b_case_30 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP76#b_case_30")(x)
+
+
+
+c_reviseRight'46_'35selFP76'35b_case_29 x9 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x9
+c_reviseRight'46_'35selFP76'35b_case_29 x9 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP76'35b_case_29(x9)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP76'35b_case_29 x9 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP76#b_case_29")(x)
+
+
+
+c_reviseRight'46_'35selFP75'35c_case_32 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP75'35c_case_31(x8)(st)
+c_reviseRight'46_'35selFP75'35c_case_32 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP75'35c_case_32(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP75'35c_case_32 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP75#c_case_32")(x)
+
+
+
+c_reviseRight'46_'35selFP75'35c_case_31 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x13
+c_reviseRight'46_'35selFP75'35c_case_31 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP75'35c_case_31(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP75'35c_case_31 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP75#c_case_31")(x)
+
+
+
+c_reviseRight'46_'35selFP74'35d_case_34 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP74'35d_case_33(x8)(st)
+c_reviseRight'46_'35selFP74'35d_case_34 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP74'35d_case_34(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP74'35d_case_34 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP74#d_case_34")(x)
+
+
+
+c_reviseRight'46_'35selFP74'35d_case_33 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x12
+c_reviseRight'46_'35selFP74'35d_case_33 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP74'35d_case_33(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP74'35d_case_33 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP74#d_case_33")(x)
+
+
+
+c_reviseRight'46_'35selFP73'35z_case_36 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP73'35z_case_35(x8)(st)
+c_reviseRight'46_'35selFP73'35z_case_36 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP73'35z_case_36(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP73'35z_case_36 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP73#z_case_36")(x)
+
+
+
+c_reviseRight'46_'35selFP73'35z_case_35 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x11
+c_reviseRight'46_'35selFP73'35z_case_35 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP73'35z_case_35(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP73'35z_case_35 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP73#z_case_35")(x)
+
+
+
+c_reviseRight'46_'35selFP72'35y_case_38 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP72'35y_case_37(x7)(x8)(st)
+c_reviseRight'46_'35selFP72'35y_case_38 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP72'35y_case_38(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP72'35y_case_38 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP72#y_case_38")(x)
+
+
+
+c_reviseRight'46_'35selFP72'35y_case_37 x7 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x7
+c_reviseRight'46_'35selFP72'35y_case_37 x7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP72'35y_case_37(x7)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP72'35y_case_37 x7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP72#y_case_37")(x)
+
+
+
+c_reviseRight'46_'35selFP71'35x_case_40 x3 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP71'35x_case_39(x3)(x8)(st)
+c_reviseRight'46_'35selFP71'35x_case_40 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP71'35x_case_40(x3)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP71'35x_case_40 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP71#x_case_40")(x)
+
+
+
+c_reviseRight'46_'35selFP71'35x_case_39 x3 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x3
+c_reviseRight'46_'35selFP71'35x_case_39 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP71'35x_case_39(x3)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP71'35x_case_39 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP71#x_case_39")(x)
+
+
+
+c_reviseRight'46_'35selFP70'35col_case_42 x2 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP70'35col_case_41(x2)(x8)(st)
+c_reviseRight'46_'35selFP70'35col_case_42 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP70'35col_case_42(x2)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP70'35col_case_42 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP70#col_case_42")(x)
+
+
+
+c_reviseRight'46_'35selFP70'35col_case_41 x2 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x2
+c_reviseRight'46_'35selFP70'35col_case_41 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP70'35col_case_41(x2)(x)(st))(i)(xs)(st)
+c_reviseRight'46_'35selFP70'35col_case_41 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight._#selFP70#col_case_41")(x)
+
+
+
+c_reviseRight_case_48 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x1
+c_reviseRight_case_48 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_reviseRight_case_47(x1)(x2)(x3)(Curry.Module.Prelude.op_38_38(x3)(Curry.Module.RedBlackTree.c_isRed(Curry.Module.RedBlackTree.c_left(x2)(st))(st))(st))(st)
+c_reviseRight_case_48 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight_case_48(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_reviseRight_case_48 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight_case_48")(x)
+
+
+
+c_reviseRight_case_47 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP70'35col(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP72'35y(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP73'35z(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP74'35d(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP75'35c(x1)(st)))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP71'35x(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP76'35b(x1)(st))(Curry.Module.RedBlackTree.c_singleBlack(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP77'35a(x1)(st))(st)))
+c_reviseRight_case_47 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_reviseRight_case_46(x1)(x2)(x3)(Curry.Module.Prelude.op_38_38(x3)(Curry.Module.RedBlackTree.c_isRed(Curry.Module.RedBlackTree.c_right(x2)(st))(st))(st))(st)
+c_reviseRight_case_47 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight_case_47(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_reviseRight_case_47 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight_case_47")(x)
+
+
+
+c_reviseRight_case_46 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP79'35col(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP83'35y(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP81'35z(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP82'35d(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP84'35c(x1)(st)))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP80'35x(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP85'35b(x1)(st))(Curry.Module.RedBlackTree.c_singleBlack(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP86'35a(x1)(st))(st)))
+c_reviseRight_case_46 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_reviseRight_case_45(x1)(x3)(st)
+c_reviseRight_case_46 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight_case_46(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_reviseRight_case_46 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight_case_46")(x)
+
+
+
+c_reviseRight_case_45 x1 x3@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.c_reviseRight_case_44(x1)(Curry.Module.Prelude.op_61_61(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP88'35col(x1)(st))(Curry.Module.RedBlackTree.C_Red)(st))(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP89'35x(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP90'35y(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP91'35c(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP92'35b(x1)(st)))(Curry.Module.RedBlackTree.c_singleBlack(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP93'35a(x1)(st))(st))
+c_reviseRight_case_45 x1 x3@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_reviseRight_case_43(x1)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_reviseRight_case_45 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight_case_45(x1)(x)(st))(i)(xs)(st)
+c_reviseRight_case_45 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight_case_45")(x)
+
+
+
+c_reviseRight_case_43 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP96'35y(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP97'35c(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP95'35x(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP98'35b(x1)(st))(Curry.Module.RedBlackTree.c_reviseRight'46_'35selFP99'35a(x1)(st)))(st))
+c_reviseRight_case_43 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight_case_43(x1)(x)(st))(i)(xs)(st)
+c_reviseRight_case_43 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight_case_43")(x)
+
+
+
+c_reviseRight_case_44 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Black
+c_reviseRight_case_44 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.C_DoublyBlack
+c_reviseRight_case_44 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseRight_case_44(x1)(x)(st))(i)(xs)(st)
+c_reviseRight_case_44 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseRight_case_44")(x)
+
+
+
+c_delBalanceR_case_49 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_reviseRight(x1)(st)
+c_delBalanceR_case_49 x1 x2@Curry.Module.Prelude.C_False st = x1
+c_delBalanceR_case_49 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_delBalanceR_case_49(x1)(x)(st))(i)(xs)(st)
+c_delBalanceR_case_49 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.delBalanceR_case_49")(x)
+
+
+
+c_reviseLeft'46_'35selFP68'35c_case_50 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x9
+c_reviseLeft'46_'35selFP68'35c_case_50 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP68'35c_case_50(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP68'35c_case_50 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP68#c_case_50")(x)
+
+
+
+c_reviseLeft'46_'35selFP67'35b_case_51 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x8
+c_reviseLeft'46_'35selFP67'35b_case_51 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP67'35b_case_51(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP67'35b_case_51 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP67#b_case_51")(x)
+
+
+
+c_reviseLeft'46_'35selFP66'35y_case_52 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x7
+c_reviseLeft'46_'35selFP66'35y_case_52 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP66'35y_case_52(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP66'35y_case_52 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP66#y_case_52")(x)
+
+
+
+c_reviseLeft'46_'35selFP65'35a_case_53 x4 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x4
+c_reviseLeft'46_'35selFP65'35a_case_53 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP65'35a_case_53(x4)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP65'35a_case_53 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP65#a_case_53")(x)
+
+
+
+c_reviseLeft'46_'35selFP64'35x_case_54 x3 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x3
+c_reviseLeft'46_'35selFP64'35x_case_54 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP64'35x_case_54(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP64'35x_case_54 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP64#x_case_54")(x)
+
+
+
+c_reviseLeft'46_'35selFP62'35c_case_55 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x9
+c_reviseLeft'46_'35selFP62'35c_case_55 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP62'35c_case_55(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP62'35c_case_55 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP62#c_case_55")(x)
+
+
+
+c_reviseLeft'46_'35selFP61'35b_case_56 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x8
+c_reviseLeft'46_'35selFP61'35b_case_56 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP61'35b_case_56(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP61'35b_case_56 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP61#b_case_56")(x)
+
+
+
+c_reviseLeft'46_'35selFP60'35y_case_57 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x7
+c_reviseLeft'46_'35selFP60'35y_case_57 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP60'35y_case_57(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP60'35y_case_57 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP60#y_case_57")(x)
+
+
+
+c_reviseLeft'46_'35selFP59'35a_case_58 x4 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x4
+c_reviseLeft'46_'35selFP59'35a_case_58 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP59'35a_case_58(x4)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP59'35a_case_58 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP59#a_case_58")(x)
+
+
+
+c_reviseLeft'46_'35selFP58'35x_case_59 x3 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x3
+c_reviseLeft'46_'35selFP58'35x_case_59 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP58'35x_case_59(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP58'35x_case_59 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP58#x_case_59")(x)
+
+
+
+c_reviseLeft'46_'35selFP57'35col_case_60 x2 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = x2
+c_reviseLeft'46_'35selFP57'35col_case_60 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP57'35col_case_60(x2)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP57'35col_case_60 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP57#col_case_60")(x)
+
+
+
+c_reviseLeft'46_'35selFP55'35d_case_62 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP55'35d_case_61(x9)(st)
+c_reviseLeft'46_'35selFP55'35d_case_62 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP55'35d_case_62(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP55'35d_case_62 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP55#d_case_62")(x)
+
+
+
+c_reviseLeft'46_'35selFP55'35d_case_61 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x13
+c_reviseLeft'46_'35selFP55'35d_case_61 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP55'35d_case_61(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP55'35d_case_61 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP55#d_case_61")(x)
+
+
+
+c_reviseLeft'46_'35selFP54'35c_case_64 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP54'35c_case_63(x9)(st)
+c_reviseLeft'46_'35selFP54'35c_case_64 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP54'35c_case_64(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP54'35c_case_64 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP54#c_case_64")(x)
+
+
+
+c_reviseLeft'46_'35selFP54'35c_case_63 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x12
+c_reviseLeft'46_'35selFP54'35c_case_63 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP54'35c_case_63(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP54'35c_case_63 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP54#c_case_63")(x)
+
+
+
+c_reviseLeft'46_'35selFP53'35z_case_66 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP53'35z_case_65(x9)(st)
+c_reviseLeft'46_'35selFP53'35z_case_66 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP53'35z_case_66(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP53'35z_case_66 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP53#z_case_66")(x)
+
+
+
+c_reviseLeft'46_'35selFP53'35z_case_65 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x11
+c_reviseLeft'46_'35selFP53'35z_case_65 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP53'35z_case_65(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP53'35z_case_65 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP53#z_case_65")(x)
+
+
+
+c_reviseLeft'46_'35selFP52'35b_case_68 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP52'35b_case_67(x8)(x9)(st)
+c_reviseLeft'46_'35selFP52'35b_case_68 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP52'35b_case_68(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP52'35b_case_68 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP52#b_case_68")(x)
+
+
+
+c_reviseLeft'46_'35selFP52'35b_case_67 x8 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x8
+c_reviseLeft'46_'35selFP52'35b_case_67 x8 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP52'35b_case_67(x8)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP52'35b_case_67 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP52#b_case_67")(x)
+
+
+
+c_reviseLeft'46_'35selFP51'35y_case_70 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP51'35y_case_69(x7)(x9)(st)
+c_reviseLeft'46_'35selFP51'35y_case_70 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP51'35y_case_70(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP51'35y_case_70 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP51#y_case_70")(x)
+
+
+
+c_reviseLeft'46_'35selFP51'35y_case_69 x7 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x7
+c_reviseLeft'46_'35selFP51'35y_case_69 x7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP51'35y_case_69(x7)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP51'35y_case_69 x7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP51#y_case_69")(x)
+
+
+
+c_reviseLeft'46_'35selFP50'35a_case_72 x4 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP50'35a_case_71(x4)(x9)(st)
+c_reviseLeft'46_'35selFP50'35a_case_72 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP50'35a_case_72(x4)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP50'35a_case_72 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP50#a_case_72")(x)
+
+
+
+c_reviseLeft'46_'35selFP50'35a_case_71 x4 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x4
+c_reviseLeft'46_'35selFP50'35a_case_71 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP50'35a_case_71(x4)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP50'35a_case_71 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP50#a_case_71")(x)
+
+
+
+c_reviseLeft'46_'35selFP49'35x_case_74 x3 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP49'35x_case_73(x3)(x9)(st)
+c_reviseLeft'46_'35selFP49'35x_case_74 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP49'35x_case_74(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP49'35x_case_74 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP49#x_case_74")(x)
+
+
+
+c_reviseLeft'46_'35selFP49'35x_case_73 x3 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x3
+c_reviseLeft'46_'35selFP49'35x_case_73 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP49'35x_case_73(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP49'35x_case_73 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP49#x_case_73")(x)
+
+
+
+c_reviseLeft'46_'35selFP48'35col_case_76 x2 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP48'35col_case_75(x2)(x9)(st)
+c_reviseLeft'46_'35selFP48'35col_case_76 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP48'35col_case_76(x2)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP48'35col_case_76 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP48#col_case_76")(x)
+
+
+
+c_reviseLeft'46_'35selFP48'35col_case_75 x2 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x2
+c_reviseLeft'46_'35selFP48'35col_case_75 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP48'35col_case_75(x2)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP48'35col_case_75 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP48#col_case_75")(x)
+
+
+
+c_reviseLeft'46_'35selFP46'35d_case_78 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP46'35d_case_77(x9)(x8)(st)
+c_reviseLeft'46_'35selFP46'35d_case_78 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP46'35d_case_78(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP46'35d_case_78 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP46#d_case_78")(x)
+
+
+
+c_reviseLeft'46_'35selFP46'35d_case_77 x9 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x9
+c_reviseLeft'46_'35selFP46'35d_case_77 x9 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP46'35d_case_77(x9)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP46'35d_case_77 x9 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP46#d_case_77")(x)
+
+
+
+c_reviseLeft'46_'35selFP45'35c_case_80 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP45'35c_case_79(x8)(st)
+c_reviseLeft'46_'35selFP45'35c_case_80 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP45'35c_case_80(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP45'35c_case_80 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP45#c_case_80")(x)
+
+
+
+c_reviseLeft'46_'35selFP45'35c_case_79 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x13
+c_reviseLeft'46_'35selFP45'35c_case_79 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP45'35c_case_79(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP45'35c_case_79 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP45#c_case_79")(x)
+
+
+
+c_reviseLeft'46_'35selFP44'35b_case_82 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP44'35b_case_81(x8)(st)
+c_reviseLeft'46_'35selFP44'35b_case_82 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP44'35b_case_82(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP44'35b_case_82 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP44#b_case_82")(x)
+
+
+
+c_reviseLeft'46_'35selFP44'35b_case_81 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x12
+c_reviseLeft'46_'35selFP44'35b_case_81 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP44'35b_case_81(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP44'35b_case_81 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP44#b_case_81")(x)
+
+
+
+c_reviseLeft'46_'35selFP43'35y_case_84 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP43'35y_case_83(x8)(st)
+c_reviseLeft'46_'35selFP43'35y_case_84 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP43'35y_case_84(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP43'35y_case_84 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP43#y_case_84")(x)
+
+
+
+c_reviseLeft'46_'35selFP43'35y_case_83 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x11
+c_reviseLeft'46_'35selFP43'35y_case_83 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP43'35y_case_83(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP43'35y_case_83 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP43#y_case_83")(x)
+
+
+
+c_reviseLeft'46_'35selFP42'35z_case_86 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP42'35z_case_85(x7)(x8)(st)
+c_reviseLeft'46_'35selFP42'35z_case_86 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP42'35z_case_86(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP42'35z_case_86 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP42#z_case_86")(x)
+
+
+
+c_reviseLeft'46_'35selFP42'35z_case_85 x7 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x7
+c_reviseLeft'46_'35selFP42'35z_case_85 x7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP42'35z_case_85(x7)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP42'35z_case_85 x7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP42#z_case_85")(x)
+
+
+
+c_reviseLeft'46_'35selFP41'35a_case_88 x4 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP41'35a_case_87(x4)(x8)(st)
+c_reviseLeft'46_'35selFP41'35a_case_88 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP41'35a_case_88(x4)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP41'35a_case_88 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP41#a_case_88")(x)
+
+
+
+c_reviseLeft'46_'35selFP41'35a_case_87 x4 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x4
+c_reviseLeft'46_'35selFP41'35a_case_87 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP41'35a_case_87(x4)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP41'35a_case_87 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP41#a_case_87")(x)
+
+
+
+c_reviseLeft'46_'35selFP40'35x_case_90 x3 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP40'35x_case_89(x3)(x8)(st)
+c_reviseLeft'46_'35selFP40'35x_case_90 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP40'35x_case_90(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP40'35x_case_90 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP40#x_case_90")(x)
+
+
+
+c_reviseLeft'46_'35selFP40'35x_case_89 x3 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x3
+c_reviseLeft'46_'35selFP40'35x_case_89 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP40'35x_case_89(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP40'35x_case_89 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP40#x_case_89")(x)
+
+
+
+c_reviseLeft'46_'35selFP39'35col_case_92 x2 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP39'35col_case_91(x2)(x8)(st)
+c_reviseLeft'46_'35selFP39'35col_case_92 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP39'35col_case_92(x2)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP39'35col_case_92 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP39#col_case_92")(x)
+
+
+
+c_reviseLeft'46_'35selFP39'35col_case_91 x2 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x2
+c_reviseLeft'46_'35selFP39'35col_case_91 x2 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP39'35col_case_91(x2)(x)(st))(i)(xs)(st)
+c_reviseLeft'46_'35selFP39'35col_case_91 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft._#selFP39#col_case_91")(x)
+
+
+
+c_reviseLeft_case_98 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x1
+c_reviseLeft_case_98 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_reviseLeft_case_97(x1)(x2)(x3)(Curry.Module.Prelude.op_38_38(x3)(Curry.Module.RedBlackTree.c_isRed(Curry.Module.RedBlackTree.c_left(x2)(st))(st))(st))(st)
+c_reviseLeft_case_98 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft_case_98(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft_case_98 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft_case_98")(x)
+
+
+
+c_reviseLeft_case_97 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP39'35col(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP43'35y(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP40'35x(x1)(st))(Curry.Module.RedBlackTree.c_singleBlack(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP41'35a(x1)(st))(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP44'35b(x1)(st)))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP42'35z(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP45'35c(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP46'35d(x1)(st)))
+c_reviseLeft_case_97 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_reviseLeft_case_96(x1)(x2)(x3)(Curry.Module.Prelude.op_38_38(x3)(Curry.Module.RedBlackTree.c_isRed(Curry.Module.RedBlackTree.c_right(x2)(st))(st))(st))(st)
+c_reviseLeft_case_97 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft_case_97(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft_case_97 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft_case_97")(x)
+
+
+
+c_reviseLeft_case_96 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP48'35col(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP51'35y(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP49'35x(x1)(st))(Curry.Module.RedBlackTree.c_singleBlack(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP50'35a(x1)(st))(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP52'35b(x1)(st)))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP53'35z(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP54'35c(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP55'35d(x1)(st)))
+c_reviseLeft_case_96 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_reviseLeft_case_95(x1)(x3)(st)
+c_reviseLeft_case_96 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft_case_96(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_reviseLeft_case_96 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft_case_96")(x)
+
+
+
+c_reviseLeft_case_95 x1 x3@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.c_reviseLeft_case_94(x1)(Curry.Module.Prelude.op_61_61(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP57'35col(x1)(st))(Curry.Module.RedBlackTree.C_Red)(st))(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP58'35x(x1)(st))(Curry.Module.RedBlackTree.c_singleBlack(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP59'35a(x1)(st))(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP60'35y(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP61'35b(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP62'35c(x1)(st)))
+c_reviseLeft_case_95 x1 x3@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_reviseLeft_case_93(x1)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_reviseLeft_case_95 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft_case_95(x1)(x)(st))(i)(xs)(st)
+c_reviseLeft_case_95 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft_case_95")(x)
+
+
+
+c_reviseLeft_case_93 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP66'35y(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP64'35x(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP65'35a(x1)(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP67'35b(x1)(st)))(st))(Curry.Module.RedBlackTree.c_reviseLeft'46_'35selFP68'35c(x1)(st))
+c_reviseLeft_case_93 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft_case_93(x1)(x)(st))(i)(xs)(st)
+c_reviseLeft_case_93 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft_case_93")(x)
+
+
+
+c_reviseLeft_case_94 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Black
+c_reviseLeft_case_94 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.C_DoublyBlack
+c_reviseLeft_case_94 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_reviseLeft_case_94(x1)(x)(st))(i)(xs)(st)
+c_reviseLeft_case_94 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.reviseLeft_case_94")(x)
+
+
+
+c_delBalanceL_case_99 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_reviseLeft(x1)(st)
+c_delBalanceL_case_99 x1 x2@Curry.Module.Prelude.C_False st = x1
+c_delBalanceL_case_99 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_delBalanceL_case_99(x1)(x)(st))(i)(xs)(st)
+c_delBalanceL_case_99 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.delBalanceL_case_99")(x)
+
+
+
+c_balanceR'46_'35selFP37'35d_case_101 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP37'35d_case_100(x9)(x8)(st)
+c_balanceR'46_'35selFP37'35d_case_101 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP37'35d_case_101(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP37'35d_case_101 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP37#d_case_101")(x)
+
+
+
+c_balanceR'46_'35selFP37'35d_case_100 x9 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x9
+c_balanceR'46_'35selFP37'35d_case_100 x9 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP37'35d_case_100(x9)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP37'35d_case_100 x9 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP37#d_case_100")(x)
+
+
+
+c_balanceR'46_'35selFP36'35c_case_103 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP36'35c_case_102(x8)(st)
+c_balanceR'46_'35selFP36'35c_case_103 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP36'35c_case_103(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP36'35c_case_103 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP36#c_case_103")(x)
+
+
+
+c_balanceR'46_'35selFP36'35c_case_102 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x13
+c_balanceR'46_'35selFP36'35c_case_102 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP36'35c_case_102(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP36'35c_case_102 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP36#c_case_102")(x)
+
+
+
+c_balanceR'46_'35selFP35'35b_case_105 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP35'35b_case_104(x8)(st)
+c_balanceR'46_'35selFP35'35b_case_105 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP35'35b_case_105(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP35'35b_case_105 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP35#b_case_105")(x)
+
+
+
+c_balanceR'46_'35selFP35'35b_case_104 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x12
+c_balanceR'46_'35selFP35'35b_case_104 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP35'35b_case_104(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP35'35b_case_104 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP35#b_case_104")(x)
+
+
+
+c_balanceR'46_'35selFP34'35y_case_107 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP34'35y_case_106(x8)(st)
+c_balanceR'46_'35selFP34'35y_case_107 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP34'35y_case_107(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP34'35y_case_107 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP34#y_case_107")(x)
+
+
+
+c_balanceR'46_'35selFP34'35y_case_106 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x11
+c_balanceR'46_'35selFP34'35y_case_106 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP34'35y_case_106(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP34'35y_case_106 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP34#y_case_106")(x)
+
+
+
+c_balanceR'46_'35selFP33'35z_case_109 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP33'35z_case_108(x7)(x8)(st)
+c_balanceR'46_'35selFP33'35z_case_109 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP33'35z_case_109(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP33'35z_case_109 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP33#z_case_109")(x)
+
+
+
+c_balanceR'46_'35selFP33'35z_case_108 x7 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x7
+c_balanceR'46_'35selFP33'35z_case_108 x7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP33'35z_case_108(x7)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP33'35z_case_108 x7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP33#z_case_108")(x)
+
+
+
+c_balanceR'46_'35selFP32'35a_case_111 x4 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP32'35a_case_110(x4)(x8)(st)
+c_balanceR'46_'35selFP32'35a_case_111 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP32'35a_case_111(x4)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP32'35a_case_111 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP32#a_case_111")(x)
+
+
+
+c_balanceR'46_'35selFP32'35a_case_110 x4 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x4
+c_balanceR'46_'35selFP32'35a_case_110 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP32'35a_case_110(x4)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP32'35a_case_110 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP32#a_case_110")(x)
+
+
+
+c_balanceR'46_'35selFP31'35x_case_113 x3 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP31'35x_case_112(x3)(x8)(st)
+c_balanceR'46_'35selFP31'35x_case_113 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP31'35x_case_113(x3)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP31'35x_case_113 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP31#x_case_113")(x)
+
+
+
+c_balanceR'46_'35selFP31'35x_case_112 x3 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x3
+c_balanceR'46_'35selFP31'35x_case_112 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP31'35x_case_112(x3)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP31'35x_case_112 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP31#x_case_112")(x)
+
+
+
+c_balanceR'46_'35selFP29'35d_case_115 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP29'35d_case_114(x9)(st)
+c_balanceR'46_'35selFP29'35d_case_115 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP29'35d_case_115(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP29'35d_case_115 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP29#d_case_115")(x)
+
+
+
+c_balanceR'46_'35selFP29'35d_case_114 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x13
+c_balanceR'46_'35selFP29'35d_case_114 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP29'35d_case_114(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP29'35d_case_114 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP29#d_case_114")(x)
+
+
+
+c_balanceR'46_'35selFP28'35c_case_117 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP28'35c_case_116(x9)(st)
+c_balanceR'46_'35selFP28'35c_case_117 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP28'35c_case_117(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP28'35c_case_117 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP28#c_case_117")(x)
+
+
+
+c_balanceR'46_'35selFP28'35c_case_116 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x12
+c_balanceR'46_'35selFP28'35c_case_116 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP28'35c_case_116(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP28'35c_case_116 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP28#c_case_116")(x)
+
+
+
+c_balanceR'46_'35selFP27'35z_case_119 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP27'35z_case_118(x9)(st)
+c_balanceR'46_'35selFP27'35z_case_119 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP27'35z_case_119(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP27'35z_case_119 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP27#z_case_119")(x)
+
+
+
+c_balanceR'46_'35selFP27'35z_case_118 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x11
+c_balanceR'46_'35selFP27'35z_case_118 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP27'35z_case_118(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP27'35z_case_118 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP27#z_case_118")(x)
+
+
+
+c_balanceR'46_'35selFP26'35b_case_121 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP26'35b_case_120(x8)(x9)(st)
+c_balanceR'46_'35selFP26'35b_case_121 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP26'35b_case_121(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP26'35b_case_121 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP26#b_case_121")(x)
+
+
+
+c_balanceR'46_'35selFP26'35b_case_120 x8 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x8
+c_balanceR'46_'35selFP26'35b_case_120 x8 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP26'35b_case_120(x8)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP26'35b_case_120 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP26#b_case_120")(x)
+
+
+
+c_balanceR'46_'35selFP25'35y_case_123 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP25'35y_case_122(x7)(x9)(st)
+c_balanceR'46_'35selFP25'35y_case_123 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP25'35y_case_123(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP25'35y_case_123 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP25#y_case_123")(x)
+
+
+
+c_balanceR'46_'35selFP25'35y_case_122 x7 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x7
+c_balanceR'46_'35selFP25'35y_case_122 x7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP25'35y_case_122(x7)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP25'35y_case_122 x7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP25#y_case_122")(x)
+
+
+
+c_balanceR'46_'35selFP24'35a_case_125 x4 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP24'35a_case_124(x4)(x9)(st)
+c_balanceR'46_'35selFP24'35a_case_125 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP24'35a_case_125(x4)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP24'35a_case_125 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP24#a_case_125")(x)
+
+
+
+c_balanceR'46_'35selFP24'35a_case_124 x4 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x4
+c_balanceR'46_'35selFP24'35a_case_124 x4 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP24'35a_case_124(x4)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP24'35a_case_124 x4 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP24#a_case_124")(x)
+
+
+
+c_balanceR'46_'35selFP23'35x_case_127 x3 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceR'46_'35selFP23'35x_case_126(x3)(x9)(st)
+c_balanceR'46_'35selFP23'35x_case_127 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP23'35x_case_127(x3)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP23'35x_case_127 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP23#x_case_127")(x)
+
+
+
+c_balanceR'46_'35selFP23'35x_case_126 x3 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x3
+c_balanceR'46_'35selFP23'35x_case_126 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR'46_'35selFP23'35x_case_126(x3)(x)(st))(i)(xs)(st)
+c_balanceR'46_'35selFP23'35x_case_126 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR._#selFP23#x_case_126")(x)
+
+
+
+c_balanceR_case_130 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP25'35y(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP23'35x(x1)(st))(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP24'35a(x1)(st))(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP26'35b(x1)(st)))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP27'35z(x1)(st))(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP28'35c(x1)(st))(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP29'35d(x1)(st)))
+c_balanceR_case_130 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_balanceR_case_129(x1)(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.RedBlackTree.c_isRed(x2)(st))(Curry.Module.RedBlackTree.c_isRed(Curry.Module.RedBlackTree.c_left(x2)(st))(st))(st))(st)
+c_balanceR_case_130 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR_case_130(x1)(x2)(x)(st))(i)(xs)(st)
+c_balanceR_case_130 x1 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR_case_130")(x)
+
+
+
+c_balanceR_case_129 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP34'35y(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP31'35x(x1)(st))(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP32'35a(x1)(st))(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP35'35b(x1)(st)))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP33'35z(x1)(st))(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP36'35c(x1)(st))(Curry.Module.RedBlackTree.c_balanceR'46_'35selFP37'35d(x1)(st)))
+c_balanceR_case_129 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_balanceR_case_128(x1)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_balanceR_case_129 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR_case_129(x1)(x2)(x)(st))(i)(xs)(st)
+c_balanceR_case_129 x1 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR_case_129")(x)
+
+
+
+c_balanceR_case_128 x1 x2@Curry.Module.Prelude.C_True st = x1
+c_balanceR_case_128 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceR_case_128(x1)(x)(st))(i)(xs)(st)
+c_balanceR_case_128 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceR_case_128")(x)
+
+
+
+c_balanceL'46_'35selFP21'35d_case_132 x5 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP21'35d_case_131(x5)(x9)(st)
+c_balanceL'46_'35selFP21'35d_case_132 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP21'35d_case_132(x5)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP21'35d_case_132 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP21#d_case_132")(x)
+
+
+
+c_balanceL'46_'35selFP21'35d_case_131 x5 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x5
+c_balanceL'46_'35selFP21'35d_case_131 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP21'35d_case_131(x5)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP21'35d_case_131 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP21#d_case_131")(x)
+
+
+
+c_balanceL'46_'35selFP20'35c_case_134 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP20'35c_case_133(x9)(st)
+c_balanceL'46_'35selFP20'35c_case_134 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP20'35c_case_134(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP20'35c_case_134 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP20#c_case_134")(x)
+
+
+
+c_balanceL'46_'35selFP20'35c_case_133 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x13
+c_balanceL'46_'35selFP20'35c_case_133 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP20'35c_case_133(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP20'35c_case_133 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP20#c_case_133")(x)
+
+
+
+c_balanceL'46_'35selFP19'35b_case_136 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP19'35b_case_135(x9)(st)
+c_balanceL'46_'35selFP19'35b_case_136 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP19'35b_case_136(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP19'35b_case_136 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP19#b_case_136")(x)
+
+
+
+c_balanceL'46_'35selFP19'35b_case_135 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x12
+c_balanceL'46_'35selFP19'35b_case_135 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP19'35b_case_135(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP19'35b_case_135 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP19#b_case_135")(x)
+
+
+
+c_balanceL'46_'35selFP18'35y_case_138 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP18'35y_case_137(x9)(st)
+c_balanceL'46_'35selFP18'35y_case_138 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP18'35y_case_138(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP18'35y_case_138 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP18#y_case_138")(x)
+
+
+
+c_balanceL'46_'35selFP18'35y_case_137 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x11
+c_balanceL'46_'35selFP18'35y_case_137 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP18'35y_case_137(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP18'35y_case_137 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP18#y_case_137")(x)
+
+
+
+c_balanceL'46_'35selFP17'35a_case_140 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP17'35a_case_139(x8)(x9)(st)
+c_balanceL'46_'35selFP17'35a_case_140 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP17'35a_case_140(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP17'35a_case_140 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP17#a_case_140")(x)
+
+
+
+c_balanceL'46_'35selFP17'35a_case_139 x8 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x8
+c_balanceL'46_'35selFP17'35a_case_139 x8 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP17'35a_case_139(x8)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP17'35a_case_139 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP17#a_case_139")(x)
+
+
+
+c_balanceL'46_'35selFP16'35x_case_142 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP16'35x_case_141(x7)(x9)(st)
+c_balanceL'46_'35selFP16'35x_case_142 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP16'35x_case_142(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP16'35x_case_142 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP16#x_case_142")(x)
+
+
+
+c_balanceL'46_'35selFP16'35x_case_141 x7 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x7
+c_balanceL'46_'35selFP16'35x_case_141 x7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP16'35x_case_141(x7)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP16'35x_case_141 x7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP16#x_case_141")(x)
+
+
+
+c_balanceL'46_'35selFP15'35z_case_144 x3 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP15'35z_case_143(x3)(x9)(st)
+c_balanceL'46_'35selFP15'35z_case_144 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP15'35z_case_144(x3)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP15'35z_case_144 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP15#z_case_144")(x)
+
+
+
+c_balanceL'46_'35selFP15'35z_case_143 x3 x9@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x3
+c_balanceL'46_'35selFP15'35z_case_143 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP15'35z_case_143(x3)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP15'35z_case_143 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP15#z_case_143")(x)
+
+
+
+c_balanceL'46_'35selFP13'35d_case_146 x5 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP13'35d_case_145(x5)(x8)(st)
+c_balanceL'46_'35selFP13'35d_case_146 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP13'35d_case_146(x5)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP13'35d_case_146 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP13#d_case_146")(x)
+
+
+
+c_balanceL'46_'35selFP13'35d_case_145 x5 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x5
+c_balanceL'46_'35selFP13'35d_case_145 x5 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP13'35d_case_145(x5)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP13'35d_case_145 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP13#d_case_145")(x)
+
+
+
+c_balanceL'46_'35selFP12'35c_case_148 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP12'35c_case_147(x9)(x8)(st)
+c_balanceL'46_'35selFP12'35c_case_148 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP12'35c_case_148(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP12'35c_case_148 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP12#c_case_148")(x)
+
+
+
+c_balanceL'46_'35selFP12'35c_case_147 x9 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x9
+c_balanceL'46_'35selFP12'35c_case_147 x9 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP12'35c_case_147(x9)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP12'35c_case_147 x9 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP12#c_case_147")(x)
+
+
+
+c_balanceL'46_'35selFP11'35b_case_150 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP11'35b_case_149(x8)(st)
+c_balanceL'46_'35selFP11'35b_case_150 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP11'35b_case_150(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP11'35b_case_150 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP11#b_case_150")(x)
+
+
+
+c_balanceL'46_'35selFP11'35b_case_149 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x13
+c_balanceL'46_'35selFP11'35b_case_149 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP11'35b_case_149(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP11'35b_case_149 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP11#b_case_149")(x)
+
+
+
+c_balanceL'46_'35selFP10'35a_case_152 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP10'35a_case_151(x8)(st)
+c_balanceL'46_'35selFP10'35a_case_152 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP10'35a_case_152(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP10'35a_case_152 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP10#a_case_152")(x)
+
+
+
+c_balanceL'46_'35selFP10'35a_case_151 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x12
+c_balanceL'46_'35selFP10'35a_case_151 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP10'35a_case_151(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP10'35a_case_151 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP10#a_case_151")(x)
+
+
+
+c_balanceL'46_'35selFP9'35x_case_154 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP9'35x_case_153(x8)(st)
+c_balanceL'46_'35selFP9'35x_case_154 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP9'35x_case_154(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP9'35x_case_154 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP9#x_case_154")(x)
+
+
+
+c_balanceL'46_'35selFP9'35x_case_153 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x11
+c_balanceL'46_'35selFP9'35x_case_153 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP9'35x_case_153(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP9'35x_case_153 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP9#x_case_153")(x)
+
+
+
+c_balanceL'46_'35selFP8'35y_case_156 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP8'35y_case_155(x7)(x8)(st)
+c_balanceL'46_'35selFP8'35y_case_156 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP8'35y_case_156(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP8'35y_case_156 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP8#y_case_156")(x)
+
+
+
+c_balanceL'46_'35selFP8'35y_case_155 x7 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x7
+c_balanceL'46_'35selFP8'35y_case_155 x7 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP8'35y_case_155(x7)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP8'35y_case_155 x7 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP8#y_case_155")(x)
+
+
+
+c_balanceL'46_'35selFP7'35z_case_158 x3 x4@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.RedBlackTree.c_balanceL'46_'35selFP7'35z_case_157(x3)(x8)(st)
+c_balanceL'46_'35selFP7'35z_case_158 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP7'35z_case_158(x3)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP7'35z_case_158 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP7#z_case_158")(x)
+
+
+
+c_balanceL'46_'35selFP7'35z_case_157 x3 x8@(Curry.Module.RedBlackTree.C_Tree x10 x11 x12 x13) st = x3
+c_balanceL'46_'35selFP7'35z_case_157 x3 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL'46_'35selFP7'35z_case_157(x3)(x)(st))(i)(xs)(st)
+c_balanceL'46_'35selFP7'35z_case_157 x3 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL._#selFP7#z_case_157")(x)
+
+
+
+c_balanceL_case_161 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP8'35y(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP9'35x(x1)(st))(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP10'35a(x1)(st))(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP11'35b(x1)(st)))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP7'35z(x1)(st))(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP12'35c(x1)(st))(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP13'35d(x1)(st)))
+c_balanceL_case_161 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_balanceL_case_160(x1)(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.RedBlackTree.c_isRed(x2)(st))(Curry.Module.RedBlackTree.c_isRed(Curry.Module.RedBlackTree.c_right(x2)(st))(st))(st))(st)
+c_balanceL_case_161 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL_case_161(x1)(x2)(x)(st))(i)(xs)(st)
+c_balanceL_case_161 x1 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL_case_161")(x)
+
+
+
+c_balanceL_case_160 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Red)(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP18'35y(x1)(st))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP16'35x(x1)(st))(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP17'35a(x1)(st))(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP19'35b(x1)(st)))(Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP15'35z(x1)(st))(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP20'35c(x1)(st))(Curry.Module.RedBlackTree.c_balanceL'46_'35selFP21'35d(x1)(st)))
+c_balanceL_case_160 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_balanceL_case_159(x1)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_balanceL_case_160 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL_case_160(x1)(x2)(x)(st))(i)(xs)(st)
+c_balanceL_case_160 x1 x2 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL_case_160")(x)
+
+
+
+c_balanceL_case_159 x1 x2@Curry.Module.Prelude.C_True st = x1
+c_balanceL_case_159 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_balanceL_case_159(x1)(x)(st))(i)(xs)(st)
+c_balanceL_case_159 x1 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.balanceL_case_159")(x)
+
+
+
+c_singleBlack_case_162 x3 x4 x5 x2@Curry.Module.RedBlackTree.C_DoublyBlack st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(x3)(x4)(x5)
+c_singleBlack_case_162 x3 x4 x5 (Curry.Module.RedBlackTree.C_ColorOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_singleBlack_case_162(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_singleBlack_case_162 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.singleBlack_case_162")(x)
+
+
+
+c_deleteTree'46rightMost'4656_case_163 x3 x5 x6@Curry.Module.Prelude.C_True st = x3
+c_deleteTree'46rightMost'4656_case_163 x3 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_deleteTree'46rightMost'4656(x5)(st)
+c_deleteTree'46rightMost'4656_case_163 x3 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree'46rightMost'4656_case_163(x3)(x5)(x)(st))(i)(xs)(st)
+c_deleteTree'46rightMost'4656_case_163 x3 x5 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree.rightMost.56_case_163")(x)
+
+
+
+c_deleteTree'46addColor'4656_case_165 x2@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.RedBlackTree.C_Empty
+c_deleteTree'46addColor'4656_case_165 x2@(Curry.Module.RedBlackTree.C_Tree x3 x4 x5 x6) st = Curry.Module.RedBlackTree.c_deleteTree'46addColor'4656_case_164(x4)(x5)(x6)(x3)(st)
+c_deleteTree'46addColor'4656_case_165 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree'46addColor'4656_case_165(x)(st))(i)(xs)(st)
+c_deleteTree'46addColor'4656_case_165 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree.addColor.56_case_165")(x)
+
+
+
+c_deleteTree'46addColor'4656_case_164 x4 x5 x6 x3@Curry.Module.RedBlackTree.C_Red st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_Black)(x4)(x5)(x6)
+c_deleteTree'46addColor'4656_case_164 x4 x5 x6 x3@Curry.Module.RedBlackTree.C_Black st = Curry.Module.RedBlackTree.C_Tree(Curry.Module.RedBlackTree.C_DoublyBlack)(x4)(x5)(x6)
+c_deleteTree'46addColor'4656_case_164 x4 x5 x6 (Curry.Module.RedBlackTree.C_ColorOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree'46addColor'4656_case_164(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_deleteTree'46addColor'4656_case_164 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree.addColor.56_case_164")(x)
+
+
+
+c_deleteTree_case_170 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_deleteTree_case_169(x1)(x2)(x5)(x7)(x8)(Curry.Module.Prelude.op_61_61(x7)(Curry.Module.RedBlackTree.C_Empty)(st))(st)
+c_deleteTree_case_170 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_deleteTree_case_167(x1)(x2)(x3)(x5)(x6)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x3)(st))(x6)(st))(st)
+c_deleteTree_case_170 x1 x2 x3 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree_case_170(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_deleteTree_case_170 x1 x2 x3 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree_case_170")(x)
+
+
+
+c_deleteTree_case_167 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_delBalanceL(Curry.Module.RedBlackTree.C_Tree(x5)(x6)(Curry.Module.RedBlackTree.c_deleteTree(x1)(x2)(x3)(x7)(st))(x8))(st)
+c_deleteTree_case_167 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_deleteTree_case_166(x1)(x2)(x3)(x5)(x6)(x7)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_deleteTree_case_167 x1 x2 x3 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree_case_167(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_deleteTree_case_167 x1 x2 x3 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree_case_167")(x)
+
+
+
+c_deleteTree_case_166 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_delBalanceR(Curry.Module.RedBlackTree.C_Tree(x5)(x6)(x7)(Curry.Module.RedBlackTree.c_deleteTree(x1)(x2)(x3)(x8)(st)))(st)
+c_deleteTree_case_166 x1 x2 x3 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree_case_166(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_deleteTree_case_166 x1 x2 x3 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree_case_166")(x)
+
+
+
+c_deleteTree_case_169 x1 x2 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_deleteTree'46addColor'4656(x5)(x8)(st)
+c_deleteTree_case_169 x1 x2 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_deleteTree_case_168(x1)(x2)(x5)(x7)(x8)(Curry.Module.Prelude.op_61_61(x8)(Curry.Module.RedBlackTree.C_Empty)(st))(st)
+c_deleteTree_case_169 x1 x2 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree_case_169(x1)(x2)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_deleteTree_case_169 x1 x2 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree_case_169")(x)
+
+
+
+c_deleteTree_case_168 x1 x2 x5 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_deleteTree'46addColor'4656(x5)(x7)(st)
+c_deleteTree_case_168 x1 x2 x5 x7 x8 x9@Curry.Module.Prelude.C_False st = let {x9 = Curry.Module.RedBlackTree.c_deleteTree'46rightMost'4656(x7)(st)} in Curry.Module.RedBlackTree.c_delBalanceL(Curry.Module.RedBlackTree.C_Tree(x5)(x9)(Curry.Module.RedBlackTree.c_deleteTree(x1)(x2)(x9)(x7)(st))(x8))(st)
+c_deleteTree_case_168 x1 x2 x5 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_deleteTree_case_168(x1)(x2)(x5)(x7)(x8)(x)(st))(i)(xs)(st)
+c_deleteTree_case_168 x1 x2 x5 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.deleteTree_case_168")(x)
+
+
+
+c_updateTree'46upd'4635_case_173 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.C_Tree(x5)(x1)(x7)(x8)
+c_updateTree'46upd'4635_case_173 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_updateTree'46upd'4635_case_172(x1)(x2)(x3)(x5)(x6)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(x1)(st))(x6)(st))(st)
+c_updateTree'46upd'4635_case_173 x1 x2 x3 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_updateTree'46upd'4635_case_173(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_updateTree'46upd'4635_case_173 x1 x2 x3 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.updateTree.upd.35_case_173")(x)
+
+
+
+c_updateTree'46upd'4635_case_172 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_balanceL(Curry.Module.RedBlackTree.C_Tree(x5)(x6)(Curry.Module.RedBlackTree.c_updateTree'46upd'4635(x1)(x2)(x3)(x7)(st))(x8))(st)
+c_updateTree'46upd'4635_case_172 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_updateTree'46upd'4635_case_171(x1)(x2)(x3)(x5)(x6)(x7)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_updateTree'46upd'4635_case_172 x1 x2 x3 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_updateTree'46upd'4635_case_172(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_updateTree'46upd'4635_case_172 x1 x2 x3 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.updateTree.upd.35_case_172")(x)
+
+
+
+c_updateTree'46upd'4635_case_171 x1 x2 x3 x5 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_balanceR(Curry.Module.RedBlackTree.C_Tree(x5)(x6)(x7)(Curry.Module.RedBlackTree.c_updateTree'46upd'4635(x1)(x2)(x3)(x8)(st)))(st)
+c_updateTree'46upd'4635_case_171 x1 x2 x3 x5 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_updateTree'46upd'4635_case_171(x1)(x2)(x3)(x5)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_updateTree'46upd'4635_case_171 x1 x2 x3 x5 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.updateTree.upd.35_case_171")(x)
+
+
+
+c_lookupTree_case_176 x1 x2 x3 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Just(x6)
+c_lookupTree_case_176 x1 x2 x3 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_lookupTree_case_175(x1)(x2)(x3)(x6)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x3)(st))(x6)(st))(st)
+c_lookupTree_case_176 x1 x2 x3 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_lookupTree_case_176(x1)(x2)(x3)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_lookupTree_case_176 x1 x2 x3 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.lookupTree_case_176")(x)
+
+
+
+c_lookupTree_case_175 x1 x2 x3 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_lookupTree(x1)(x2)(x3)(x7)(st)
+c_lookupTree_case_175 x1 x2 x3 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.RedBlackTree.c_lookupTree_case_174(x1)(x2)(x3)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_lookupTree_case_175 x1 x2 x3 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_lookupTree_case_175(x1)(x2)(x3)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_lookupTree_case_175 x1 x2 x3 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.lookupTree_case_175")(x)
+
+
+
+c_lookupTree_case_174 x1 x2 x3 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.RedBlackTree.c_lookupTree(x1)(x2)(x3)(x8)(st)
+c_lookupTree_case_174 x1 x2 x3 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_lookupTree_case_174(x1)(x2)(x3)(x8)(x)(st))(i)(xs)(st)
+c_lookupTree_case_174 x1 x2 x3 x8 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.lookupTree_case_174")(x)
+
+
+
+c_isEmpty_case_177 x5@Curry.Module.RedBlackTree.C_Empty st = Curry.Module.Prelude.C_True
+c_isEmpty_case_177 x5@(Curry.Module.RedBlackTree.C_Tree x6 x7 x8 x9) st = Curry.Module.Prelude.C_False
+c_isEmpty_case_177 (Curry.Module.RedBlackTree.C_TreeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.RedBlackTree.c_isEmpty_case_177(x)(st))(i)(xs)(st)
+c_isEmpty_case_177 x st = Curry.RunTimeSystem.patternFail("RedBlackTree.isEmpty_case_177")(x)
+
+
diff --git a/dist/build/Curry/Module/SetRBT.hs b/dist/build/Curry/Module/SetRBT.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/SetRBT.hs
@@ -0,0 +1,75 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.SetRBT (module Curry.Module.SetRBT) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Maybe
+import Curry.Module.Prelude
+import Curry.Module.RedBlackTree
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_SetRBT t0 = Curry.Module.RedBlackTree.C_RedBlackTree t0
+
+c_emptySetRBT :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0)
+c_emptySetRBT st = Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_empty(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.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_61_61)))
+
+
+
+c_elemRBT :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_elemRBT x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Maybe.c_isJust))(Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_lookup(x1)))(st)
+
+
+
+c_insertRBT :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0))
+c_insertRBT st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.RedBlackTree.c_update)
+
+
+
+c_insertMultiRBT :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0)
+c_insertMultiRBT x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_setInsertEquivalence(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.op_46(Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_update(x1)))(Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_setInsertEquivalence(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.SetRBT.c_insertMultiRBT'46_'35lambda2))))(st))(st)
+
+
+
+c_insertMultiRBT'46_'35lambda2 :: (Curry t27) => t27 -> t27 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_insertMultiRBT'46_'35lambda2 x1 x2 st = Curry.Module.Prelude.C_False
+
+
+
+c_deleteRBT :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0))
+c_deleteRBT st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.RedBlackTree.c_delete)
+
+
+
+c_setRBT2list :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0)
+c_setRBT2list st = Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_tree2list)
+
+
+
+c_unionRBT :: (Curry t0) => (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0
+c_unionRBT x1 x2 st = Curry.Module.Prelude.c_foldr(Curry.Module.SetRBT.c_insertRBT(st))(x2)(Curry.Module.Prelude.c_apply(Curry.Module.SetRBT.c_setRBT2list(st))(x1)(st))(st)
+
+
+
+c_intersectRBT :: (Curry t0) => (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> (Curry.Module.RedBlackTree.C_RedBlackTree t0) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree t0
+c_intersectRBT x1 x2 st = Curry.Module.Prelude.c_foldr(Curry.Module.SetRBT.c_insertRBT(st))(Curry.Module.RedBlackTree.c_newTreeLike(x1)(st))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.pf(Curry.Module.SetRBT.c_intersectRBT'46_'35lambda3(x2)))(Curry.Module.Prelude.c_apply(Curry.Module.SetRBT.c_setRBT2list(st))(x1)(st))(st))(st)
+
+
+
+c_intersectRBT'46_'35lambda3 :: (Curry t46) => (Curry.Module.RedBlackTree.C_RedBlackTree t46) -> t46 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_intersectRBT'46_'35lambda3 x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.SetRBT.c_elemRBT(x2)(st))(x1)(st)
+
+
+
+c_sortRBT :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0))
+c_sortRBT st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.RedBlackTree.c_sort)
+
+
diff --git a/dist/build/Curry/Module/Socket.hs b/dist/build/Curry/Module/Socket.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Socket.hs
@@ -0,0 +1,128 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Socket (module Curry.Module.Socket) where
+
+import Curry.RunTimeSystem
+import Curry.Module.IO
+import Curry.Module.Prelude
+import Curry.Module.System
+
+
+
+-- begin included
+
+
+
+import Network
+import Network.Socket 
+import Control.Concurrent
+import System.IO (Handle)
+
+type C_Socket = Prim Socket
+
+instance Read Socket where
+
+instance Generate Socket where
+  genFree  = error "no random sockets"
+  maxArity = error "no narrowing on sockets"
+
+instance ConvertCH C_Int PortID where
+  toCurry (PortNumber i) = toCurry (toInteger i)
+  fromCurry i = PortNumber (fromInteger (fromCurry i))
+
+prim_listenOn :: C_Int -> Result (C_IO C_Socket)
+prim_listenOn  = Curry.Module.Prelude.ioFunc1 listenOn 
+
+listenOnFresh :: Result (C_IO (T2 C_Int C_Socket))
+listenOnFresh  = Curry.Module.Prelude.ioFunc0 listenOnFreshPort
+
+listenOnFreshPort :: IO (PortID,Socket)
+listenOnFreshPort = do
+  s <- listenOn (PortNumber aNY_PORT)
+  p <- Network.socketPort s
+  Prelude.return (p,s)
+
+
+prim_socketListen :: C_Socket -> C_Int -> Result (C_IO T0)
+prim_socketListen  = Curry.Module.Prelude.ioFunc2 listen
+
+prim_socketAccept :: C_Socket -> Result (C_IO (T2 (List C_Char) C_Handle))
+prim_socketAccept  = 
+  ioFunc1 (\ s -> do {(h,s,_) <- Network.accept s; Prelude.return (s,One h)})
+
+prim_waitForSocketAccept :: C_Socket -> C_Int -> Result (C_IO (C_Maybe (T2 (List C_Char) C_Handle)))
+prim_waitForSocketAccept  = Curry.Module.Prelude.ioFunc2 wait
+
+wait :: Socket -> Int -> IO (Maybe (String,IOHandle))
+wait s t = do
+  mv <- newEmptyMVar
+  tacc <- forkIO (do {(h,s,_) <- Network.accept s; putMVar mv (Just (s,One h))})
+  ttim <- forkIO (do {threadDelay (t*1000); putMVar mv Nothing})
+  res <- takeMVar mv
+  maybe (killThread tacc) (\_ -> killThread ttim) res
+  Prelude.return res
+
+prim_connectToSocket :: List C_Char -> C_Int -> Result (C_IO C_Handle)
+prim_connectToSocket  = 
+  ioFunc2 (\ s i -> do {ct <- connectTo s i; Prelude.return (One ct)})
+
+
+
+-- end included
+
+c_listenOn :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Socket.C_Socket
+c_listenOn x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Socket.c_prim_listenOn))(x1)(st)
+
+
+
+c_socketListen :: Curry.Module.Socket.C_Socket -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_socketListen x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Socket.c_prim_socketListen))(x1)(st))(x2)(st)
+
+
+
+c_socketAccept :: Curry.Module.Socket.C_Socket -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.IO.C_Handle)
+c_socketAccept x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Socket.c_prim_socketAccept))(x1)(st)
+
+
+
+c_waitForSocketAccept :: Curry.Module.Socket.C_Socket -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.IO.C_Handle))
+c_waitForSocketAccept x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Socket.c_prim_waitForSocketAccept))(x1)(st))(x2)(st)
+
+
+
+c_connectToSocket :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.IO.C_Handle
+c_connectToSocket x1 x2 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Socket.c_prim_connectToSocket))(x1)(st))(x2)(st)
+
+
+
+c_prim_listenOn :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Socket.C_Socket
+c_prim_listenOn x1 st = Curry.Module.Socket.prim_listenOn(x1)(st)
+
+
+
+c_listenOnFresh :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Socket.C_Socket)
+c_listenOnFresh st = Curry.Module.Socket.listenOnFresh(st)
+
+
+
+c_prim_socketListen :: Curry.Module.Socket.C_Socket -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_socketListen x1 x2 st = Curry.Module.Socket.prim_socketListen(x1)(x2)(st)
+
+
+
+c_prim_socketAccept :: Curry.Module.Socket.C_Socket -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.IO.C_Handle)
+c_prim_socketAccept x1 st = Curry.Module.Socket.prim_socketAccept(x1)(st)
+
+
+
+c_prim_waitForSocketAccept :: Curry.Module.Socket.C_Socket -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) Curry.Module.IO.C_Handle))
+c_prim_waitForSocketAccept x1 x2 st = Curry.Module.Socket.prim_waitForSocketAccept(x1)(x2)(st)
+
+
+
+c_prim_connectToSocket :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.IO.C_Handle
+c_prim_connectToSocket x1 x2 st = Curry.Module.Socket.prim_connectToSocket(x1)(x2)(st)
+
+
diff --git a/dist/build/Curry/Module/Sort.hs b/dist/build/Curry/Module/Sort.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Sort.hs
@@ -0,0 +1,367 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Sort (module Curry.Module.Sort) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Char
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_quickSort :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_quickSort x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_quickSort x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = let {x5 = Curry.Module.Sort.c_quickSort'46split'466(x1)(x3)(x4)(st)} in Curry.Module.Prelude.op_43_43(Curry.Module.Sort.c_quickSort(x1)(Curry.Module.Sort.c_quickSort'46_'35selFP6'35l(x5)(st))(st))((Curry.Module.Prelude.:<)(x3)(Curry.Module.Sort.c_quickSort(x1)(Curry.Module.Sort.c_quickSort'46_'35selFP7'35r(x5)(st))(st)))(st)
+c_quickSort x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_quickSort(x1)(x)(st))(i)(xs)(st)
+c_quickSort x1 x st = Curry.RunTimeSystem.patternFail("Sort.quickSort")(x)
+
+
+
+c_quickSort'46split'466 :: (Curry t8) => (Curry.Module.Prelude.Prim (t8 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t8 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> t8 -> (Curry.Module.Prelude.List t8) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t8) (Curry.Module.Prelude.List t8)
+c_quickSort'46split'466 x1 x2 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.List)
+c_quickSort'46split'466 x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = let {x6 = Curry.Module.Sort.c_quickSort'46split'466(x1)(x2)(x5)(st)} in let {x7 = Curry.Module.Sort.c_quickSort'46split'466'46_'35selFP3'35l(x6)(st)} in let {x8 = Curry.Module.Sort.c_quickSort'46split'466'46_'35selFP4'35r(x6)(st)} in Curry.Module.Sort.c_quickSort'46split'466_case_30(x1)(x2)(x4)(x7)(x8)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(x2)(st))(st)
+c_quickSort'46split'466 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_quickSort'46split'466(x1)(x2)(x)(st))(i)(xs)(st)
+c_quickSort'46split'466 x1 x2 x st = Curry.RunTimeSystem.patternFail("Sort.quickSort.split.6")(x)
+
+
+
+c_quickSort'46split'466'46_'35selFP3'35l :: (Curry t8) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t8) (Curry.Module.Prelude.List t8)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t8
+c_quickSort'46split'466'46_'35selFP3'35l x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_quickSort'46split'466'46_'35selFP3'35l (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_quickSort'46split'466'46_'35selFP3'35l(x)(st))(i)(xs)(st)
+c_quickSort'46split'466'46_'35selFP3'35l x st = Curry.RunTimeSystem.patternFail("Sort.quickSort.split.6._#selFP3#l")(x)
+
+
+
+c_quickSort'46split'466'46_'35selFP4'35r :: (Curry t8) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t8) (Curry.Module.Prelude.List t8)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t8
+c_quickSort'46split'466'46_'35selFP4'35r x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_quickSort'46split'466'46_'35selFP4'35r (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_quickSort'46split'466'46_'35selFP4'35r(x)(st))(i)(xs)(st)
+c_quickSort'46split'466'46_'35selFP4'35r x st = Curry.RunTimeSystem.patternFail("Sort.quickSort.split.6._#selFP4#r")(x)
+
+
+
+c_quickSort'46_'35selFP6'35l :: (Curry t8) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t8) (Curry.Module.Prelude.List t8)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t8
+c_quickSort'46_'35selFP6'35l x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_quickSort'46_'35selFP6'35l (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_quickSort'46_'35selFP6'35l(x)(st))(i)(xs)(st)
+c_quickSort'46_'35selFP6'35l x st = Curry.RunTimeSystem.patternFail("Sort.quickSort._#selFP6#l")(x)
+
+
+
+c_quickSort'46_'35selFP7'35r :: (Curry t8) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t8) (Curry.Module.Prelude.List t8)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t8
+c_quickSort'46_'35selFP7'35r x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_quickSort'46_'35selFP7'35r (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_quickSort'46_'35selFP7'35r(x)(st))(i)(xs)(st)
+c_quickSort'46_'35selFP7'35r x st = Curry.RunTimeSystem.patternFail("Sort.quickSort._#selFP7#r")(x)
+
+
+
+c_mergeSort :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_mergeSort x1 x2 st = Curry.Module.Sort.c_mergeSort'46mergeLists'4616(x1)(Curry.Module.Sort.c_mergeSort'46genRuns'4616(x1)(x2)(st))(st)
+
+
+
+c_mergeSort'46genRuns'4616 :: (Curry t79) => (Curry.Module.Prelude.Prim (t79 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t79 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t79) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t79)
+c_mergeSort'46genRuns'4616 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_mergeSort'46genRuns'4616 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Sort.c_mergeSort'46genRuns'4616_case_28(x1)(x3)(x4)(st)
+c_mergeSort'46genRuns'4616 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_mergeSort'46genRuns'4616(x1)(x)(st))(i)(xs)(st)
+c_mergeSort'46genRuns'4616 x1 x st = Curry.RunTimeSystem.patternFail("Sort.mergeSort.genRuns.16")(x)
+
+
+
+c_mergeSort'46mergePairs'4616 :: (Curry t79) => (Curry.Module.Prelude.Prim (t79 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t79 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List t79)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List t79)
+c_mergeSort'46mergePairs'4616 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_mergeSort'46mergePairs'4616 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Sort.c_mergeSort'46mergePairs'4616_case_25(x1)(x3)(x4)(st)
+c_mergeSort'46mergePairs'4616 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_mergeSort'46mergePairs'4616(x1)(x)(st))(i)(xs)(st)
+c_mergeSort'46mergePairs'4616 x1 x st = Curry.RunTimeSystem.patternFail("Sort.mergeSort.mergePairs.16")(x)
+
+
+
+c_mergeSort'46mergeLists'4616 :: (Curry t79) => (Curry.Module.Prelude.Prim (t79 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t79 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List t79)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t79
+c_mergeSort'46mergeLists'4616 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_mergeSort'46mergeLists'4616 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Sort.c_mergeSort'46mergeLists'4616_case_24(x1)(x3)(x4)(st)
+c_mergeSort'46mergeLists'4616 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_mergeSort'46mergeLists'4616(x1)(x)(st))(i)(xs)(st)
+c_mergeSort'46mergeLists'4616 x1 x st = Curry.RunTimeSystem.patternFail("Sort.mergeSort.mergeLists.16")(x)
+
+
+
+c_merge :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_merge x1 x2@Curry.Module.Prelude.List x3 st = x3
+c_merge x1 x2@((Curry.Module.Prelude.:<) x4 x5) x3 st = Curry.Module.Sort.c_merge_case_23(x1)(x4)(x5)(x3)(st)
+c_merge x1 (Curry.Module.Prelude.ListOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_merge(x1)(x)(x3)(st))(i)(xs)(st)
+c_merge x1 x x3 st = Curry.RunTimeSystem.patternFail("Sort.merge")(x)
+
+
+
+c_leqList :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_leqList x1 x2@Curry.Module.Prelude.List x3 st = Curry.Module.Prelude.C_True
+c_leqList x1 x2@((Curry.Module.Prelude.:<) x4 x5) x3 st = Curry.Module.Sort.c_leqList_case_20(x1)(x4)(x5)(x3)(st)
+c_leqList x1 (Curry.Module.Prelude.ListOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqList(x1)(x)(x3)(st))(i)(xs)(st)
+c_leqList x1 x x3 st = Curry.RunTimeSystem.patternFail("Sort.leqList")(x)
+
+
+
+c_cmpList :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering))) -> (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_cmpList x1 x2@Curry.Module.Prelude.List x3 st = Curry.Module.Sort.c_cmpList_case_17(x3)(st)
+c_cmpList x1 x2@((Curry.Module.Prelude.:<) x6 x7) x3 st = Curry.Module.Sort.c_cmpList_case_16(x1)(x6)(x7)(x3)(st)
+c_cmpList x1 (Curry.Module.Prelude.ListOr i xs) x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_cmpList(x1)(x)(x3)(st))(i)(xs)(st)
+c_cmpList x1 x x3 st = Curry.RunTimeSystem.patternFail("Sort.cmpList")(x)
+
+
+
+c_leqChar :: Curry.Module.Prelude.C_Char -> Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_leqChar x1 x2 st = Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(x2)(st))(st)
+
+
+
+c_cmpChar :: Curry.Module.Prelude.C_Char -> Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_cmpChar x1 x2 st = Curry.Module.Sort.c_cmpChar_case_13(x1)(x2)(Curry.Module.Prelude.op_61_61(x1)(x2)(st))(st)
+
+
+
+c_leqCharIgnoreCase :: Curry.Module.Prelude.C_Char -> Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_leqCharIgnoreCase x1 x2 st = Curry.Module.Prelude.op_60_61(Curry.Module.Prelude.c_ord(Curry.Module.Char.c_toUpper(x1)(st))(st))(Curry.Module.Prelude.c_ord(Curry.Module.Char.c_toUpper(x2)(st))(st))(st)
+
+
+
+c_leqString :: 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.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))
+c_leqString st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Sort.c_leqList(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Sort.c_leqChar)))
+
+
+
+c_cmpString :: 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.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering))
+c_cmpString st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Sort.c_cmpList(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Sort.c_cmpChar)))
+
+
+
+c_leqStringIgnoreCase :: 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.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))
+c_leqStringIgnoreCase st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Sort.c_leqList(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Sort.c_leqCharIgnoreCase)))
+
+
+
+c_leqLexGerman :: (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_leqLexGerman x1@Curry.Module.Prelude.List x2 st = Curry.Module.Prelude.C_True
+c_leqLexGerman x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.Sort.c_leqLexGerman_case_11(x3)(x4)(x2)(st)
+c_leqLexGerman (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman(x)(x2)(st))(i)(xs)(st)
+c_leqLexGerman x x2 st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman")(x)
+
+
+
+c_leqLexGerman'46glex'4689 :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_leqLexGerman'46glex'4689 x1 st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_8(x1)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62_61(x1)(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(Curry.Module.Prelude.op_60_61(x1)(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('Z'))(st))(st))(st))(st)
+
+
+
+c_leqLexGerman'46glex'4689_case_8 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_43(x1)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st))(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('A'))(st))(st))(st)
+c_leqLexGerman'46glex'4689_case_8 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_7(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))(st))(st)
+c_leqLexGerman'46glex'4689_case_8 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_8(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_8 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_8")(x)
+
+
+
+c_leqLexGerman'46glex'4689_case_7 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st)
+c_leqLexGerman'46glex'4689_case_7 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_6(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))(st))(st)
+c_leqLexGerman'46glex'4689_case_7 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_7(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_7 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_7")(x)
+
+
+
+c_leqLexGerman'46glex'4689_case_6 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('o'))(st)
+c_leqLexGerman'46glex'4689_case_6 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_5(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))(st))(st)
+c_leqLexGerman'46glex'4689_case_6 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_6(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_6 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_6")(x)
+
+
+
+c_leqLexGerman'46glex'4689_case_5 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('u'))(st)
+c_leqLexGerman'46glex'4689_case_5 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_4(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))(st))(st)
+c_leqLexGerman'46glex'4689_case_5 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_5(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_5 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_5")(x)
+
+
+
+c_leqLexGerman'46glex'4689_case_4 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('a'))(st)
+c_leqLexGerman'46glex'4689_case_4 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_3(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))(st))(st)
+c_leqLexGerman'46glex'4689_case_4 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_4(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_4 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_4")(x)
+
+
+
+c_leqLexGerman'46glex'4689_case_3 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('o'))(st)
+c_leqLexGerman'46glex'4689_case_3 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_2(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))(st))(st)
+c_leqLexGerman'46glex'4689_case_3 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_3(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_3 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_3")(x)
+
+
+
+c_leqLexGerman'46glex'4689_case_2 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('u'))(st)
+c_leqLexGerman'46glex'4689_case_2 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_1(x1)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))(st))(st)
+c_leqLexGerman'46glex'4689_case_2 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_2(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_2 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_2")(x)
+
+
+
+c_leqLexGerman'46glex'4689_case_1 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('s'))(st)
+c_leqLexGerman'46glex'4689_case_1 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_0(x1)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_leqLexGerman'46glex'4689_case_1 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_1(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_1 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_1")(x)
+
+
+
+c_leqLexGerman'46glex'4689_case_0 x1 x2@Curry.Module.Prelude.C_True st = x1
+c_leqLexGerman'46glex'4689_case_0 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman'46glex'4689_case_0(x1)(x)(st))(i)(xs)(st)
+c_leqLexGerman'46glex'4689_case_0 x1 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman.glex.89_case_0")(x)
+
+
+
+c_leqLexGerman_case_11 x3 x4 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_False
+c_leqLexGerman_case_11 x3 x4 x2@((Curry.Module.Prelude.:<) x5 x6) st = let {x7 = Curry.Module.Sort.c_leqLexGerman'46glex'4689(Curry.Module.Prelude.c_ord(x3)(st))(st)} in let {x8 = Curry.Module.Sort.c_leqLexGerman'46glex'4689(Curry.Module.Prelude.c_ord(x5)(st))(st)} in Curry.Module.Sort.c_leqLexGerman_case_10(x4)(x6)(x7)(x8)(Curry.Module.Prelude.op_61_61(x7)(x8)(st))(st)
+c_leqLexGerman_case_11 x3 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman_case_11(x3)(x4)(x)(st))(i)(xs)(st)
+c_leqLexGerman_case_11 x3 x4 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman_case_11")(x)
+
+
+
+c_leqLexGerman_case_10 x4 x6 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Sort.c_leqLexGerman(x4)(x6)(st)
+c_leqLexGerman_case_10 x4 x6 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqLexGerman_case_9(x7)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_leqLexGerman_case_10 x4 x6 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman_case_10(x4)(x6)(x7)(x8)(x)(st))(i)(xs)(st)
+c_leqLexGerman_case_10 x4 x6 x7 x8 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman_case_10")(x)
+
+
+
+c_leqLexGerman_case_9 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_60(x7)(x8)(st)
+c_leqLexGerman_case_9 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqLexGerman_case_9(x7)(x8)(x)(st))(i)(xs)(st)
+c_leqLexGerman_case_9 x7 x8 x st = Curry.RunTimeSystem.patternFail("Sort.leqLexGerman_case_9")(x)
+
+
+
+c_cmpChar_case_13 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_EQ
+c_cmpChar_case_13 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_cmpChar_case_12(x1)(x2)(Curry.Module.Prelude.op_60(Curry.Module.Prelude.c_ord(x1)(st))(Curry.Module.Prelude.c_ord(x2)(st))(st))(st)
+c_cmpChar_case_13 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_cmpChar_case_13(x1)(x2)(x)(st))(i)(xs)(st)
+c_cmpChar_case_13 x1 x2 x st = Curry.RunTimeSystem.patternFail("Sort.cmpChar_case_13")(x)
+
+
+
+c_cmpChar_case_12 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_LT
+c_cmpChar_case_12 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_GT
+c_cmpChar_case_12 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_cmpChar_case_12(x1)(x2)(x)(st))(i)(xs)(st)
+c_cmpChar_case_12 x1 x2 x st = Curry.RunTimeSystem.patternFail("Sort.cmpChar_case_12")(x)
+
+
+
+c_cmpList_case_16 x1 x6 x7 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_GT
+c_cmpList_case_16 x1 x6 x7 x3@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Sort.c_cmpList_case_15(x1)(x6)(x7)(x8)(x9)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x6)(st))(x8)(st))(Curry.Module.Prelude.C_EQ)(st))(st)
+c_cmpList_case_16 x1 x6 x7 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_cmpList_case_16(x1)(x6)(x7)(x)(st))(i)(xs)(st)
+c_cmpList_case_16 x1 x6 x7 x st = Curry.RunTimeSystem.patternFail("Sort.cmpList_case_16")(x)
+
+
+
+c_cmpList_case_15 x1 x6 x7 x8 x9 x10@Curry.Module.Prelude.C_True st = Curry.Module.Sort.c_cmpList(x1)(x7)(x9)(st)
+c_cmpList_case_15 x1 x6 x7 x8 x9 x10@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_cmpList_case_14(x1)(x6)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_cmpList_case_15 x1 x6 x7 x8 x9 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_cmpList_case_15(x1)(x6)(x7)(x8)(x9)(x)(st))(i)(xs)(st)
+c_cmpList_case_15 x1 x6 x7 x8 x9 x st = Curry.RunTimeSystem.patternFail("Sort.cmpList_case_15")(x)
+
+
+
+c_cmpList_case_14 x1 x6 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x6)(st))(x8)(st)
+c_cmpList_case_14 x1 x6 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_cmpList_case_14(x1)(x6)(x8)(x)(st))(i)(xs)(st)
+c_cmpList_case_14 x1 x6 x8 x st = Curry.RunTimeSystem.patternFail("Sort.cmpList_case_14")(x)
+
+
+
+c_cmpList_case_17 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_EQ
+c_cmpList_case_17 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Prelude.C_LT
+c_cmpList_case_17 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_cmpList_case_17(x)(st))(i)(xs)(st)
+c_cmpList_case_17 x st = Curry.RunTimeSystem.patternFail("Sort.cmpList_case_17")(x)
+
+
+
+c_leqList_case_20 x1 x4 x5 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_False
+c_leqList_case_20 x1 x4 x5 x3@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Sort.c_leqList_case_19(x1)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.op_61_61(x4)(x6)(st))(st)
+c_leqList_case_20 x1 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqList_case_20(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_leqList_case_20 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("Sort.leqList_case_20")(x)
+
+
+
+c_leqList_case_19 x1 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.Sort.c_leqList(x1)(x5)(x7)(st)
+c_leqList_case_19 x1 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_leqList_case_18(x1)(x4)(x6)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_leqList_case_19 x1 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqList_case_19(x1)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_leqList_case_19 x1 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Sort.leqList_case_19")(x)
+
+
+
+c_leqList_case_18 x1 x4 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(x6)(st)
+c_leqList_case_18 x1 x4 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_leqList_case_18(x1)(x4)(x6)(x)(st))(i)(xs)(st)
+c_leqList_case_18 x1 x4 x6 x st = Curry.RunTimeSystem.patternFail("Sort.leqList_case_18")(x)
+
+
+
+c_merge_case_23 x1 x4 x5 x3@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)(x4)(x5)
+c_merge_case_23 x1 x4 x5 x3@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Sort.c_merge_case_22(x1)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x4)(st))(x6)(st))(st)
+c_merge_case_23 x1 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_merge_case_23(x1)(x4)(x5)(x)(st))(i)(xs)(st)
+c_merge_case_23 x1 x4 x5 x st = Curry.RunTimeSystem.patternFail("Sort.merge_case_23")(x)
+
+
+
+c_merge_case_22 x1 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x4)(Curry.Module.Sort.c_merge(x1)(x5)((Curry.Module.Prelude.:<)(x6)(x7))(st))
+c_merge_case_22 x1 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_merge_case_21(x1)(x4)(x5)(x6)(x7)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_merge_case_22 x1 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_merge_case_22(x1)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_merge_case_22 x1 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Sort.merge_case_22")(x)
+
+
+
+c_merge_case_21 x1 x4 x5 x6 x7 x8@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(x6)(Curry.Module.Sort.c_merge(x1)((Curry.Module.Prelude.:<)(x4)(x5))(x7)(st))
+c_merge_case_21 x1 x4 x5 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_merge_case_21(x1)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_merge_case_21 x1 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Sort.merge_case_21")(x)
+
+
+
+c_mergeSort'46mergeLists'4616_case_24 x1 x3 x4@Curry.Module.Prelude.List st = x3
+c_mergeSort'46mergeLists'4616_case_24 x1 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Sort.c_mergeSort'46mergeLists'4616(x1)((Curry.Module.Prelude.:<)(Curry.Module.Sort.c_merge(x1)(x3)(x5)(st))(Curry.Module.Sort.c_mergeSort'46mergePairs'4616(x1)(x6)(st)))(st)
+c_mergeSort'46mergeLists'4616_case_24 x1 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_mergeSort'46mergeLists'4616_case_24(x1)(x3)(x)(st))(i)(xs)(st)
+c_mergeSort'46mergeLists'4616_case_24 x1 x3 x st = Curry.RunTimeSystem.patternFail("Sort.mergeSort.mergeLists.16_case_24")(x)
+
+
+
+c_mergeSort'46mergePairs'4616_case_25 x1 x3 x4@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List)
+c_mergeSort'46mergePairs'4616_case_25 x1 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = (Curry.Module.Prelude.:<)(Curry.Module.Sort.c_merge(x1)(x3)(x5)(st))(Curry.Module.Sort.c_mergeSort'46mergePairs'4616(x1)(x6)(st))
+c_mergeSort'46mergePairs'4616_case_25 x1 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_mergeSort'46mergePairs'4616_case_25(x1)(x3)(x)(st))(i)(xs)(st)
+c_mergeSort'46mergePairs'4616_case_25 x1 x3 x st = Curry.RunTimeSystem.patternFail("Sort.mergeSort.mergePairs.16_case_25")(x)
+
+
+
+c_mergeSort'46genRuns'4616_case_28 x1 x3 x4@Curry.Module.Prelude.List st = (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List))(Curry.Module.Prelude.List)
+c_mergeSort'46genRuns'4616_case_28 x1 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Sort.c_mergeSort'46genRuns'4616_case_27(x1)(x3)(x5)(x6)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x5)(st))(st)
+c_mergeSort'46genRuns'4616_case_28 x1 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_mergeSort'46genRuns'4616_case_28(x1)(x3)(x)(st))(i)(xs)(st)
+c_mergeSort'46genRuns'4616_case_28 x1 x3 x st = Curry.RunTimeSystem.patternFail("Sort.mergeSort.genRuns.16_case_28")(x)
+
+
+
+c_mergeSort'46genRuns'4616_case_27 x1 x3 x5 x6 x7@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x3)((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.List)))(Curry.Module.Sort.c_mergeSort'46genRuns'4616(x1)(x6)(st))
+c_mergeSort'46genRuns'4616_case_27 x1 x3 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_mergeSort'46genRuns'4616_case_26(x1)(x3)(x5)(x6)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_mergeSort'46genRuns'4616_case_27 x1 x3 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_mergeSort'46genRuns'4616_case_27(x1)(x3)(x5)(x6)(x)(st))(i)(xs)(st)
+c_mergeSort'46genRuns'4616_case_27 x1 x3 x5 x6 x st = Curry.RunTimeSystem.patternFail("Sort.mergeSort.genRuns.16_case_27")(x)
+
+
+
+c_mergeSort'46genRuns'4616_case_26 x1 x3 x5 x6 x7@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(x5)((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List)))(Curry.Module.Sort.c_mergeSort'46genRuns'4616(x1)(x6)(st))
+c_mergeSort'46genRuns'4616_case_26 x1 x3 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_mergeSort'46genRuns'4616_case_26(x1)(x3)(x5)(x6)(x)(st))(i)(xs)(st)
+c_mergeSort'46genRuns'4616_case_26 x1 x3 x5 x6 x st = Curry.RunTimeSystem.patternFail("Sort.mergeSort.genRuns.16_case_26")(x)
+
+
+
+c_quickSort'46split'466_case_30 x1 x2 x4 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(x4)(x7))(x8)
+c_quickSort'46split'466_case_30 x1 x2 x4 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.Sort.c_quickSort'46split'466_case_29(x4)(x7)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_quickSort'46split'466_case_30 x1 x2 x4 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_quickSort'46split'466_case_30(x1)(x2)(x4)(x7)(x8)(x)(st))(i)(xs)(st)
+c_quickSort'46split'466_case_30 x1 x2 x4 x7 x8 x st = Curry.RunTimeSystem.patternFail("Sort.quickSort.split.6_case_30")(x)
+
+
+
+c_quickSort'46split'466_case_29 x4 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.T2(x7)((Curry.Module.Prelude.:<)(x4)(x8))
+c_quickSort'46split'466_case_29 x4 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Sort.c_quickSort'46split'466_case_29(x4)(x7)(x8)(x)(st))(i)(xs)(st)
+c_quickSort'46split'466_case_29 x4 x7 x8 x st = Curry.RunTimeSystem.patternFail("Sort.quickSort.split.6_case_29")(x)
+
+
diff --git a/dist/build/Curry/Module/StyledText.hs b/dist/build/Curry/Module/StyledText.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/StyledText.hs
@@ -0,0 +1,501 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.StyledText (module Curry.Module.StyledText) where
+
+import Curry.RunTimeSystem
+import Curry.Module.AnsiCodes
+import Curry.Module.Prelude
+import Curry.Module.Pretty
+import Curry.Module.Char
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_ShowS = (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+c_boldChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_boldChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(st)
+
+
+
+c_underlineChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_underlineChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(st)
+
+
+
+c_endChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_endChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(st)
+
+
+
+c_blackChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_blackChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_blueChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_blueChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_cyanChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_cyanChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_greenChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_greenChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_magentaChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_magentaChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_redChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_redChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(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)
+
+
+
+c_whiteChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_whiteChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_yellowChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_yellowChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_bgBlackChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_bgBlackChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_bgBlueChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_bgBlueChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_bgCyanChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_bgCyanChar st = Curry.Module.Prelude.c_chr(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_IHi))))))(st)
+
+
+
+c_bgGreenChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_bgGreenChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_bgMagentaChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_bgMagentaChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_bgRedChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_bgRedChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_bgWhiteChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_bgWhiteChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_bgYellowChar :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Char
+c_bgYellowChar st = Curry.Module.Prelude.c_chr(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st)
+
+
+
+c_bold :: 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_bold st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_boldChar(st)))
+
+
+
+c_underline :: 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_underline st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_underlineChar(st)))
+
+
+
+c_black :: 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_black st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_blackChar(st)))
+
+
+
+c_blue :: 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_blue st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_blueChar(st)))
+
+
+
+c_cyan :: 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_cyan st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_cyanChar(st)))
+
+
+
+c_green :: 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_green st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_greenChar(st)))
+
+
+
+c_magenta :: 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_magenta st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_magentaChar(st)))
+
+
+
+c_red :: 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_red st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_redChar(st)))
+
+
+
+c_white :: 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_white st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_whiteChar(st)))
+
+
+
+c_yellow :: 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_yellow st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_yellowChar(st)))
+
+
+
+c_bgBlack :: 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_bgBlack st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_bgBlackChar(st)))
+
+
+
+c_bgBlue :: 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_bgBlue st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_bgBlueChar(st)))
+
+
+
+c_bgCyan :: 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_bgCyan st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_bgCyanChar(st)))
+
+
+
+c_bgGreen :: 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_bgGreen st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_bgGreenChar(st)))
+
+
+
+c_bgMagenta :: 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_bgMagenta st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_bgMagentaChar(st)))
+
+
+
+c_bgRed :: 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_bgRed st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_bgRedChar(st)))
+
+
+
+c_bgWhite :: 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_bgWhite st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_bgWhiteChar(st)))
+
+
+
+c_bgYellow :: 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_bgYellow st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_encl(Curry.Module.StyledText.c_bgYellowChar(st)))
+
+
+
+c_encl :: 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_encl x1 x2 st = (Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.op_43_43(x2)((Curry.Module.Prelude.:<)(Curry.Module.StyledText.c_endChar(st))(Curry.Module.Prelude.List))(st))
+
+
+
+c_boldS :: 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.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_boldS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_boldChar(st)))
+
+
+
+c_underlineS :: 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.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_underlineS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_underlineChar(st)))
+
+
+
+c_blackS :: 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.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_blackS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_blackChar(st)))
+
+
+
+c_blueS :: 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.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_blueS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_blueChar(st)))
+
+
+
+c_cyanS :: 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.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_cyanS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_cyanChar(st)))
+
+
+
+c_greenS :: 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.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_greenS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_greenChar(st)))
+
+
+
+c_magentaS :: 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.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_magentaS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_magentaChar(st)))
+
+
+
+c_redS :: 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.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_redS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_redChar(st)))
+
+
+
+c_whiteS :: 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.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_whiteS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_whiteChar(st)))
+
+
+
+c_yellowS :: 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.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_yellowS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_yellowChar(st)))
+
+
+
+c_bgBlackS :: 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.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_bgBlackS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_bgBlackChar(st)))
+
+
+
+c_bgBlueS :: 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.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_bgBlueS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_bgBlueChar(st)))
+
+
+
+c_bgCyanS :: 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.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_bgCyanS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_bgCyanChar(st)))
+
+
+
+c_bgGreenS :: 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.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_bgGreenS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_bgGreenChar(st)))
+
+
+
+c_bgMagentaS :: 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.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_bgMagentaS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_bgMagentaChar(st)))
+
+
+
+c_bgRedS :: 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.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_bgRedS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_bgRedChar(st)))
+
+
+
+c_bgWhiteS :: 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.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_bgWhiteS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_bgWhiteChar(st)))
+
+
+
+c_bgYellowS :: 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.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_bgYellowS st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_enclS(Curry.Module.StyledText.c_bgYellowChar(st)))
+
+
+
+c_enclS :: Curry.Module.Prelude.C_Char -> (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.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_enclS x1 x2 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc((Curry.Module.Prelude.:<)(x1)))(Curry.Module.Prelude.op_46(x2)(Curry.Module.Prelude.pc((Curry.Module.Prelude.:<)(Curry.Module.StyledText.c_endChar(st))))(st))(st)
+
+
+
+c_boldDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_boldDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_boldChar(st))(st)
+
+
+
+c_underlineDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_underlineDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_underlineChar(st))(st)
+
+
+
+c_blackDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_blackDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_blackChar(st))(st)
+
+
+
+c_blueDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_blueDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_blueChar(st))(st)
+
+
+
+c_cyanDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_cyanDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_cyanChar(st))(st)
+
+
+
+c_greenDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_greenDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_greenChar(st))(st)
+
+
+
+c_magentaDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_magentaDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_magentaChar(st))(st)
+
+
+
+c_redDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_redDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_redChar(st))(st)
+
+
+
+c_whiteDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_whiteDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_whiteChar(st))(st)
+
+
+
+c_yellowDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_yellowDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_yellowChar(st))(st)
+
+
+
+c_bgBlackDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bgBlackDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_bgBlackChar(st))(st)
+
+
+
+c_bgBlueDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bgBlueDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_bgBlueChar(st))(st)
+
+
+
+c_bgCyanDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bgCyanDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_bgCyanChar(st))(st)
+
+
+
+c_bgGreenDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bgGreenDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_bgGreenChar(st))(st)
+
+
+
+c_bgMagentaDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bgMagentaDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_bgMagentaChar(st))(st)
+
+
+
+c_bgRedDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bgRedDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_bgRedChar(st))(st)
+
+
+
+c_bgWhiteDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bgWhiteDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_bgWhiteChar(st))(st)
+
+
+
+c_bgYellowDoc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_bgYellowDoc st = Curry.Module.StyledText.c_enclDoc(Curry.Module.StyledText.c_bgYellowChar(st))(st)
+
+
+
+c_enclDoc :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Pretty.C_Doc -> Curry.RunTimeSystem.State -> Curry.Module.Pretty.C_Doc)
+c_enclDoc x1 st = Curry.Module.Prelude.pf(Curry.Module.Pretty.c_enclose(Curry.Module.Pretty.c_char(x1)(st))(Curry.Module.Pretty.c_char(Curry.Module.StyledText.c_endChar(st))(st)))
+
+
+
+c_plainText :: 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_plainText st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.pf(Curry.Module.StyledText.c_special))(st)))
+
+
+
+c_special :: Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_special x1 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(Curry.Module.Prelude.c_ord(x1)(st))(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(Curry.Module.Prelude.List))))(Curry.Module.Prelude.c_enumFromTo(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st))(st))(st)
+
+
+
+c_interpret :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List t0) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t1))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T3 t0 t0 t0)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t1
+c_interpret x1@((Curry.Module.Prelude.:<) x7 x8) x2 x3 x4 x5 x6 st = Curry.Module.StyledText.c_interpret_case_8(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x8)(st)
+c_interpret (Curry.Module.Prelude.ListOr i xs) x2 x3 x4 x5 x6 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret(x)(x2)(x3)(x4)(x5)(x6)(st))(i)(xs)(st)
+c_interpret x x2 x3 x4 x5 x6 st = Curry.RunTimeSystem.patternFail("StyledText.interpret")(x)
+
+
+
+c_interpret'46_'35selFP3'35xs :: (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_interpret'46_'35selFP3'35xs x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_interpret'46_'35selFP3'35xs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret'46_'35selFP3'35xs(x)(st))(i)(xs)(st)
+c_interpret'46_'35selFP3'35xs x st = Curry.RunTimeSystem.patternFail("StyledText.interpret._#selFP3#xs")(x)
+
+
+
+c_interpret'46_'35selFP4'35ys :: (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_interpret'46_'35selFP4'35ys x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_interpret'46_'35selFP4'35ys (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret'46_'35selFP4'35ys(x)(st))(i)(xs)(st)
+c_interpret'46_'35selFP4'35ys x st = Curry.RunTimeSystem.patternFail("StyledText.interpret._#selFP4#ys")(x)
+
+
+
+c_printStyledText :: 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.T0)
+c_printStyledText st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStrLn))(Curry.Module.StyledText.c_toAnsiString(st))(st)
+
+
+
+c_toAnsiString :: 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_toAnsiString st = Curry.Module.Prelude.pf(Curry.Module.StyledText.c_interpret((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bold(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_underline(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_black(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_blue(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_cyan(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_green(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_magenta(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_red(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_white(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_yellow(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bgBlack(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bgBlue(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bgCyan(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bgGreen(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bgMagenta(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bgRed(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bgWhite(st))((Curry.Module.Prelude.:<)(Curry.Module.AnsiCodes.c_bgYellow(st))(Curry.Module.Prelude.List)))))))))))))))))))(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.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_46))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T3(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_id)))(Curry.Module.Prelude.List)))
+
+
+
+c_interpret_case_8 x1 x2 x3 x4 x5 x6 x7 x8@((Curry.Module.Prelude.:<) x9 x10) st = Curry.Module.StyledText.c_interpret_case_7(x1)(x2)(x3)(x4)(x6)(x7)(x9)(x10)(x5)(st)
+c_interpret_case_8 x1 x2 x3 x4 x5 x6 x7 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_8(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x)(st))(i)(xs)(st)
+c_interpret_case_8 x1 x2 x3 x4 x5 x6 x7 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_8")(x)
+
+
+
+c_interpret_case_7 x1 x2 x3 x4 x6 x7 x9 x10 x5@((Curry.Module.Prelude.:<) x11 x12) st = Curry.Module.StyledText.c_interpret_case_6(x1)(x2)(x3)(x4)(x6)(x7)(x9)(x10)(x12)(x11)(st)
+c_interpret_case_7 x1 x2 x3 x4 x6 x7 x9 x10 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_7(x1)(x2)(x3)(x4)(x6)(x7)(x9)(x10)(x)(st))(i)(xs)(st)
+c_interpret_case_7 x1 x2 x3 x4 x6 x7 x9 x10 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_7")(x)
+
+
+
+c_interpret_case_6 x1 x2 x3 x4 x6 x7 x9 x10 x12 x11@(Curry.Module.Prelude.T3 x13 x14 x15) st = let {x16 = Curry.Module.Prelude.op_36(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(x13)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(x14)(st))(x15)(st))(st))(st)} in let {x17 = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_break(Curry.Module.Prelude.pf(Curry.Module.StyledText.c_special))(st))(x6)(st)} in let {x18 = Curry.Module.StyledText.c_interpret'46_'35selFP3'35xs(x17)(st)} in let {x19 = Curry.Module.StyledText.c_interpret'46_'35selFP4'35ys(x17)(st)} in let {x20 = Curry.Module.Prelude.c_ord(Curry.Module.Prelude.c_head(x19)(st))(st)} in let {x21 = Curry.Module.Prelude.op_33_33(x10)(Curry.Module.Prelude.op_45(x20)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))(st))(st)} in Curry.Module.StyledText.c_interpret_case_5(x1)(x2)(x3)(x4)(x7)(x9)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(Curry.Module.Prelude.c_null(x19)(st))(st)
+c_interpret_case_6 x1 x2 x3 x4 x6 x7 x9 x10 x12 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_6(x1)(x2)(x3)(x4)(x6)(x7)(x9)(x10)(x12)(x)(st))(i)(xs)(st)
+c_interpret_case_6 x1 x2 x3 x4 x6 x7 x9 x10 x12 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_6")(x)
+
+
+
+c_interpret_case_5 x1 x2 x3 x4 x7 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(x16)(x18)(st)
+c_interpret_case_5 x1 x2 x3 x4 x7 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_False st = Curry.Module.StyledText.c_interpret_case_4(x1)(x2)(x3)(x4)(x7)(x9)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(Curry.Module.Prelude.op_61_61(x20)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(st))(st)
+c_interpret_case_5 x1 x2 x3 x4 x7 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_5(x1)(x2)(x3)(x4)(x7)(x9)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(x)(st))(i)(xs)(st)
+c_interpret_case_5 x1 x2 x3 x4 x7 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_5")(x)
+
+
+
+c_interpret_case_4 x1 x2 x3 x4 x7 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Prelude.c_apply(x16)(x18)(st))(st))(Curry.Module.StyledText.c_interpret(x1)(x2)(x3)(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T3(x7)(x14)(x15))((Curry.Module.Prelude.:<)(x11)(x12)))(Curry.Module.Prelude.c_tail(x19)(st))(st))(st)
+c_interpret_case_4 x1 x2 x3 x4 x7 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_False st = Curry.Module.StyledText.c_interpret_case_3(x1)(x2)(x3)(x4)(x9)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(Curry.Module.Prelude.op_61_61(x20)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(st))(st)
+c_interpret_case_4 x1 x2 x3 x4 x7 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_4(x1)(x2)(x3)(x4)(x7)(x9)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(x)(st))(i)(xs)(st)
+c_interpret_case_4 x1 x2 x3 x4 x7 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_4")(x)
+
+
+
+c_interpret_case_3 x1 x2 x3 x4 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Prelude.c_apply(x16)(x18)(st))(st))(Curry.Module.StyledText.c_interpret(x1)(x2)(x3)(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T3(x9)(x14)(x15))((Curry.Module.Prelude.:<)(x11)(x12)))(Curry.Module.Prelude.c_tail(x19)(st))(st))(st)
+c_interpret_case_3 x1 x2 x3 x4 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_False st = Curry.Module.StyledText.c_interpret_case_2(x1)(x2)(x3)(x4)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(Curry.Module.Prelude.op_61_61(x20)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(st))(st)
+c_interpret_case_3 x1 x2 x3 x4 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_3(x1)(x2)(x3)(x4)(x9)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(x)(st))(i)(xs)(st)
+c_interpret_case_3 x1 x2 x3 x4 x9 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_3")(x)
+
+
+
+c_interpret_case_2 x1 x2 x3 x4 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Prelude.c_apply(x16)(x18)(st))(st))(Curry.Module.StyledText.c_interpret(x1)(x2)(x3)(x4)(x12)(Curry.Module.Prelude.c_tail(x19)(st))(st))(st)
+c_interpret_case_2 x1 x2 x3 x4 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_False st = Curry.Module.StyledText.c_interpret_case_1(x1)(x2)(x3)(x4)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(Curry.Module.Prelude.op_60(x20)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(st))(st)
+c_interpret_case_2 x1 x2 x3 x4 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_2(x1)(x2)(x3)(x4)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(x)(st))(i)(xs)(st)
+c_interpret_case_2 x1 x2 x3 x4 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_2")(x)
+
+
+
+c_interpret_case_1 x1 x2 x3 x4 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Prelude.c_apply(x16)(x18)(st))(st))(Curry.Module.StyledText.c_interpret(x1)(x2)(x3)(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T3(x13)(x21)(x15))((Curry.Module.Prelude.:<)(x11)(x12)))(Curry.Module.Prelude.c_tail(x19)(st))(st))(st)
+c_interpret_case_1 x1 x2 x3 x4 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x22@Curry.Module.Prelude.C_False st = Curry.Module.StyledText.c_interpret_case_0(x1)(x2)(x3)(x4)(x11)(x12)(x13)(x14)(x16)(x18)(x19)(x21)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_interpret_case_1 x1 x2 x3 x4 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_1(x1)(x2)(x3)(x4)(x11)(x12)(x13)(x14)(x15)(x16)(x18)(x19)(x20)(x21)(x)(st))(i)(xs)(st)
+c_interpret_case_1 x1 x2 x3 x4 x11 x12 x13 x14 x15 x16 x18 x19 x20 x21 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_1")(x)
+
+
+
+c_interpret_case_0 x1 x2 x3 x4 x11 x12 x13 x14 x16 x18 x19 x21 x22@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_apply(x2)(Curry.Module.Prelude.c_apply(x16)(x18)(st))(st))(Curry.Module.StyledText.c_interpret(x1)(x2)(x3)(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T3(x13)(x14)(x21))((Curry.Module.Prelude.:<)(x11)(x12)))(Curry.Module.Prelude.c_tail(x19)(st))(st))(st)
+c_interpret_case_0 x1 x2 x3 x4 x11 x12 x13 x14 x16 x18 x19 x21 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.StyledText.c_interpret_case_0(x1)(x2)(x3)(x4)(x11)(x12)(x13)(x14)(x16)(x18)(x19)(x21)(x)(st))(i)(xs)(st)
+c_interpret_case_0 x1 x2 x3 x4 x11 x12 x13 x14 x16 x18 x19 x21 x st = Curry.RunTimeSystem.patternFail("StyledText.interpret_case_0")(x)
+
+
diff --git a/dist/build/Curry/Module/System.hs b/dist/build/Curry/Module/System.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/System.hs
@@ -0,0 +1,187 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.System (module Curry.Module.System) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Global
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+import qualified System.Environment as SE
+import qualified System.CPUTime as SC
+import System.Cmd
+import System.Exit
+import qualified Network.BSD as NB
+import System.Posix.Process
+
+instance ConvertCH C_Int ExitCode where
+   toCurry ExitSuccess = toCurry (0::Integer)
+   toCurry (ExitFailure i) = toCurry i
+
+   fromCurry i = if hi Prelude.== 0 then ExitSuccess else ExitFailure hi
+     where hi = fromCurry i
+
+getCPUTime :: Result (C_IO C_Int)
+getCPUTime = ioFunc0 (SC.getCPUTime Prelude.>>= Prelude.return . (`div` 1000000000))
+
+getElapsedTime :: Result (C_IO C_Int)
+getElapsedTime = error "getElapsedTime not provided"
+
+getArgs :: Result (C_IO (List (List C_Char)))
+getArgs = ioFunc0 SE.getArgs
+
+prim_getEnviron :: (List C_Char) -> Result (C_IO (List C_Char))
+prim_getEnviron = 
+  ioFunc1 (\s -> do
+             env <- SE.getEnvironment
+             case Prelude.lookup s env of
+              Nothing -> Prelude.return ""
+              Just v  -> Prelude.return v)
+
+getHostname :: Result (C_IO (List C_Char))
+getHostname = ioFunc0 NB.getHostName
+
+getPID :: Result (C_IO C_Int)
+getPID = ioFunc0 (do
+                    pid <- getProcessID 
+                    Prelude.return (toInteger pid))
+
+getProgName :: Result (C_IO (List C_Char))
+getProgName = ioFunc0 (Curry.RunTimeSystem.getProgName)
+  -- conform with haskell would be: SE.getProgName
+
+prim_system :: (List C_Char) -> Result (C_IO C_Int)
+prim_system = ioFunc1 system
+
+prim_sleep :: C_Int -> Result (C_IO T0)
+prim_sleep = ioFunc1 (\ t -> do
+                          system ("sleep "++Prelude.show (t::Integer)) 
+                          Prelude.return ())
+
+prim_exitWith :: Curry a => C_Int -> Result (C_IO a)
+prim_exitWith e _ = C_IO (\ _ -> do
+  ex <- exitWith (fromCurry e) 
+  Prelude.return (IOVal ex))
+
+
+
+-- end included
+
+c_environ :: Curry.RunTimeSystem.State -> Curry.Module.Global.C_Global (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_environ  = let {st = Prelude.Nothing} in Curry.Module.Global.c_global(Curry.Module.Prelude.List)(Curry.Module.Global.C_Temporary)
+
+
+
+c_getEnviron :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getEnviron x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Global.c_readGlobal(Curry.Module.System.c_environ(st))(st))(Curry.Module.Prelude.pf(Curry.Module.System.c_getEnviron'46_'35lambda2(x1)))(st)
+
+
+
+c_getEnviron'46_'35lambda2 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (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.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getEnviron'46_'35lambda2 x1 x2 st = Curry.Module.Prelude.c_maybe(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.System.c_prim_getEnviron))(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.c_lookup(x1)(x2)(st))(st)
+
+
+
+c_setEnviron :: (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_setEnviron x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Global.c_readGlobal(Curry.Module.System.c_environ(st))(st))(Curry.Module.Prelude.pf(Curry.Module.System.c_setEnviron'46_'35lambda3(x1)(x2)))(st)
+
+
+
+c_setEnviron'46_'35lambda3 :: (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.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_IO Curry.Module.Prelude.T0
+c_setEnviron'46_'35lambda3 x1 x2 x3 st = Curry.Module.Global.c_writeGlobal(Curry.Module.System.c_environ(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2(x1)(x2))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(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))(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))(st))(x3)(st)))(st)
+
+
+
+c_unsetEnviron :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_unsetEnviron x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Global.c_readGlobal(Curry.Module.System.c_environ(st))(st))(Curry.Module.Prelude.pf(Curry.Module.System.c_unsetEnviron'46_'35lambda4(x1)))(st)
+
+
+
+c_unsetEnviron'46_'35lambda4 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (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.C_IO Curry.Module.Prelude.T0
+c_unsetEnviron'46_'35lambda4 x1 x2 st = Curry.Module.Global.c_writeGlobal(Curry.Module.System.c_environ(st))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(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))(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))(st))(x2)(st))(st)
+
+
+
+c_system :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_system x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Global.c_readGlobal(Curry.Module.System.c_environ(st))(st))(Curry.Module.Prelude.pf(Curry.Module.System.c_system'46_'35lambda5(x1)))(st)
+
+
+
+c_system'46set'4614 :: (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_system'46set'4614 x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Prelude.op_43_43((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('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(' '))(Curry.Module.Prelude.List))))))))(Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('='))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(x3)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(';'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))(st))(st))(st))(st)
+c_system'46set'4614 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.System.c_system'46set'4614(x)(st))(i)(xs)(st)
+c_system'46set'4614 x st = Curry.RunTimeSystem.patternFail("System.system.set.14")(x)
+
+
+
+c_system'46_'35lambda5 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (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.C_IO Curry.Module.Prelude.C_Int
+c_system'46_'35lambda5 x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.System.c_prim_system))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.System.c_system'46set'4614))(st))(x2)(st))(x1)(st))(st)
+
+
+
+c_exitWith :: (Curry t0) => Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_exitWith x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.System.c_prim_exitWith))(x1)(st)
+
+
+
+c_sleep :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_sleep x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.System.c_prim_sleep))(x1)(st)
+
+
+
+c_getCPUTime :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_getCPUTime st = Curry.Module.System.getCPUTime(st)
+
+
+
+c_getElapsedTime :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_getElapsedTime st = Curry.Module.System.getElapsedTime(st)
+
+
+
+c_getArgs :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_getArgs st = Curry.Module.System.getArgs(st)
+
+
+
+c_prim_getEnviron :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_prim_getEnviron x1 st = Curry.Module.System.prim_getEnviron(x1)(st)
+
+
+
+c_getHostname :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getHostname st = Curry.Module.System.getHostname(st)
+
+
+
+c_getPID :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_getPID st = Curry.Module.System.getPID(st)
+
+
+
+c_getProgName :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_getProgName st = Curry.Module.System.getProgName(st)
+
+
+
+c_prim_system :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_prim_system x1 st = Curry.Module.System.prim_system(x1)(st)
+
+
+
+c_prim_exitWith :: (Curry t0) => Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_prim_exitWith x1 st = Curry.Module.System.prim_exitWith(x1)(st)
+
+
+
+c_prim_sleep :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_prim_sleep x1 st = Curry.Module.System.prim_sleep(x1)(st)
+
+
diff --git a/dist/build/Curry/Module/TableRBT.hs b/dist/build/Curry/Module/TableRBT.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/TableRBT.hs
@@ -0,0 +1,64 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.TableRBT (module Curry.Module.TableRBT) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+import Curry.Module.RedBlackTree
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_TableRBT t0 t1 = Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1)
+
+c_emptyTableRBT :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1)
+c_emptyTableRBT x1 st = Curry.Module.RedBlackTree.c_empty(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.TableRBT.c_emptyTableRBT'46_'35lambda2))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.TableRBT.c_emptyTableRBT'46_'35lambda3))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.TableRBT.c_emptyTableRBT'46_'35lambda4(x1)))(st)
+
+
+
+c_emptyTableRBT'46_'35lambda2 :: (Curry t22,Curry t23) => (Curry.Module.Prelude.T2 t22 t23) -> (Curry.Module.Prelude.T2 t22 t23) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_emptyTableRBT'46_'35lambda2 x1 x2 st = Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_fst(x1)(st))(Curry.Module.Prelude.c_fst(x2)(st))(st)
+
+
+
+c_emptyTableRBT'46_'35lambda3 :: (Curry t22,Curry t23) => (Curry.Module.Prelude.T2 t22 t23) -> (Curry.Module.Prelude.T2 t22 t23) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_emptyTableRBT'46_'35lambda3 x1 x2 st = Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_fst(x1)(st))(Curry.Module.Prelude.c_fst(x2)(st))(st)
+
+
+
+c_emptyTableRBT'46_'35lambda4 :: (Curry t22,Curry t23) => (Curry.Module.Prelude.Prim (t22 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t22 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))) -> (Curry.Module.Prelude.T2 t22 t23) -> (Curry.Module.Prelude.T2 t22 t23) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_emptyTableRBT'46_'35lambda4 x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(Curry.Module.Prelude.c_fst(x2)(st))(st))(Curry.Module.Prelude.c_fst(x3)(st))(st)
+
+
+
+c_isEmptyTable :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_isEmptyTable st = Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_isEmpty)
+
+
+
+c_lookupRBT :: (Curry t0,Curry t1) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1)
+c_lookupRBT x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_maybe(Curry.Module.Prelude.C_Nothing)(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.Prelude.C_Just))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(st))))(Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_lookup(Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.c_failed(st)))))(st)
+
+
+
+c_updateRBT :: (Curry t0,Curry t1) => t0 -> t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1))
+c_updateRBT x1 x2 st = Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_update(Curry.Module.Prelude.T2(x1)(x2)))
+
+
+
+c_tableRBT2list :: (Curry t0,Curry t1) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 t1))
+c_tableRBT2list st = Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_tree2list)
+
+
+
+c_deleteRBT :: (Curry t0,Curry t1) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1)) -> Curry.RunTimeSystem.State -> Curry.Module.RedBlackTree.C_RedBlackTree (Curry.Module.Prelude.T2 t0 t1))
+c_deleteRBT x1 st = Curry.Module.Prelude.pf(Curry.Module.RedBlackTree.c_delete(Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.c_failed(st))))
+
+
diff --git a/dist/build/Curry/Module/Time.hs b/dist/build/Curry/Module/Time.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Time.hs
@@ -0,0 +1,557 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Time (module Curry.Module.Time) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+import System.Time hiding (getClockTime)
+import qualified System.Time (getClockTime) 
+import Ix
+
+instance ConvertCH C_ClockTime ClockTime where
+  fromCurry (C_CTime i) = TOD (fromCurry i) 0
+  toCurry (TOD i _) = C_CTime (toCurry i)
+
+instance ConvertCH C_CalendarTime CalendarTime where
+  fromCurry (C_CalendarTime y m d h min s tz ) = 
+             CalendarTime (fromCurry y) 
+                          (toEnum (fromCurry m-1))
+                          (fromCurry d)
+                          (fromCurry h)
+                          (fromCurry min)
+                          (fromCurry s)
+                          0 undefined undefined undefined
+                          (fromCurry tz)
+                          undefined
+           
+  toCurry (CalendarTime y m d h min s _ _ _ _ tz _) = 
+          C_CalendarTime (toCurry y) 
+                         (toCurry (fromEnum m)+1) 
+                         (toCurry d)
+                         (toCurry h)
+                         (toCurry min)
+                         (toCurry s)
+                         (toCurry tz)
+
+
+getClockTime :: Result (C_IO C_ClockTime)
+getClockTime = ioFunc0 (System.Time.getClockTime)
+
+prim_toCalendarTime :: C_ClockTime -> Result (C_IO C_CalendarTime)
+prim_toCalendarTime = ioFunc1 toCalendarTime
+
+prim_toUTCTime :: C_ClockTime -> Result C_CalendarTime
+prim_toUTCTime = extFunc1 toUTCTime
+
+prim_toClockTime :: C_CalendarTime -> Result C_ClockTime
+prim_toClockTime x _ = toCurry (toClockTime (fromCurry x))
+
+-- end included
+
+data C_ClockTime = C_CTime Curry.Module.Prelude.C_Int
+  | C_ClockTimeFail Curry.RunTimeSystem.C_Exceptions
+  | C_ClockTimeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Time.C_ClockTime)
+
+data C_CalendarTime = C_CalendarTime Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Int
+  | C_CalendarTimeFail Curry.RunTimeSystem.C_Exceptions
+  | C_CalendarTimeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Time.C_CalendarTime)
+
+instance BaseCurry Curry.Module.Time.C_ClockTime where
+  nf f (Curry.Module.Time.C_CTime x1) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> f(Curry.Module.Time.C_CTime(v1))(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Time.C_CTime x1) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> f(Curry.Module.Time.C_CTime(v1))(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Time.C_ClockTimeOr(Curry.RunTimeSystem.mkRef(r)(1)(i))([Curry.Module.Time.C_CTime(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(1)
+
+  failed  = Curry.Module.Time.C_ClockTimeFail
+
+  branching  = Curry.Module.Time.C_ClockTimeOr
+
+  consKind (Curry.Module.Time.C_ClockTimeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Time.C_ClockTimeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Time.C_ClockTimeFail x) = x
+
+  orRef (Curry.Module.Time.C_ClockTimeOr x _) = x
+
+  branches (Curry.Module.Time.C_ClockTimeOr _ x) = x
+
+
+
+
+
+instance BaseCurry Curry.Module.Time.C_CalendarTime where
+  nf f (Curry.Module.Time.C_CalendarTime x1 x2 x3 x4 x5 x6 x7) 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 -> Curry.RunTimeSystem.nfCTC(\ v6 state6 -> Curry.RunTimeSystem.nfCTC(\ v7 state7 -> f(Curry.Module.Time.C_CalendarTime(v1)(v2)(v3)(v4)(v5)(v6)(v7))(state7))(x7)(state6))(x6)(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Time.C_CalendarTime x1 x2 x3 x4 x5 x6 x7) 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 -> Curry.RunTimeSystem.gnfCTC(\ v6 state6 -> Curry.RunTimeSystem.gnfCTC(\ v7 state7 -> f(Curry.Module.Time.C_CalendarTime(v1)(v2)(v3)(v4)(v5)(v6)(v7))(state7))(x7)(state6))(x6)(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.Time.C_CalendarTimeOr(Curry.RunTimeSystem.mkRef(r)(7)(i))([Curry.Module.Time.C_CalendarTime(Curry.RunTimeSystem.generator((Prelude.+)(r)((6::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((5::Int))))(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))))]))(7)
+
+  failed  = Curry.Module.Time.C_CalendarTimeFail
+
+  branching  = Curry.Module.Time.C_CalendarTimeOr
+
+  consKind (Curry.Module.Time.C_CalendarTimeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Time.C_CalendarTimeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Time.C_CalendarTimeFail x) = x
+
+  orRef (Curry.Module.Time.C_CalendarTimeOr x _) = x
+
+  branches (Curry.Module.Time.C_CalendarTimeOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.Time.C_ClockTime where
+  strEq (Curry.Module.Time.C_CTime x1) (Curry.Module.Time.C_CTime y1) st = Curry.Module.Prelude.genStrEq(x1)(y1)(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Time.C_CTime x1) (Curry.Module.Time.C_CTime y1) st = Curry.Module.Prelude.genEq(x1)(y1)(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Time.C_CTime x1) st = Curry.Module.Time.C_CTime(f((0::Int))(x1)(st))
+
+  foldCurry f c (Curry.Module.Time.C_CTime x1) st = f(x1)(c)(st)
+
+  typeName _ = "ClockTime"
+
+  showQ d (Curry.Module.Time.C_CTime x1) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Time.CTime "))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showQ _ (Curry.Module.Time.C_ClockTimeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Curry Curry.Module.Time.C_CalendarTime where
+  strEq (Curry.Module.Time.C_CalendarTime x1 x2 x3 x4 x5 x6 x7) (Curry.Module.Time.C_CalendarTime y1 y2 y3 y4 y5 y6 y7) 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.concAnd(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x6)(y6)(st))(Curry.Module.Prelude.genStrEq(x7)(y7)(st))(st))(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Time.C_CalendarTime x1 x2 x3 x4 x5 x6 x7) (Curry.Module.Time.C_CalendarTime y1 y2 y3 y4 y5 y6 y7) 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.op_38_38(Curry.Module.Prelude.genEq(x5)(y5)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x6)(y6)(st))(Curry.Module.Prelude.genEq(x7)(y7)(st))(st))(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Time.C_CalendarTime x1 x2 x3 x4 x5 x6 x7) st = Curry.Module.Time.C_CalendarTime(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))(f((5::Int))(x6)(st))(f((6::Int))(x7)(st))
+
+  foldCurry f c (Curry.Module.Time.C_CalendarTime x1 x2 x3 x4 x5 x6 x7) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(f(x6)(f(x7)(c)(st))(st))(st))(st))(st))(st))(st)
+
+  typeName _ = "CalendarTime"
+
+  showQ d (Curry.Module.Time.C_CalendarTime x1 x2 x3 x4 x5 x6 x7) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Time.CalendarTime "))((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(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x5))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x6))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x7))))))))))))))
+
+
+  showQ _ (Curry.Module.Time.C_CalendarTimeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Time.C_ClockTime where
+  showsPrec d (Curry.Module.Time.C_CTime x1) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("CTime "))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))
+
+
+  showsPrec _ (Curry.Module.Time.C_ClockTimeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Time.C_CalendarTime where
+  showsPrec d (Curry.Module.Time.C_CalendarTime x1 x2 x3 x4 x5 x6 x7) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("CalendarTime "))((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..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x5))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x6))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x7))))))))))))))
+
+
+  showsPrec _ (Curry.Module.Time.C_CalendarTimeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.Time.C_ClockTime where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Time.C_CTime(x1))(r1) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Time")("CTime")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0)])(r)
+
+
+
+
+
+instance Read Curry.Module.Time.C_CalendarTime where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Time.C_CalendarTime(x1)(x2)(x3)(x4)(x5)(x6)(x7))(r7) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Time")("CalendarTime")(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), ((,) x6 r6) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r5), ((,) x7 r7) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r6)])(r)
+
+
+
+
+
+c_ctYear :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ctYear x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x2
+c_ctYear (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_ctYear(x)(st))(i)(xs)(st)
+c_ctYear x st = Curry.RunTimeSystem.patternFail("Time.ctYear")(x)
+
+
+
+c_ctMonth :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ctMonth x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x3
+c_ctMonth (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_ctMonth(x)(st))(i)(xs)(st)
+c_ctMonth x st = Curry.RunTimeSystem.patternFail("Time.ctMonth")(x)
+
+
+
+c_ctDay :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ctDay x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x4
+c_ctDay (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_ctDay(x)(st))(i)(xs)(st)
+c_ctDay x st = Curry.RunTimeSystem.patternFail("Time.ctDay")(x)
+
+
+
+c_ctHour :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ctHour x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x5
+c_ctHour (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_ctHour(x)(st))(i)(xs)(st)
+c_ctHour x st = Curry.RunTimeSystem.patternFail("Time.ctHour")(x)
+
+
+
+c_ctMin :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ctMin x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x6
+c_ctMin (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_ctMin(x)(st))(i)(xs)(st)
+c_ctMin x st = Curry.RunTimeSystem.patternFail("Time.ctMin")(x)
+
+
+
+c_ctSec :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ctSec x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x7
+c_ctSec (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_ctSec(x)(st))(i)(xs)(st)
+c_ctSec x st = Curry.RunTimeSystem.patternFail("Time.ctSec")(x)
+
+
+
+c_ctTZ :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ctTZ x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x8
+c_ctTZ (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_ctTZ(x)(st))(i)(xs)(st)
+c_ctTZ x st = Curry.RunTimeSystem.patternFail("Time.ctTZ")(x)
+
+
+
+c_getLocalTime :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Time.C_CalendarTime
+c_getLocalTime st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Time.c_getClockTime(st))(Curry.Module.Prelude.pf(Curry.Module.Time.c_getLocalTime'46_'35lambda2))(st)
+
+
+
+c_getLocalTime'46_'35lambda2 :: Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Time.C_CalendarTime
+c_getLocalTime'46_'35lambda2 x1 st = Curry.Module.Time.c_toCalendarTime(x1)(st)
+
+
+
+c_clockTimeToInt :: Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_clockTimeToInt x1@(Curry.Module.Time.C_CTime x2) st = x2
+c_clockTimeToInt (Curry.Module.Time.C_ClockTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_clockTimeToInt(x)(st))(i)(xs)(st)
+c_clockTimeToInt x st = Curry.RunTimeSystem.patternFail("Time.clockTimeToInt")(x)
+
+
+
+c_toCalendarTime :: Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Time.C_CalendarTime
+c_toCalendarTime x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Time.c_prim_toCalendarTime))(x1)(st)
+
+
+
+c_toUTCTime :: Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_CalendarTime
+c_toUTCTime x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Time.c_prim_toUTCTime))(x1)(st)
+
+
+
+c_toClockTime :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_ClockTime
+c_toClockTime x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Time.c_prim_toClockTime))(x1)(st)
+
+
+
+c_calendarTimeToString :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_calendarTimeToString x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.op_33_33((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('J'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((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('b'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((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.List))))((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('r'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((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('y'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('J'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('J'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((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('p'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((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('v'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((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('c'))(Curry.Module.Prelude.List))))(Curry.Module.Prelude.List)))))))))))))(Curry.Module.Prelude.op_45(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x4)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Time.c_toTimeString(x1)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))(Curry.Module.Prelude.c_show(x2)(st))(st))(st))(st))(st))(st))(st)
+c_calendarTimeToString (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_calendarTimeToString(x)(st))(i)(xs)(st)
+c_calendarTimeToString x st = Curry.RunTimeSystem.patternFail("Time.calendarTimeToString")(x)
+
+
+
+c_toDayString :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_toDayString x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.op_33_33((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('J'))((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('u'))((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))))))))((Curry.Module.Prelude.:<)((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('b'))((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('a'))((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('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('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))(Curry.Module.Prelude.List))))))((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('r'))((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('M'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('J'))((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.List)))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('J'))((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('y'))(Curry.Module.Prelude.List)))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((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('t'))(Curry.Module.Prelude.List)))))))((Curry.Module.Prelude.:<)((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('p'))((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('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))(Curry.Module.Prelude.List))))))))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((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('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))(Curry.Module.Prelude.List))))))))((Curry.Module.Prelude.:<)((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('v'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))(Curry.Module.Prelude.List)))))))))((Curry.Module.Prelude.:<)((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('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))(Curry.Module.Prelude.List)))))))))(Curry.Module.Prelude.List)))))))))))))(Curry.Module.Prelude.op_45(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x4)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(','))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))(Curry.Module.Prelude.c_show(x2)(st))(st))(st))(st))(st)
+c_toDayString (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_toDayString(x)(st))(i)(xs)(st)
+c_toDayString x st = Curry.RunTimeSystem.patternFail("Time.toDayString")(x)
+
+
+
+c_toTimeString :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_toTimeString x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = Curry.Module.Prelude.op_43_43(Curry.Module.Time.c_toTimeString'46digit2'4690(x5)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_43_43(Curry.Module.Time.c_toTimeString'46digit2'4690(x6)(st))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))(Curry.Module.Prelude.List))(Curry.Module.Time.c_toTimeString'46digit2'4690(x7)(st))(st))(st))(st))(st)
+c_toTimeString (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_toTimeString(x)(st))(i)(xs)(st)
+c_toTimeString x st = Curry.RunTimeSystem.patternFail("Time.toTimeString")(x)
+
+
+
+c_toTimeString'46digit2'4690 :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_toTimeString'46digit2'4690 x1 st = Curry.Module.Time.c_toTimeString'46digit2'4690_case_8(x1)(Curry.Module.Prelude.op_60(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(st)
+
+
+
+c_addSeconds :: Curry.Module.Prelude.C_Int -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_ClockTime
+c_addSeconds x1 x2@(Curry.Module.Time.C_CTime x3) st = Curry.Module.Time.C_CTime(Curry.Module.Prelude.op_43(x3)(x1)(st))
+c_addSeconds x1 (Curry.Module.Time.C_ClockTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addSeconds(x1)(x)(st))(i)(xs)(st)
+c_addSeconds x1 x st = Curry.RunTimeSystem.patternFail("Time.addSeconds")(x)
+
+
+
+c_addMinutes :: Curry.Module.Prelude.C_Int -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_ClockTime
+c_addMinutes x1 x2@(Curry.Module.Time.C_CTime x3) st = Curry.Module.Time.C_CTime(Curry.Module.Prelude.op_43(x3)(Curry.Module.Prelude.op_42(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))(st))(st))
+c_addMinutes x1 (Curry.Module.Time.C_ClockTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMinutes(x1)(x)(st))(i)(xs)(st)
+c_addMinutes x1 x st = Curry.RunTimeSystem.patternFail("Time.addMinutes")(x)
+
+
+
+c_addHours :: Curry.Module.Prelude.C_Int -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_ClockTime
+c_addHours x1 x2@(Curry.Module.Time.C_CTime x3) st = Curry.Module.Time.C_CTime(Curry.Module.Prelude.op_43(x3)(Curry.Module.Prelude.op_42(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))))))))(st))(st))
+c_addHours x1 (Curry.Module.Time.C_ClockTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addHours(x1)(x)(st))(i)(xs)(st)
+c_addHours x1 x st = Curry.RunTimeSystem.patternFail("Time.addHours")(x)
+
+
+
+c_addDays :: Curry.Module.Prelude.C_Int -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_ClockTime
+c_addDays x1 x2@(Curry.Module.Time.C_CTime x3) st = Curry.Module.Time.C_CTime(Curry.Module.Prelude.op_43(x3)(Curry.Module.Prelude.op_42(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(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_addDays x1 (Curry.Module.Time.C_ClockTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addDays(x1)(x)(st))(i)(xs)(st)
+c_addDays x1 x st = Curry.RunTimeSystem.patternFail("Time.addDays")(x)
+
+
+
+c_addMonths :: Curry.Module.Prelude.C_Int -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_ClockTime
+c_addMonths x1 x2 st = let {x3 = Curry.Module.Time.c_toUTCTime(x2)(st)} in let {x4 = Curry.Module.Time.c_addMonths'46_'35selFP3'35y(x3)(st)} in let {x5 = Curry.Module.Time.c_addMonths'46_'35selFP4'35mo(x3)(st)} in let {x6 = Curry.Module.Time.c_addMonths'46_'35selFP5'35d(x3)(st)} in let {x7 = Curry.Module.Time.c_addMonths'46_'35selFP6'35h(x3)(st)} in let {x8 = Curry.Module.Time.c_addMonths'46_'35selFP7'35mi(x3)(st)} in let {x9 = Curry.Module.Time.c_addMonths'46_'35selFP8'35s(x3)(st)} in let {x10 = Curry.Module.Time.c_addMonths'46_'35selFP9'35tz(x3)(st)} in let {x11 = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_mod(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x1)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)} in Curry.Module.Time.c_addMonths_case_7(x1)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11)(Curry.Module.Prelude.op_62(x11)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_addMonths'46_'35selFP3'35y :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addMonths'46_'35selFP3'35y x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x2
+c_addMonths'46_'35selFP3'35y (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMonths'46_'35selFP3'35y(x)(st))(i)(xs)(st)
+c_addMonths'46_'35selFP3'35y x st = Curry.RunTimeSystem.patternFail("Time.addMonths._#selFP3#y")(x)
+
+
+
+c_addMonths'46_'35selFP4'35mo :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addMonths'46_'35selFP4'35mo x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x3
+c_addMonths'46_'35selFP4'35mo (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMonths'46_'35selFP4'35mo(x)(st))(i)(xs)(st)
+c_addMonths'46_'35selFP4'35mo x st = Curry.RunTimeSystem.patternFail("Time.addMonths._#selFP4#mo")(x)
+
+
+
+c_addMonths'46_'35selFP5'35d :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addMonths'46_'35selFP5'35d x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x4
+c_addMonths'46_'35selFP5'35d (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMonths'46_'35selFP5'35d(x)(st))(i)(xs)(st)
+c_addMonths'46_'35selFP5'35d x st = Curry.RunTimeSystem.patternFail("Time.addMonths._#selFP5#d")(x)
+
+
+
+c_addMonths'46_'35selFP6'35h :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addMonths'46_'35selFP6'35h x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x5
+c_addMonths'46_'35selFP6'35h (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMonths'46_'35selFP6'35h(x)(st))(i)(xs)(st)
+c_addMonths'46_'35selFP6'35h x st = Curry.RunTimeSystem.patternFail("Time.addMonths._#selFP6#h")(x)
+
+
+
+c_addMonths'46_'35selFP7'35mi :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addMonths'46_'35selFP7'35mi x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x6
+c_addMonths'46_'35selFP7'35mi (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMonths'46_'35selFP7'35mi(x)(st))(i)(xs)(st)
+c_addMonths'46_'35selFP7'35mi x st = Curry.RunTimeSystem.patternFail("Time.addMonths._#selFP7#mi")(x)
+
+
+
+c_addMonths'46_'35selFP8'35s :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addMonths'46_'35selFP8'35s x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x7
+c_addMonths'46_'35selFP8'35s (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMonths'46_'35selFP8'35s(x)(st))(i)(xs)(st)
+c_addMonths'46_'35selFP8'35s x st = Curry.RunTimeSystem.patternFail("Time.addMonths._#selFP8#s")(x)
+
+
+
+c_addMonths'46_'35selFP9'35tz :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addMonths'46_'35selFP9'35tz x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x8
+c_addMonths'46_'35selFP9'35tz (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMonths'46_'35selFP9'35tz(x)(st))(i)(xs)(st)
+c_addMonths'46_'35selFP9'35tz x st = Curry.RunTimeSystem.patternFail("Time.addMonths._#selFP9#tz")(x)
+
+
+
+c_addYears :: Curry.Module.Prelude.C_Int -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_ClockTime
+c_addYears x1 x2 st = Curry.Module.Time.c_addYears_case_6(x1)(x2)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_addYears'46_'35selFP11'35y :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addYears'46_'35selFP11'35y x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x2
+c_addYears'46_'35selFP11'35y (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addYears'46_'35selFP11'35y(x)(st))(i)(xs)(st)
+c_addYears'46_'35selFP11'35y x st = Curry.RunTimeSystem.patternFail("Time.addYears._#selFP11#y")(x)
+
+
+
+c_addYears'46_'35selFP12'35mo :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addYears'46_'35selFP12'35mo x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x3
+c_addYears'46_'35selFP12'35mo (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addYears'46_'35selFP12'35mo(x)(st))(i)(xs)(st)
+c_addYears'46_'35selFP12'35mo x st = Curry.RunTimeSystem.patternFail("Time.addYears._#selFP12#mo")(x)
+
+
+
+c_addYears'46_'35selFP13'35d :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addYears'46_'35selFP13'35d x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x4
+c_addYears'46_'35selFP13'35d (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addYears'46_'35selFP13'35d(x)(st))(i)(xs)(st)
+c_addYears'46_'35selFP13'35d x st = Curry.RunTimeSystem.patternFail("Time.addYears._#selFP13#d")(x)
+
+
+
+c_addYears'46_'35selFP14'35h :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addYears'46_'35selFP14'35h x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x5
+c_addYears'46_'35selFP14'35h (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addYears'46_'35selFP14'35h(x)(st))(i)(xs)(st)
+c_addYears'46_'35selFP14'35h x st = Curry.RunTimeSystem.patternFail("Time.addYears._#selFP14#h")(x)
+
+
+
+c_addYears'46_'35selFP15'35mi :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addYears'46_'35selFP15'35mi x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x6
+c_addYears'46_'35selFP15'35mi (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addYears'46_'35selFP15'35mi(x)(st))(i)(xs)(st)
+c_addYears'46_'35selFP15'35mi x st = Curry.RunTimeSystem.patternFail("Time.addYears._#selFP15#mi")(x)
+
+
+
+c_addYears'46_'35selFP16'35s :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addYears'46_'35selFP16'35s x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x7
+c_addYears'46_'35selFP16'35s (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addYears'46_'35selFP16'35s(x)(st))(i)(xs)(st)
+c_addYears'46_'35selFP16'35s x st = Curry.RunTimeSystem.patternFail("Time.addYears._#selFP16#s")(x)
+
+
+
+c_addYears'46_'35selFP17'35tz :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_addYears'46_'35selFP17'35tz x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x8
+c_addYears'46_'35selFP17'35tz (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addYears'46_'35selFP17'35tz(x)(st))(i)(xs)(st)
+c_addYears'46_'35selFP17'35tz x st = Curry.RunTimeSystem.patternFail("Time.addYears._#selFP17#tz")(x)
+
+
+
+c_daysOfMonth :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_daysOfMonth x1 x2 st = Curry.Module.Time.c_daysOfMonth_case_5(x1)(x2)(Curry.Module.Prelude.op_47_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st)
+
+
+
+c_validDate :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_validDate x1 x2 x3 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62(x2)(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_60(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62(x3)(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Prelude.op_60_61(x3)(Curry.Module.Time.c_daysOfMonth(x2)(x1)(st))(st))(st))(st))(st)
+
+
+
+c_compareDate :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering))
+c_compareDate st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Time.c_compareCalendarTime)
+
+
+
+c_compareCalendarTime :: Curry.Module.Time.C_CalendarTime -> Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_compareCalendarTime x1 x2 st = Curry.Module.Time.c_compareClockTime(Curry.Module.Time.c_toClockTime(x1)(st))(Curry.Module.Time.c_toClockTime(x2)(st))(st)
+
+
+
+c_compareClockTime :: Curry.Module.Time.C_ClockTime -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Ordering
+c_compareClockTime x1@(Curry.Module.Time.C_CTime x3) x2 st = Curry.Module.Time.c_compareClockTime_case_3(x3)(x2)(st)
+c_compareClockTime (Curry.Module.Time.C_ClockTimeOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_compareClockTime(x)(x2)(st))(i)(xs)(st)
+c_compareClockTime x x2 st = Curry.RunTimeSystem.patternFail("Time.compareClockTime")(x)
+
+
+
+c_compareClockTime_case_3 x3 x2@(Curry.Module.Time.C_CTime x4) st = Curry.Module.Time.c_compareClockTime_case_2(x3)(x4)(Curry.Module.Prelude.op_60(x3)(x4)(st))(st)
+c_compareClockTime_case_3 x3 (Curry.Module.Time.C_ClockTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_compareClockTime_case_3(x3)(x)(st))(i)(xs)(st)
+c_compareClockTime_case_3 x3 x st = Curry.RunTimeSystem.patternFail("Time.compareClockTime_case_3")(x)
+
+
+
+c_compareClockTime_case_2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_LT
+c_compareClockTime_case_2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Time.c_compareClockTime_case_1(x3)(x4)(Curry.Module.Prelude.op_62(x3)(x4)(st))(st)
+c_compareClockTime_case_2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_compareClockTime_case_2(x3)(x4)(x)(st))(i)(xs)(st)
+c_compareClockTime_case_2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Time.compareClockTime_case_2")(x)
+
+
+
+c_compareClockTime_case_1 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_GT
+c_compareClockTime_case_1 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Time.c_compareClockTime_case_0(Curry.Module.Prelude.c_otherwise(st))(st)
+c_compareClockTime_case_1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_compareClockTime_case_1(x3)(x4)(x)(st))(i)(xs)(st)
+c_compareClockTime_case_1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Time.compareClockTime_case_1")(x)
+
+
+
+c_compareClockTime_case_0 x1@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_EQ
+c_compareClockTime_case_0 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_compareClockTime_case_0(x)(st))(i)(xs)(st)
+c_compareClockTime_case_0 x st = Curry.RunTimeSystem.patternFail("Time.compareClockTime_case_0")(x)
+
+
+
+c_daysOfMonth_case_5 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_33_33((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))(Curry.Module.Prelude.List)))))))))))))(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)
+c_daysOfMonth_case_5 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Time.c_daysOfMonth_case_4(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(st))(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_47_61(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))))(st))(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))))))(st))(Curry.Module.Prelude.C_Zero)(st))(st))(st))(st)
+c_daysOfMonth_case_5 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_daysOfMonth_case_5(x1)(x2)(x)(st))(i)(xs)(st)
+c_daysOfMonth_case_5 x1 x2 x st = Curry.RunTimeSystem.patternFail("Time.daysOfMonth_case_5")(x)
+
+
+
+c_daysOfMonth_case_4 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))
+c_daysOfMonth_case_4 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))
+c_daysOfMonth_case_4 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_daysOfMonth_case_4(x2)(x)(st))(i)(xs)(st)
+c_daysOfMonth_case_4 x2 x st = Curry.RunTimeSystem.patternFail("Time.daysOfMonth_case_4")(x)
+
+
+
+c_addYears_case_6 x1 x2 x3@Curry.Module.Prelude.C_True st = x2
+c_addYears_case_6 x1 x2 x3@Curry.Module.Prelude.C_False st = let {x3 = Curry.Module.Time.c_toUTCTime(x2)(st)} in Curry.Module.Time.c_toClockTime(Curry.Module.Time.C_CalendarTime(Curry.Module.Prelude.op_43(Curry.Module.Time.c_addYears'46_'35selFP11'35y(x3)(st))(x1)(st))(Curry.Module.Time.c_addYears'46_'35selFP12'35mo(x3)(st))(Curry.Module.Time.c_addYears'46_'35selFP13'35d(x3)(st))(Curry.Module.Time.c_addYears'46_'35selFP14'35h(x3)(st))(Curry.Module.Time.c_addYears'46_'35selFP15'35mi(x3)(st))(Curry.Module.Time.c_addYears'46_'35selFP16'35s(x3)(st))(Curry.Module.Time.c_addYears'46_'35selFP17'35tz(x3)(st)))(st)
+c_addYears_case_6 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addYears_case_6(x1)(x2)(x)(st))(i)(xs)(st)
+c_addYears_case_6 x1 x2 x st = Curry.RunTimeSystem.patternFail("Time.addYears_case_6")(x)
+
+
+
+c_addMonths_case_7 x1 x4 x5 x6 x7 x8 x9 x10 x11 x12@Curry.Module.Prelude.C_True st = Curry.Module.Time.c_addYears(Curry.Module.Prelude.c_div(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x1)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(st))(Curry.Module.Time.c_toClockTime(Curry.Module.Time.C_CalendarTime(x4)(x11)(x6)(x7)(x8)(x9)(x10))(st))(st)
+c_addMonths_case_7 x1 x4 x5 x6 x7 x8 x9 x10 x11 x12@Curry.Module.Prelude.C_False st = Curry.Module.Time.c_addYears(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_div(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x1)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Time.c_toClockTime(Curry.Module.Time.C_CalendarTime(x4)(Curry.Module.Prelude.op_43(x11)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))(st))(x6)(x7)(x8)(x9)(x10))(st))(st)
+c_addMonths_case_7 x1 x4 x5 x6 x7 x8 x9 x10 x11 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_addMonths_case_7(x1)(x4)(x5)(x6)(x7)(x8)(x9)(x10)(x11)(x)(st))(i)(xs)(st)
+c_addMonths_case_7 x1 x4 x5 x6 x7 x8 x9 x10 x11 x st = Curry.RunTimeSystem.patternFail("Time.addMonths_case_7")(x)
+
+
+
+c_toTimeString'46digit2'4690_case_8 x1 x2@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('0'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_chr(Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_ord(Curry.Module.Prelude.C_Char('0'))(st))(x1)(st))(st))(Curry.Module.Prelude.List))
+c_toTimeString'46digit2'4690_case_8 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_show(x1)(st)
+c_toTimeString'46digit2'4690_case_8 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Time.c_toTimeString'46digit2'4690_case_8(x1)(x)(st))(i)(xs)(st)
+c_toTimeString'46digit2'4690_case_8 x1 x st = Curry.RunTimeSystem.patternFail("Time.toTimeString.digit2.90_case_8")(x)
+
+
+
+c_getClockTime :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Time.C_ClockTime
+c_getClockTime st = Curry.Module.Time.getClockTime(st)
+
+
+
+c_prim_toCalendarTime :: Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Time.C_CalendarTime
+c_prim_toCalendarTime x1 st = Curry.Module.Time.prim_toCalendarTime(x1)(st)
+
+
+
+c_prim_toUTCTime :: Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_CalendarTime
+c_prim_toUTCTime x1 st = Curry.Module.Time.prim_toUTCTime(x1)(st)
+
+
+
+c_prim_toClockTime :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Time.C_ClockTime
+c_prim_toClockTime x1 st = Curry.Module.Time.prim_toClockTime(x1)(st)
+
+
diff --git a/dist/build/Curry/Module/Traversal.hs b/dist/build/Curry/Module/Traversal.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Traversal.hs
@@ -0,0 +1,143 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Traversal (module Curry.Module.Traversal) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_Traversable t0 t1 = t0 -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0))
+
+type C_FunList t0 = (Curry.Module.Prelude.List t0) -> Curry.Module.Prelude.List t0
+
+c_noChildren :: (Curry t0,Curry t1) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0))
+c_noChildren x1 st = Curry.Module.Prelude.T2(Curry.Module.Prelude.List)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(x1)))
+
+
+
+c_children :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1)
+c_children x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))(x1)(st)
+
+
+
+c_replaceChildren :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0))
+c_replaceChildren x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(x1)(st)
+
+
+
+c_mapChildren :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) -> t0 -> Curry.RunTimeSystem.State -> t0
+c_mapChildren x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Traversal.c_replaceChildren(x1)(st))(x3)(st))(Curry.Module.Prelude.c_map(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Traversal.c_children(x1)(st))(x3)(st))(st))(st)
+
+
+
+c_family :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0)))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_family x1 x2 st = Curry.Module.Traversal.c_familyFL(x1)(x2)(Curry.Module.Prelude.List)(st)
+
+
+
+c_childFamilies :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t1)))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1
+c_childFamilies x1 x2 x3 st = Curry.Module.Traversal.c_childFamiliesFL(x1)(x2)(x3)(Curry.Module.Prelude.List)(st)
+
+
+
+c_mapFamily :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)
+c_mapFamily x1 x2 st = Curry.Module.Prelude.op_46(x2)(Curry.Module.Prelude.c_apply(Curry.Module.Traversal.c_mapChildFamilies(x1)(x1)(st))(x2)(st))(st)
+
+
+
+c_mapChildFamilies :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t1)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))
+c_mapChildFamilies x1 x2 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Traversal.c_mapChildren(x1)))(Curry.Module.Prelude.pf(Curry.Module.Traversal.c_mapFamily(x2)))(st)
+
+
+
+c_evalFamily :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)
+c_evalFamily x1 x2 st = Curry.Module.Traversal.c_mapFamily(x1)(Curry.Module.Prelude.pf(Curry.Module.Traversal.c_evalFamily'46g'4619(x2)(x1)))(st)
+
+
+
+c_evalFamily'46g'4619 :: (Curry t100) => (Curry.Module.Prelude.Prim (t100 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t100)) -> (Curry.Module.Prelude.Prim (t100 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t100) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t100) -> Curry.RunTimeSystem.State -> t100)))) -> t100 -> Curry.RunTimeSystem.State -> t100
+c_evalFamily'46g'4619 x1 x2 x3 st = Curry.Module.Prelude.c_maybe(x3)(Curry.Module.Traversal.c_mapFamily(x2)(Curry.Module.Prelude.pf(Curry.Module.Traversal.c_evalFamily'46g'4619(x1)(x2)))(st))(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+c_evalChildFamilies :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t1)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0))
+c_evalChildFamilies x1 x2 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Traversal.c_mapChildren(x1)))(Curry.Module.Prelude.pf(Curry.Module.Traversal.c_evalFamily(x2)))(st)
+
+
+
+c_fold :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t1))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)
+c_fold x1 x2 st = Curry.Module.Prelude.pf(Curry.Module.Traversal.c_foldChildren(x1)(x1)(x2)(x2))
+
+
+
+c_foldChildren :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t1)))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t2) -> Curry.RunTimeSystem.State -> t3))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t2) -> Curry.RunTimeSystem.State -> t2))) -> t0 -> Curry.RunTimeSystem.State -> t3
+c_foldChildren x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(x5)(st))(Curry.Module.Prelude.c_map(Curry.Module.Traversal.c_fold(x2)(x4)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Traversal.c_children(x1)(st))(x5)(st))(st))(st)
+
+
+
+c_replaceChildrenIO :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))
+c_replaceChildrenIO x1 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Traversal.c_liftIO))(Curry.Module.Traversal.c_replaceChildren(x1)(st))(st)
+
+
+
+c_mapChildrenIO :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1)) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_mapChildrenIO x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Traversal.c_replaceChildrenIO(x1)(st))(x3)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_mapIO(x2)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Traversal.c_children(x1)(st))(x3)(st))(st))(st)
+
+
+
+c_mapFamilyIO :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_mapFamilyIO x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Traversal.c_mapChildFamiliesIO(x1)(x1)(st))(x2)(st))(x3)(st))(x2)(st)
+
+
+
+c_mapChildFamiliesIO :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t1)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))
+c_mapChildFamiliesIO x1 x2 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Traversal.c_mapChildrenIO(x1)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Traversal.c_mapFamilyIO(x2)))(st)
+
+
+
+c_evalFamilyIO :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)
+c_evalFamilyIO x1 x2 st = Curry.Module.Prelude.pf(Curry.Module.Traversal.c_mapFamilyIO(x1)(Curry.Module.Prelude.pf(Curry.Module.Traversal.c_evalFamilyIO'46g'4637(x2)(x1))))
+
+
+
+c_evalFamilyIO'46g'4637 :: (Curry t202) => (Curry.Module.Prelude.Prim (t202 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t202))) -> (Curry.Module.Prelude.Prim (t202 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t202) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t202) -> Curry.RunTimeSystem.State -> t202)))) -> t202 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t202
+c_evalFamilyIO'46g'4637 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.Prelude.c_maybe(Curry.Module.Prelude.c_return(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Traversal.c_mapFamilyIO(x2)(Curry.Module.Prelude.pf(Curry.Module.Traversal.c_evalFamilyIO'46g'4637(x1)(x2)))))))(st)
+
+
+
+c_evalChildFamiliesIO :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t1)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t1))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))
+c_evalChildFamiliesIO x1 x2 st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Traversal.c_mapChildrenIO(x1)))(Curry.Module.Prelude.pf(Curry.Module.Traversal.c_evalFamilyIO(x2)))(st)
+
+
+
+c_concatFL :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0))) -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_concatFL x1@Curry.Module.Prelude.List x2 st = x2
+c_concatFL x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.Prelude.c_apply(x3)(Curry.Module.Traversal.c_concatFL(x4)(x2)(st))(st)
+c_concatFL (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Traversal.c_concatFL(x)(x2)(st))(i)(xs)(st)
+c_concatFL x x2 st = Curry.RunTimeSystem.patternFail("Traversal.concatFL")(x)
+
+
+
+c_familyFL :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t0) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0)))) -> t0 -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t0
+c_familyFL x1 x2 x3 st = (Curry.Module.Prelude.:<)(x2)(Curry.Module.Traversal.c_childFamiliesFL(x1)(x1)(x2)(x3)(st))
+
+
+
+c_childFamiliesFL :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t0)))) -> (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List t1) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> t1)))) -> t0 -> (Curry.Module.Prelude.List t1) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t1
+c_childFamiliesFL x1 x2 x3 x4 st = Curry.Module.Traversal.c_concatFL(Curry.Module.Prelude.c_map(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Traversal.c_familyFL(x2)))(Curry.Module.Prelude.c_apply(Curry.Module.Traversal.c_children(x1)(st))(x3)(st))(st))(x4)(st)
+
+
+
+c_liftIO :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> (Curry.Module.Prelude.C_IO t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1
+c_liftIO x1 x2 st = Curry.Module.Prelude.op_62_62_61(x2)(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(x1)(st))(st)
+
+
diff --git a/dist/build/Curry/Module/Unsafe.hs b/dist/build/Curry/Module/Unsafe.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Unsafe.hs
@@ -0,0 +1,308 @@
+{-# OPTIONS -cpp  #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Unsafe (module Curry.Module.Unsafe) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Char
+import Curry.Module.Meta
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+import System.IO.Unsafe 
+import Data.IORef
+
+prim_isVar :: Curry a => a -> Result C_Bool
+prim_isVar x _ = case consKind x of
+  Branching -> toCurry (isGenerator (orRef x))
+  _         -> C_False
+
+prim_unsafePerformIO :: Curry a => C_IO a -> Result a
+prim_unsafePerformIO (C_IO action) st = unsafe (unsafePerformIO (action st)) st
+ 
+
+unsafe :: Curry a => IOVal a -> Result a
+unsafe (IOVal v)        _  = v
+unsafe (IOValFail e)    _  = Curry.RunTimeSystem.failed e
+unsafe (IOValOr r bs)   st = mapOr (\ x -> unsafe (unsafePerformIO x)) r bs st
+{-
+-- the main point about unsafe:  the value of suspensions has to be stored.
+unsafe (IOValSusp _ susp) = let sRef = nextSuspRef () in
+  suspend False  (saveSuspValue sRef (const (tra sRef "cont" unsafe)) 
+                                (\st -> tra sRef "" (unsafePerformIO (susp (Just st)))))
+
+-- Sometimes we have to make sure that suspensions are not evaluated twice.
+-- Most notably this is true for suspended unsafely performed io actions .
+-- This function saves its result in the store and retrieves it whenever 
+-- called. Only when there has been no value stored yet, the given suspension 
+-- is called with the store.
+-- Saving suspensions values this way is a bit complicated.
+-- First, look if suspension already lifted from somewhere else. 
+--   if so, the result has already been stored
+--   if not, test if suspension can be lifted with given store
+--             if so, call cont and save result in store (shared!)
+--             if not, test if suspension did at least something (test sref)
+--                        if so, recursive call with new suspension
+--                        if not, suspend with given sRef "done Nothing"
+saveSuspValue :: (Curry a,Curry b) => 
+             FreeVarRef -> (State -> a -> b) -> (Store -> a) -> Store -> b
+saveSuspValue sRef cont susp store = 
+  trace "saveSuspValue " $
+  case fromStore store sRef of
+     Nothing -> trace "saveSusp: Nothing" $ let x = susp store in
+       case consKind x of
+        Suspended -> if suspRef x then saveSuspValue sRef cont (suspCont x) store 
+                                  else suspend False (saveSuspValue sRef cont (suspCont x))
+        _ -> tr "saveSusp: not suspended" $ let res = cont (Just store) x in
+          branching (nextOrRef ())
+                [(\st -> Modified (addToStore st sRef res),trace "saveSusp: res" res)]
+     Just v -> trace "saveSusp: Just" trV v v
+  where
+    tr = tra sRef
+    trV x =  case consKind x of
+       Branching -> case branches x of
+                     [(_,b)] -> trV b
+                     bs -> trace $ "Branch length " ++ (show $ length bs)
+       ck -> tr (show ck)
+
+-}
+
+prim_identicalVar :: Curry a => a  -> a -> Result C_Bool
+prim_identicalVar x y _ = case (consKind x,consKind y) of
+  (Branching,Branching) -> let rx = orRef x
+                               ry = orRef y in
+                           if isGenerator rx && isGenerator ry
+                           then toCurry (deref rx Prelude.== deref ry)
+                           else C_False
+  _                     -> C_False
+
+
+prim_showAnyTerm t _ = toCurry (show t)
+
+prim_showAnyQTerm :: Curry a => a -> Result C_String
+prim_showAnyQTerm x _ = toCurry (showQ 0 x "")
+
+prim_readsAnyUnqualifiedTerm = error "ExternalFunctionsUnsafe.prim_readsAnyUnqualifiedTerm"
+
+prim_readsAnyQTerm = error "ExternalFunctionsUnsafe.prim_readsAnyQTerm"
+
+showAnyExpression = error "ExternalFunctionsUnsafe.prim_showAnyExpression"
+
+
+showAnyQExpression = error "ExternalFunctionsUnsafe.prim_showAnyQExpression"
+
+--spawnConstraint :: Curry a => C_Success -> a -> a
+spawnConstraint _ c x = undefined 
+
+try :: Curry a => a -> Result (C_Either a (T2 C_OrRef (List a)))
+try x _ = case consKind x of
+          Val       -> C_Left x
+          Branching -> C_Right (T2 (C_OrRef (orRef x)) 
+                                   (fromHaskellList (branches x)))
+          c -> error ("try: consKind is "++show c)
+
+orsWithOrRef :: Curry a => C_OrRef -> List a -> Result a
+orsWithOrRef (C_OrRef r) xs _ = branching r (toHaskellList xs)
+
+generateChoice :: Curry a => List a -> Result a
+generateChoice xs _ = branching (mkRef 0 0 (nextRef 0)) (toHaskellList xs)
+
+
+nrOfChoices :: Result (C_IO C_Int)
+nrOfChoices st = 
+  C_IO (\ st' -> Prelude.return (IOVal (toCurry (max (size' st) (size' st')))))
+  where
+    size' = storeSize 
+
+
+
+
+-- end included
+
+c_unsafePerformIO :: (Curry t0) => (Curry.Module.Prelude.C_IO t0) -> Curry.RunTimeSystem.State -> t0
+c_unsafePerformIO x1 st = Curry.Module.Prelude.op_36_35(Curry.Module.Prelude.pf(Curry.Module.Unsafe.c_prim_unsafePerformIO))(x1)(st)
+
+
+
+c_trace :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t0 -> Curry.RunTimeSystem.State -> t0
+c_trace x1 x2 st = Curry.Module.Unsafe.c_unsafePerformIO(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStr(x1)(st))(Curry.Module.Prelude.c_return(x2)(st))(st))(st)
+
+
+
+c_isVar :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isVar x1 st = Curry.Module.Unsafe.c_unsafePerformIO(Curry.Module.Prelude.op_62_62_61(Curry.Module.Meta.c_isFree(x1)(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_either(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.Prelude.C_True)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.Prelude.C_False)))))(st))(st))(st)
+
+
+
+c_identicalVar :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_identicalVar x1 x2 st = Curry.Module.Prelude.op_36_33(Curry.Module.Prelude.op_36_33(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Unsafe.c_prim_identicalVar))(x1)(st))(x2)(st)
+
+
+
+c_showAnyTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showAnyTerm x1 st = Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.Unsafe.c_prim_showAnyTerm))(x1)(st)
+
+
+
+c_showAnyQTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showAnyQTerm x1 st = Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.Unsafe.c_prim_showAnyQTerm))(x1)(st)
+
+
+
+c_readsAnyUnqualifiedTerm :: (Curry t0) => (Curry.Module.Prelude.List (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.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_readsAnyUnqualifiedTerm x1@Curry.Module.Prelude.List x2 st = Curry.Module.Prelude.c_error((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('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((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('T'))((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('m'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((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('q'))((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('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('r'))((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(' '))((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('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('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(' '))((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('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((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('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('e'))((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('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(st)
+c_readsAnyUnqualifiedTerm x1@((Curry.Module.Prelude.:<) x3 x4) x2 st = Curry.Module.Unsafe.c_readsAnyUnqualifiedTermWithPrefixes((Curry.Module.Prelude.:<)(x3)(x4))(x2)(st)
+c_readsAnyUnqualifiedTerm (Curry.Module.Prelude.ListOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readsAnyUnqualifiedTerm(x)(x2)(st))(i)(xs)(st)
+c_readsAnyUnqualifiedTerm x x2 st = Curry.RunTimeSystem.patternFail("Unsafe.readsAnyUnqualifiedTerm")(x)
+
+
+
+c_readsAnyUnqualifiedTermWithPrefixes :: (Curry t0) => (Curry.Module.Prelude.List (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.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_readsAnyUnqualifiedTermWithPrefixes x1 x2 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Unsafe.c_prim_readsAnyUnqualifiedTerm))(x1)(st))(x2)(st)
+
+
+
+c_readAnyUnqualifiedTerm :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t0
+c_readAnyUnqualifiedTerm x1 x2 st = Curry.Module.Unsafe.c_readAnyUnqualifiedTerm_case_7(x1)(x2)(Curry.Module.Unsafe.c_readsAnyUnqualifiedTerm(x1)(x2)(st))(st)
+
+
+
+c_readsAnyQTerm :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_readsAnyQTerm x1 st = Curry.Module.Prelude.op_36_35_35(Curry.Module.Prelude.pf(Curry.Module.Unsafe.c_prim_readsAnyQTerm))(x1)(st)
+
+
+
+c_readAnyQTerm :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> t0
+c_readAnyQTerm x1 st = Curry.Module.Unsafe.c_readAnyQTerm_case_3(x1)(Curry.Module.Unsafe.c_readsAnyQTerm(x1)(st))(st)
+
+
+
+c_readAnyQTerm_case_3 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Unsafe.c_readAnyQTerm_case_2(x4)(x3)(st)
+c_readAnyQTerm_case_3 x1 x2@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_error((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('.'))((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('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('Q'))((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('r'))((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(' '))((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(' '))((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('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))(st)
+c_readAnyQTerm_case_3 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readAnyQTerm_case_3(x1)(x)(st))(i)(xs)(st)
+c_readAnyQTerm_case_3 x1 x st = Curry.RunTimeSystem.patternFail("Unsafe.readAnyQTerm_case_3")(x)
+
+
+
+c_readAnyQTerm_case_2 x4 x3@(Curry.Module.Prelude.T2 x5 x6) st = Curry.Module.Unsafe.c_readAnyQTerm_case_1(x5)(x6)(x4)(st)
+c_readAnyQTerm_case_2 x4 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readAnyQTerm_case_2(x4)(x)(st))(i)(xs)(st)
+c_readAnyQTerm_case_2 x4 x st = Curry.RunTimeSystem.patternFail("Unsafe.readAnyQTerm_case_2")(x)
+
+
+
+c_readAnyQTerm_case_1 x5 x6 x4@Curry.Module.Prelude.List st = Curry.Module.Unsafe.c_readAnyQTerm_case_0(x5)(x6)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_all(Curry.Module.Prelude.pf(Curry.Module.Char.c_isSpace))(st))(x6)(st))(st)
+c_readAnyQTerm_case_1 x5 x6 x4@((Curry.Module.Prelude.:<) x7 x8) st = Curry.Module.Prelude.c_error((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('.'))((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('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('Q'))((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('r'))((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(' '))((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('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('s'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))(st)
+c_readAnyQTerm_case_1 x5 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readAnyQTerm_case_1(x5)(x6)(x)(st))(i)(xs)(st)
+c_readAnyQTerm_case_1 x5 x6 x st = Curry.RunTimeSystem.patternFail("Unsafe.readAnyQTerm_case_1")(x)
+
+
+
+c_readAnyQTerm_case_0 x5 x6 x7@Curry.Module.Prelude.C_True st = x5
+c_readAnyQTerm_case_0 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_error((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('.'))((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('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('Q'))((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('r'))((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(' '))((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(' '))((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('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))(st)
+c_readAnyQTerm_case_0 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readAnyQTerm_case_0(x5)(x6)(x)(st))(i)(xs)(st)
+c_readAnyQTerm_case_0 x5 x6 x st = Curry.RunTimeSystem.patternFail("Unsafe.readAnyQTerm_case_0")(x)
+
+
+
+c_readAnyUnqualifiedTerm_case_7 x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Unsafe.c_readAnyUnqualifiedTerm_case_6(x5)(x4)(st)
+c_readAnyUnqualifiedTerm_case_7 x1 x2 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.c_error((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('.'))((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('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((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('q'))((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('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('r'))((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(' '))((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(' '))((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('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))(st)
+c_readAnyUnqualifiedTerm_case_7 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readAnyUnqualifiedTerm_case_7(x1)(x2)(x)(st))(i)(xs)(st)
+c_readAnyUnqualifiedTerm_case_7 x1 x2 x st = Curry.RunTimeSystem.patternFail("Unsafe.readAnyUnqualifiedTerm_case_7")(x)
+
+
+
+c_readAnyUnqualifiedTerm_case_6 x5 x4@(Curry.Module.Prelude.T2 x6 x7) st = Curry.Module.Unsafe.c_readAnyUnqualifiedTerm_case_5(x6)(x7)(x5)(st)
+c_readAnyUnqualifiedTerm_case_6 x5 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readAnyUnqualifiedTerm_case_6(x5)(x)(st))(i)(xs)(st)
+c_readAnyUnqualifiedTerm_case_6 x5 x st = Curry.RunTimeSystem.patternFail("Unsafe.readAnyUnqualifiedTerm_case_6")(x)
+
+
+
+c_readAnyUnqualifiedTerm_case_5 x6 x7 x5@Curry.Module.Prelude.List st = Curry.Module.Unsafe.c_readAnyUnqualifiedTerm_case_4(x6)(x7)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_all(Curry.Module.Prelude.pf(Curry.Module.Char.c_isSpace))(st))(x7)(st))(st)
+c_readAnyUnqualifiedTerm_case_5 x6 x7 x5@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Prelude.c_error((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('.'))((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('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((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('q'))((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('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('r'))((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(' '))((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('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((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('s'))((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('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))(st)
+c_readAnyUnqualifiedTerm_case_5 x6 x7 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readAnyUnqualifiedTerm_case_5(x6)(x7)(x)(st))(i)(xs)(st)
+c_readAnyUnqualifiedTerm_case_5 x6 x7 x st = Curry.RunTimeSystem.patternFail("Unsafe.readAnyUnqualifiedTerm_case_5")(x)
+
+
+
+c_readAnyUnqualifiedTerm_case_4 x6 x7 x8@Curry.Module.Prelude.C_True st = x6
+c_readAnyUnqualifiedTerm_case_4 x6 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_error(Curry.Module.Prelude.op_43_43((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('.'))((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('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((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('q'))((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('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((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('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((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('r'))((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(' '))((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(' '))((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('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(' '))((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('m'))((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('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('s'))((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('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('f'))((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('r'))((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('e'))((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(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(x7)(st))(st)
+c_readAnyUnqualifiedTerm_case_4 x6 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Unsafe.c_readAnyUnqualifiedTerm_case_4(x6)(x7)(x)(st))(i)(xs)(st)
+c_readAnyUnqualifiedTerm_case_4 x6 x7 x st = Curry.RunTimeSystem.patternFail("Unsafe.readAnyUnqualifiedTerm_case_4")(x)
+
+
+
+c_prim_unsafePerformIO :: (Curry t0) => (Curry.Module.Prelude.C_IO t0) -> Curry.RunTimeSystem.State -> t0
+c_prim_unsafePerformIO x1 st = Curry.Module.Unsafe.prim_unsafePerformIO(x1)(st)
+
+
+
+c_spawnConstraint :: (Curry t0) => Curry.Module.Prelude.C_Success -> t0 -> Curry.RunTimeSystem.State -> t0
+c_spawnConstraint x1 x2 st = Curry.Module.Unsafe.spawnConstraint(x1)(x2)(st)
+
+
+
+c_prim_isVar :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_prim_isVar x1 st = Curry.Module.Unsafe.prim_isVar(x1)(st)
+
+
+
+c_prim_identicalVar :: (Curry t0) => t0 -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_prim_identicalVar x1 x2 st = Curry.Module.Unsafe.prim_identicalVar(x1)(x2)(st)
+
+
+
+c_prim_showAnyTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_prim_showAnyTerm x1 st = Curry.Module.Unsafe.prim_showAnyTerm(x1)(st)
+
+
+
+c_prim_showAnyQTerm :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_prim_showAnyQTerm x1 st = Curry.Module.Unsafe.prim_showAnyQTerm(x1)(st)
+
+
+
+c_prim_readsAnyUnqualifiedTerm :: (Curry t0) => (Curry.Module.Prelude.List (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.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_prim_readsAnyUnqualifiedTerm x1 x2 st = Curry.Module.Unsafe.prim_readsAnyUnqualifiedTerm(x1)(x2)(st)
+
+
+
+c_prim_readsAnyQTerm :: (Curry t0) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 t0 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_prim_readsAnyQTerm x1 st = Curry.Module.Unsafe.prim_readsAnyQTerm(x1)(st)
+
+
+
+c_showAnyExpression :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showAnyExpression x1 st = Curry.Module.Unsafe.showAnyExpression(x1)(st)
+
+
+
+c_showAnyQExpression :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_showAnyQExpression x1 st = Curry.Module.Unsafe.showAnyQExpression(x1)(st)
+
+
+
+c_try :: (Curry t0) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either t0 (Curry.Module.Prelude.T2 Curry.Module.Meta.C_OrRef (Curry.Module.Prelude.List t0))
+c_try x1 st = Curry.Module.Unsafe.try(x1)(st)
+
+
+
+c_orsWithOrRef :: (Curry t0) => Curry.Module.Meta.C_OrRef -> (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0
+c_orsWithOrRef x1 x2 st = Curry.Module.Unsafe.orsWithOrRef(x1)(x2)(st)
+
+
+
+c_generateChoice :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> t0
+c_generateChoice x1 st = Curry.Module.Unsafe.generateChoice(x1)(st)
+
+
+
+c_nrOfChoices :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
+c_nrOfChoices st = Curry.Module.Unsafe.nrOfChoices(st)
+
+
diff --git a/src/Curry/Compiler/Config.hs b/src/Curry/Compiler/Config.hs
--- a/src/Curry/Compiler/Config.hs
+++ b/src/Curry/Compiler/Config.hs
@@ -3,17 +3,22 @@
   module Curry.Compiler.KicsSubdir) where
 
 import System.FilePath
+import System.Process
 import System.Time (ClockTime)
 import Char
 import System.Environment (getEnvironment,getArgs)
 import System.Directory hiding (executable)
 import System.Time
+import GHC.Paths
+import Data.List
+import Monad
 
 import Curry.Compiler.SafeCalls
 import Curry.FlatCurry.Type (readFlat)
 import Curry.Compiler.Names
 import Curry.Compiler.KicsSubdir
-
+import Curry.Files.CymakePath
+import Curry.Files.KiCSPath
 
 getOptions :: IO (Options,State)
 getOptions = do 
@@ -23,9 +28,9 @@
   let parsed = parseOptions opts args
   parsedOpts <- either usage return parsed
   let addFiledir = case takeDirectory (filename opts) of "" -> id; dir -> (dir:)
-      newOpts    = parsedOpts{userlibpath=  addFiledir $
-                                         userlibpath parsedOpts
-                                      ++ splitSearchPath cupath}
+      newOpts    = parsedOpts{userlibpath= addFiledir $
+                                             userlibpath parsedOpts 
+                                             ++ splitPath cupath}
   return (newOpts,state)    
 
 
@@ -35,11 +40,9 @@
 parseOptions opts ("-ctc":xs) = parseOptions (opts{cm=CTC}) xs
 parseOptions opts ("-main":x:xs) = parseOptions (opts{mainFunc=x}) xs
 parseOptions opts ("-frontend":x:xs) = parseOptions (opts{frontend=x}) xs
---parseOptions opts ("-kicspath":x:xs) = parseOptions (opts{kicspath=x}) xs
 parseOptions opts ("-userlibpath":x:xs) = 
   parseOptions (opts{userlibpath=userlibpath opts ++ splitSearchPath x}) xs
 parseOptions opts ("-nouserlibpath":xs) = parseOptions (opts{userlibpath=[]}) xs
---parseOptions opts ("-ghc":x:xs) = parseOptions (opts{ghc=x}) xs
 parseOptions opts ("-make":xs) = parseOptions (opts{make=True}) xs
 parseOptions opts ("-nomake":xs) = parseOptions (opts{make=False}) xs
 parseOptions opts ("-executable":xs) = parseOptions (opts{executable=True}) xs
@@ -53,7 +56,7 @@
 parseOptions opts ("-st":xs) = parseOptions (opts{pm=ST}) xs
 parseOptions opts ("-i":"df":xs) = parseOptions (opts{pm=Interactive DF}) xs
 parseOptions opts ("-i":"bf":xs) = parseOptions (opts{pm=Interactive BF}) xs
-parseOptions opts ("-o":x:xs) = parseOptions (opts{target=x}) xs
+parseOptions opts ("-o":x:xs) = parseOptions (opts{target=Just x}) xs
 parseOptions opts ("-d":xs) = parseOptions (opts{debug=True,doNotUseInterface=True}) xs
 parseOptions opts ("--debug":xs) = parseOptions opts ("-d":xs)
 parseOptions opts ("--debugger":d:xs) = parseOptions opts{debugger=Just d} xs
@@ -69,10 +72,8 @@
   putStrLn "-ctc           | switch to call time choice"
   putStrLn "-main          | name of main function "
   putStrLn "-frontend      | frontend binary"
-  putStrLn "-kicspath      | path to kics compiler"
   putStrLn "-userlibpath   | path to curry libraries"
   putStrLn "-nouserlibpath | only standard curry libraries"
-  putStrLn "-ghc           | path to ghc"
   putStrLn "-make          | chase imported modules"
   putStrLn "-nomake        | do not chase imported modules"
   putStrLn "-executable    | create executable"
@@ -93,10 +94,10 @@
 
 
 data Options = Opts{ cm :: ChoiceMode,
-                     filename, mainFunc, mainModule, target,
-                     frontend, ghcOpts
-                     --, ghc, kicspath  
+                     filename, mainFunc, mainModule, 
+                     frontend, ghcOpts, stdLibDir
                        :: String,
+                     target :: Maybe String,
                      userlibpath, done :: [String],
                      verbosity :: Int,
                      make, executable, eval, 
@@ -111,15 +112,12 @@
 
 data ConsUse = DataDef | InstanceDef | FunctionDef deriving (Eq,Show)
 
-
-cymake_call :: String
-cymake_call = unpath ["cymake"]
-
+addFileDirToPath :: String -> [String] -> [String]
+addFileDirToPath fn = case takeDirectory fn of "" -> id; dir -> (dir:)
 
 libpath :: Options -> [String]
-libpath opts@Opts{userlibpath=up,{-kicspath=kp,-}filename=fn} 
-  = --(case takeDirectory fn of "" -> id; dir -> ((dir++[pathSeparator]):))
-    up ++ [unpath ["src","lib",""]]
+libpath opts@Opts{userlibpath=up,filename=fn,stdLibDir=std} = 
+  addFileDirToPath fn $ up ++ [std]
 
 
 cmdLibpath :: Options -> String
@@ -139,12 +137,11 @@
   not (null (filter (any (/=Declaration) . snd) (extInsts opts)))
 hasExtFuncs opts = not (null (extFuncs opts))
 
-defaultOpts curDir = Opts {cm=CTC,filename="", mainFunc= "main", mainModule="Main",
-      target = "request",
-      frontend=cymake_call,
-      --kicspath=installDir,
+defaultOpts = Opts {cm=CTC,filename="", mainFunc= "main", mainModule="Main",
+      target = Nothing,
+      frontend="cymake",
+      stdLibDir = "",
       userlibpath=[],
-      --ghc="ghc",
       ghcOpts=" -fglasgow-exts -fcontext-stack=50 ",
       done=[], 
       make=True, 
@@ -206,7 +203,7 @@
 
 ghcCall :: Options -> String
 ghcCall opts@Opts{filename=fn} = 
-  callnorm ("ghc "
+  callnorm (ghc
              ++makeGhc (make opts)
              ++" -i"++show (toPathList 
                              (pathWithSubdirs $ libpath opts))++" "
@@ -218,16 +215,17 @@
              ++" "++show fn)
       
   where
-    linkOpts -- | debug opts = linkLib++" -L"++installDir++"/src/lib/ "
-             | otherwise  = ""
-    --linkLib  | eval opts  = " -ldyncoracle "
-    --         | otherwise  = " -lcoracle "
+    linkOpts = ""
+     -- | debug opts = linkLib++" -L"++installDir++"/src/lib/ "
+     -- | otherwise  = ""
+     --linkLib  | eval opts  = " -ldyncoracle "
+     --         | otherwise  = " -lcoracle "
 
     verboseGhc True  = ""
     verboseGhc False = " -v0 "
 
-    ghcTarget Opts{target=""} = ""
-    ghcTarget Opts{target=t} = " -o "++show t
+    ghcTarget Opts{target=Nothing} = ""
+    ghcTarget Opts{target=Just t} = " -o "++show t
 
     makeGhc True = " --make "
     makeGhc False = ""
@@ -276,15 +274,8 @@
 
 readConfig = do
    home <- getEnv "HOME"
-   curDir <- getCurrentDirectory
    catch (readFile (kicsrc home) >>= getConfigs home) 
-         (\_->do
-                 let defaultsO = defaultOpts curDir
-                     defaultsS = defaultState home
-                 writeConfig defaultsO defaultsS
-                 putStrLn ("The file "++kicsrc home++" has been written.")
-                 putStrLn ("You might need to edit it.")
-                 error "Please verify .kicsrc")
+         (\_ -> getConfigs home "")
 
 writeConfig opts state = do
   home <- getEnv "HOME"
@@ -304,27 +295,24 @@
     entry n s   = (configs!!(n-1)) ++ "="++s++"\n\n"
 
 
-mkTags = [-- kicspath,
-          (toPathList . userlibpath),
-          (show . pm)]
+mkTags = [(toPathList . userlibpath),(show . pm)]
 
 getConfigs home cfgs | cfgs == cfgs = do
   punkt <- getCurrentDirectory
-
+  std   <- getKiCSLibDir
+  cymake_call <- getCymake
   let readOpts = selOpts (entries cfgs)
 
-      defaultsO = defaultOpts punkt  
-      opts = defaultsO
-            {cm           = OrBased,
-             --kicspath     = installDir,
-             userlibpath  = let up = readSetting userlibpath splitSearchPath 1
-                             in (punkt ++ [pathSeparator]) : up,
-             pm           = readSetting pm readPMode 2,
-             --ghc          = ghc_call,                              
-             frontend     = cymake_call,
-             eval         = readSetting eval read 3,
-             force = False}
-      readSetting f r n = maybe (f defaultsO) r (readOpts!!(n-1))
+      opts = defaultOpts
+            {cm          = OrBased,
+             userlibpath = let up = readSetting userlibpath splitPath 1
+                             in punkt : up,
+             stdLibDir   = std,
+             pm          = readSetting pm readPMode 2,
+             frontend    = cymake_call,
+             eval        = readSetting eval read 3,
+             force       = False}
+      readSetting f r n = maybe (f defaultOpts) r (readOpts!!(n-1))
 
       defaultsS = defaultState home
       state = defaultsS
@@ -367,18 +355,16 @@
                    ex<-doesModuleExist fn
                    if ex then getModuleModTime fn else return (TOD 0 0))
 
-
-
 safeReadFlat opts s = do
+    safeIO $ print s
+    safeIO $ print $ libpath opts
     fs <- safeIO (findFileInPath s (libpath opts))
+    safeIO $ print 12
     fn <- warning s (cmdLibpath opts) fs
     mprog <- safeIO $ readFlat fn
     maybe (fail $ "file not found: "++fn) return mprog
    
-
-
-
-warning fn path [] = fail ("module "++fn++" not found in path "++path)
+warning fn path [] = fail ("file "++fn++" not found in path "++path)
 warning _ _  (f:fs) = do
   mapM_ (safeIO . putStrLn) 
         (map (\f' -> "further file found (but ignored) "++f'
diff --git a/src/Curry/Compiler/CurryToHaskell.hs b/src/Curry/Compiler/CurryToHaskell.hs
--- a/src/Curry/Compiler/CurryToHaskell.hs
+++ b/src/Curry/Compiler/CurryToHaskell.hs
@@ -45,11 +45,11 @@
 
 startCompilation :: Options -> Safe IO Options
 startCompilation opts = do 
-  put 2 opts "calling frontend"
   newOpts <- callFrontend opts 
   visited <- compile newOpts >>= return . done 
-  put 2 opts "calling ghc"
-  ghcProgram False newOpts (funcHsName (filename newOpts))
+  when (make opts) $ do
+    put 2 opts "calling ghc"
+    ghcProgram False newOpts (funcHsName (filename newOpts))
   return newOpts{done=visited}
 
 -- compile not only returns the current Options 
@@ -97,8 +97,11 @@
 
 makeImports :: (String,[String],Options) -> Safe IO Options
 makeImports (name,imps,opts@(Opts{filename=fn})) = do
-  impOpts <- foldCompile imps opts{executable=False}
-  return impOpts{done=name : done impOpts}
+  if (make opts) 
+   then do
+    impOpts <- foldCompile imps opts{executable=False}
+    return impOpts{done=name : done impOpts}
+   else return opts{done=name : done opts}
 
 ---------------------------------------------------------------------------------
 -- sub routines of compilation
@@ -110,9 +113,11 @@
   foundSources <- if null foundCurry 
                    then safeIO (findFileInPath (replaceExtension givenFile ".lcurry") lib)
                    else return foundCurry
-  unless (null foundSources) (if   debug opts 
-                              then prophecy opts 
-                              else cymake opts)
+  when (make opts) $ do
+    put 2 opts "calling frontend"
+    unless (null foundSources) (if   debug opts 
+                                then prophecy opts 
+                                else cymake opts)
   return (if debug opts then opts{filename=dbgModName givenFile} else opts)
 
 getFlatCurryFileName opts@(Opts{filename=basename}) = do
@@ -122,12 +127,14 @@
   let foundBasename = dropExtensions foundFile
   return (opts{filename=foundBasename})
 
-notUptodate opts@(Opts{filename=foundBasename}) = do
-  tSource1     <- getModTime (replaceExtension foundBasename ".fcy")
-  tSource2     <- getExternalSpecModTime opts foundBasename
-  let destination = inModuleSubdir (inKicsSubdir (funcHsName foundBasename))
-  tDestination <- getModTime destination
-  return (tSource1 > tDestination || tSource2 > tDestination)
+notUptodate opts@(Opts{filename=foundBasename}) 
+  | takeDirectory foundBasename == stdLibDir opts = return False
+  | otherwise = do
+      tSource1     <- getModTime (replaceExtension foundBasename ".fcy")
+      tSource2     <- getExternalSpecModTime opts foundBasename
+      let dest = destination True (target opts) (funcHsName foundBasename)
+      tDestination <- getModTime dest
+      return (tSource1 > tDestination || tSource2 > tDestination)
 
 applyFlatTransformations opts prog = do
   let auxNames = generateAuxNames (progFuncs prog)
@@ -155,20 +162,18 @@
   return (haskellFiles opts (progName prog))
 
 writeProgram opts (fn,unqualified,prog) = do
-  let fn' = inModuleSubdir (inKicsSubdir fn)
-  put 3 opts ("writing "++ fn')
+  let filename = destination (fn/="Main.hs") (target opts) fn
+  put 3 opts ("writing "++ filename)
   let printOpts = defaultPrintOptions{unqual=unqualified,include=toInclude opts}
-  safeIO (writeKicsFile (fn/="Main.hs") fn (showProgOpt printOpts prog))
-  put 3 opts (fn'++" written")
-  return fn
-
+  safeIO (writeKicsFile filename (showProgOpt printOpts prog))
+  put 3 opts (filename ++ " written")
 
 ghcProgram skipping opts fn = 
   unless (eval opts && executable opts)  $ do
       found <- safeIO (findFileInPath fn (libpath opts))
       let hsFile = head found
           ghc    = safeSystem (verbosity opts >= 2) 
-                     (ghcCall opts{make=True,filename=hsFile,target=""})
+                     (ghcCall opts{make=True,filename=hsFile,target=Nothing})
           shFile = drop 2 (reverse hsFile)
           oFile  = reverse ('o':shFile)
           hiFile = reverse ('i':'h':shFile)
@@ -416,18 +421,18 @@
                     (map strEqRule consdecls++
                     [C.Rule [_x,toPVar 0,_x]
                            (noguard $ 
-                              fapp (extInstPresym isPrelude "strEqFail")
-                                   [fapp (extInstPresym isPrelude "typeName") [toVar 0]]) []]))
+                              fapp (cupresym "strEqFail")
+                                   [fapp (cupresym "typeName") [toVar 0]]) []]))
 
     strEqRule (Cons cname arity _ _) =
       rule  [C.PComb (consName opts cname) (map toPVar [1..arity]),
              C.PComb (consName opts cname) (map (toPVar' "y") [1..arity])]
-            (noguard $ if arity==0 then (extInstPresym isPrelude "strEqSuccess")
-                         else foldr1 (\ e es -> fapp (extInstPresym isPrelude "concAnd") 
+            (noguard $ if arity==0 then (cupresym "strEqSuccess")
+                         else foldr1 (\ e es -> fapp (cupresym "concAnd") 
                                                      (addStateArg [e,es]))
                                  (map sEq [1..arity])) []
        where
-         sEq i = fapp (extInstPresym isPrelude "genStrEq") (addStateArg [toVar i,toVar' "y" i])
+         sEq i = fapp (cupresym "genStrEq") (addStateArg [toVar i,toVar' "y" i])
 
     eq = C.Func (newModName,"eq") (transvis vis) untyped 
                (Just  
@@ -441,7 +446,7 @@
                          else foldr1 (\ e es -> fapp (funcupresym "&&") (addStateArg [e,es]))
                                 (map eqArgs [1..arity])) []
        where
-         eqArgs i = fapp (extInstPresym isPrelude "genEq") (addStateArg [toVar i,toVar' "y" i])
+         eqArgs i = fapp (cupresym "genEq") (addStateArg [toVar i,toVar' "y" i])
 
     propagate = C.Func (newModName,"propagate") (transvis vis) untyped 
                        (Just  (map propRule consdecls))
@@ -740,7 +745,7 @@
 transRule (as,v:bs) opts (Branch (LPattern l@(Charc _)) e) 
   = rule ps (C.GuardedExpr [(guard,transExpr opts e)]) []
   where
-    guard = app (extInstPresym False "isC_True")
+    guard = app (cupresym "isC_True")
                 (fapp (funcupresym "===") [toVar v,toLit opts l])
     ps    = map toPVar as ++ toPVar v : map toPVar bs
 transRule (as,v:bs) opts (Branch (LPattern l) e) 
@@ -791,7 +796,7 @@
    showParenArg (_,'(':_) = hasPresym "True"
    showParenArg _         = if showQ then hasPresym "True" else lt (C.Var "d") app_prec
    showsPrecName = if showQ then "showQ" else "showsPrec"
-   showsPrecSym  = (if showQ then extInstPresym (fst origName=="Prelude") 
+   showsPrecSym  = (if showQ then cupresym  
                              else hasPresym) showsPrecName
 
    identifier (_,"()") = "()"
@@ -1220,11 +1225,6 @@
 underscores i = replicate i (_x)
 
 qname_ (m,f) = string_ (m++'.':f)
-
-extInstPresym _ s = sym (modName "Prelude",s)
-
-extFuncPresym opts s = sym (modName "Prelude",s)
-
 
 _x = C.PVar "_"
 
diff --git a/src/Curry/Compiler/KicsSubdir.hs b/src/Curry/Compiler/KicsSubdir.hs
--- a/src/Curry/Compiler/KicsSubdir.hs
+++ b/src/Curry/Compiler/KicsSubdir.hs
@@ -78,17 +78,20 @@
 inModuleSubdir :: String -> String
 inModuleSubdir s = s `inSubdir` "Curry" `inSubdir` "Module"
 
+-- destination file names
+
+destination :: Bool -> Maybe String -> String -> String
+destination _     (Just t) _        = t
+destination True  _        filename = inKicsSubdir filename 
+destination False _        filename = inModuleSubdir (inKicsSubdir filename)
+
 --write a file to curry subdirectory
 
-writeKicsFile :: Bool -> String -> String -> IO String
-writeKicsFile isHsModule filename contents = do
-  let filename' | isHsModule = inModuleSubdir (inKicsSubdir filename)
-                | otherwise  = inKicsSubdir filename 
-      subdir = dirname filename'
+writeKicsFile :: String -> String -> IO ()
+writeKicsFile filename contents = do
+  let subdir = dirname filename
   createDirectoryIfMissing True subdir
-  writeFile filename' contents
-  return filename'
-
+  writeFile filename contents
 
 -- do things with file in subdir
 
@@ -123,7 +126,7 @@
    if any isPathSeparator fn 
      then findFile fn
      else do
-       let fs = nubBy equalFilePath $ map (++fn) path
+       let fs = nubBy equalFilePath $ map (</>fn) path
        founds <- mapM findFile fs
        return (nubBy equalFilePath $ concat founds)
 
diff --git a/src/Curry/Compiler/ShowFunctionalProg.hs b/src/Curry/Compiler/ShowFunctionalProg.hs
--- a/src/Curry/Compiler/ShowFunctionalProg.hs
+++ b/src/Curry/Compiler/ShowFunctionalProg.hs
@@ -52,7 +52,11 @@
 showProgOpt :: PrintOptions -> Prog -> String
 showProgOpt opts p@(Prog m imports exports typedecls insdecls funcdecls opdecls)
    = "{-# OPTIONS -cpp  #-}\n\n"
-     ++ "{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances #-}\n\n"
+     ++ "{-# LANGUAGE RankNTypes,\
+                    \ ScopedTypeVariables,\
+                    \ MultiParamTypeClasses,\
+                    \ FlexibleInstances,\
+                    \ TypeSynonymInstances #-}\n\n"
      ++ "module "++m++showExports opts m exports ++" where\n\n"
      ++ showImports imports
      ++ "\n\n-- begin included\n\n" 
diff --git a/src/Curry/Files/KiCSPath.hs b/src/Curry/Files/KiCSPath.hs
new file mode 100644
--- /dev/null
+++ b/src/Curry/Files/KiCSPath.hs
@@ -0,0 +1,13 @@
+module Curry.Files.KiCSPath (getKiCS,getKiCSLibDir,kicsVersion) where
+
+import Data.Version
+import System.FilePath
+import Paths_KiCS
+
+kicsVersion = showVersion version
+
+getKiCS     = do
+  kicsDir <- getBinDir
+  return (kicsDir </> "kics")
+
+getKiCSLibDir = getDataDir
diff --git a/src/kics.hs b/src/kics.hs
--- a/src/kics.hs
+++ b/src/kics.hs
@@ -4,6 +4,7 @@
 import Curry.Compiler.CurryToHaskell
 import Curry.Compiler.SafeCalls
 
+import System.Environment
 
 -------------------------------
 -- the kics compiler
@@ -20,7 +21,7 @@
       let call = ghcCall opts{filename=inKicsSubdir "Main.hs"}
       if executable opts 
         then do 
-              putStrLn ("compiling executable "++target opts) 
+              putStrLn ("compiling executable "++maybe "" id (target opts)) 
               if verbosity opts >= 3 then putStrLn call else return () 
               system call
         else return undefined
diff --git a/src/lib/Curry/Module/.curry/AnsiCodes.acy b/src/lib/Curry/Module/.curry/AnsiCodes.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/AnsiCodes.acy
@@ -0,0 +1,40 @@
+CurryProg "AnsiCodes"
+ ["Prelude","Char","List"]
+ []
+ [CFunc ("AnsiCodes","ansiLength") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("AnsiCodes","aux")) (CVar (0,"s"))) (CApply (CSymbol ("Prelude","length")) (CVar (0,"s"))))] [CLocalFunc (CFunc ("AnsiCodes","aux") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"n")] [(CSymbol ("Prelude","success"),CVar (1,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")],CPVar (4,"n")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CSymbol ("AnsiCodes","esc")))) (CApply (CSymbol ("Char","isDigit")) (CApply (CApply (CSymbol ("Prelude","!!")) (CVar (3,"cs"))) (CLit (CIntc 2)))),CApply (CApply (CSymbol ("AnsiCodes","aux")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CVar (3,"cs"))))))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (4,"n"))) (CLit (CIntc 5)))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CSymbol ("AnsiCodes","esc")),CApply (CApply (CSymbol ("AnsiCodes","aux")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CVar (3,"cs")))))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (4,"n"))) (CLit (CIntc 4)))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("AnsiCodes","aux")) (CVar (3,"cs"))) (CVar (4,"n")))] []]))]]),
+  CFunc ("AnsiCodes","bgBlack") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 40)))] []]),
+  CFunc ("AnsiCodes","bgBlue") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 44)))] []]),
+  CFunc ("AnsiCodes","bgCyan") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 46)))] []]),
+  CFunc ("AnsiCodes","bgGreen") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 42)))] []]),
+  CFunc ("AnsiCodes","bgMagenta") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 45)))] []]),
+  CFunc ("AnsiCodes","bgRed") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 41)))] []]),
+  CFunc ("AnsiCodes","bgWhite") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 47)))] []]),
+  CFunc ("AnsiCodes","bgYellow") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 43)))] []]),
+  CFunc ("AnsiCodes","black") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 30)))] []]),
+  CFunc ("AnsiCodes","blue") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 34)))] []]),
+  CFunc ("AnsiCodes","bold") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 1)))] []]),
+  CFunc ("AnsiCodes","clear") 0 Public (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '2'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CSymbol ("Prelude","[]")))))] []]),
+  CFunc ("AnsiCodes","cmd") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","esc"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '['))) (CSymbol ("Prelude","[]")))) (CVar (0,"s"))))] []]),
+  CFunc ("AnsiCodes","concealed") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 8)))] []]),
+  CFunc ("AnsiCodes","cursorBack") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","moveCursor")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'D'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cursorDown") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","moveCursor")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'B'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cursorFwd") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","moveCursor")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cursorHome") 0 Public (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'H'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cursorPos") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [CPVar (0,"r"),CPVar (1,"c")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"r")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ';'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (1,"c")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'H'))) (CSymbol ("Prelude","[]")))))))] []]),
+  CFunc ("AnsiCodes","cursorUp") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","moveCursor")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cyan") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 36)))] []]),
+  CFunc ("AnsiCodes","eraseLine") 0 Public (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","esc") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 27)))] []]),
+  CFunc ("AnsiCodes","green") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 32)))] []]),
+  CFunc ("AnsiCodes","isSuffixOf") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("List","isPrefixOf")) (CApply (CSymbol ("Prelude","reverse")) (CVar (0,"s"))))) (CSymbol ("Prelude","reverse")))] []]),
+  CFunc ("AnsiCodes","magenta") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 35)))] []]),
+  CFunc ("AnsiCodes","mode") 2 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"s"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("AnsiCodes","isSuffixOf")) (CVar (2,"end"))) (CVar (1,"s")))) (CSymbol ("Prelude","[]"))) (CVar (2,"end")))))))] [CLocalPat (CPVar (2,"end")) (CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '0'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CSymbol ("Prelude","[]"))))) []]]),
+  CFunc ("AnsiCodes","moveCursor") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"n")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (1,"n")))) (CVar (0,"s"))))] []]),
+  CFunc ("AnsiCodes","red") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 31)))] []]),
+  CFunc ("AnsiCodes","restoreCursor") 0 Public (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","revColors") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 7)))] []]),
+  CFunc ("AnsiCodes","saveCursor") 0 Public (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","underline") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 4)))] []]),
+  CFunc ("AnsiCodes","white") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 37)))] []]),
+  CFunc ("AnsiCodes","yellow") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 33)))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/AnsiCodes.cy b/src/lib/Curry/Module/.curry/AnsiCodes.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/AnsiCodes.cy
@@ -0,0 +1,44 @@
+Module "AnsiCodes"
+(Just (Exporting (10,17) [(Export (QualIdent Nothing (Ident "cursorPos" 0))),(Export (QualIdent Nothing (Ident "cursorHome" 0))),(Export (QualIdent Nothing (Ident "cursorUp" 0))),(Export (QualIdent Nothing (Ident "cursorDown" 0))),(Export (QualIdent Nothing (Ident "cursorFwd" 0))),(Export (QualIdent Nothing (Ident "cursorBack" 0))),(Export (QualIdent Nothing (Ident "saveCursor" 0))),(Export (QualIdent Nothing (Ident "restoreCursor" 0))),(Export (QualIdent Nothing (Ident "clear" 0))),(Export (QualIdent Nothing (Ident "eraseLine" 0))),(Export (QualIdent Nothing (Ident "bold" 0))),(Export (QualIdent Nothing (Ident "underline" 0))),(Export (QualIdent Nothing (Ident "revColors" 0))),(Export (QualIdent Nothing (Ident "concealed" 0))),(Export (QualIdent Nothing (Ident "black" 0))),(Export (QualIdent Nothing (Ident "red" 0))),(Export (QualIdent Nothing (Ident "green" 0))),(Export (QualIdent Nothing (Ident "yellow" 0))),(Export (QualIdent Nothing (Ident "blue" 0))),(Export (QualIdent Nothing (Ident "cyan" 0))),(Export (QualIdent Nothing (Ident "magenta" 0))),(Export (QualIdent Nothing (Ident "white" 0))),(Export (QualIdent Nothing (Ident "bgBlack" 0))),(Export (QualIdent Nothing (Ident "bgRed" 0))),(Export (QualIdent Nothing (Ident "bgGreen" 0))),(Export (QualIdent Nothing (Ident "bgYellow" 0))),(Export (QualIdent Nothing (Ident "bgBlue" 0))),(Export (QualIdent Nothing (Ident "bgCyan" 0))),(Export (QualIdent Nothing (Ident "bgMagenta" 0))),(Export (QualIdent Nothing (Ident "bgWhite" 0))),(Export (QualIdent Nothing (Ident "ansiLength" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (30,1) "Char" False Nothing Nothing)
+,(ImportDecl (31,1) "List" False Nothing Nothing)
+,(FunctionDecl (34,1) (Ident "esc" 0) [(Equation (34,1) (FunLhs (Ident "esc" 0) []) (SimpleRhs (34,7) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 4) 27))) []))])
+,(FunctionDecl (39,1) (Ident "cmd" 0) [(Equation (39,1) (FunLhs (Ident "cmd" 0) [(VariablePattern (Ident "s" 5))]) (SimpleRhs (39,9) (InfixApply (Variable (QualIdent (Just "AnsiCodes") (Ident "esc" 0))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Literal (String "[")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "s" 5))))) []))])
+,(FunctionDecl (42,1) (Ident "cursorPos" 0) [(Equation (42,1) (FunLhs (Ident "cursorPos" 0) [(VariablePattern (Ident "r" 7)),(VariablePattern (Ident "c" 7))]) (SimpleRhs (42,17) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "r" 7)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ";")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "c" 7)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "H"))))))) []))])
+,(FunctionDecl (45,1) (Ident "cursorHome" 0) [(Equation (45,1) (FunLhs (Ident "cursorHome" 0) []) (SimpleRhs (45,14) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Literal (String "H"))) []))])
+,(TypeSig (47,1) [(Ident "moveCursor" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(FunctionDecl (48,1) (Ident "moveCursor" 0) [(Equation (48,1) (FunLhs (Ident "moveCursor" 0) [(VariablePattern (Ident "s" 11)),(VariablePattern (Ident "n" 11))]) (SimpleRhs (48,18) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "n" 11)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "s" 11)))))) []))])
+,(FunctionDecl (51,1) (Ident "cursorUp" 0) [(Equation (51,1) (FunLhs (Ident "cursorUp" 0) []) (SimpleRhs (51,12) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "moveCursor" 0))) (Literal (String "A"))) []))])
+,(FunctionDecl (54,1) (Ident "cursorDown" 0) [(Equation (54,1) (FunLhs (Ident "cursorDown" 0) []) (SimpleRhs (54,14) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "moveCursor" 0))) (Literal (String "B"))) []))])
+,(FunctionDecl (57,1) (Ident "cursorFwd" 0) [(Equation (57,1) (FunLhs (Ident "cursorFwd" 0) []) (SimpleRhs (57,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "moveCursor" 0))) (Literal (String "C"))) []))])
+,(FunctionDecl (60,1) (Ident "cursorBack" 0) [(Equation (60,1) (FunLhs (Ident "cursorBack" 0) []) (SimpleRhs (60,14) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "moveCursor" 0))) (Literal (String "D"))) []))])
+,(FunctionDecl (63,1) (Ident "saveCursor" 0) [(Equation (63,1) (FunLhs (Ident "saveCursor" 0) []) (SimpleRhs (63,14) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Literal (String "s"))) []))])
+,(FunctionDecl (66,1) (Ident "restoreCursor" 0) [(Equation (66,1) (FunLhs (Ident "restoreCursor" 0) []) (SimpleRhs (66,17) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Literal (String "u"))) []))])
+,(FunctionDecl (72,1) (Ident "clear" 0) [(Equation (72,1) (FunLhs (Ident "clear" 0) []) (SimpleRhs (72,9) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Literal (String "2J"))) []))])
+,(FunctionDecl (75,1) (Ident "eraseLine" 0) [(Equation (75,1) (FunLhs (Ident "eraseLine" 0) []) (SimpleRhs (75,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Literal (String "K"))) []))])
+,(FunctionDecl (78,1) (Ident "mode" 0) [(Equation (78,1) (FunLhs (Ident "mode" 0) [(VariablePattern (Ident "n" 29)),(VariablePattern (Ident "s" 29))]) (SimpleRhs (78,12) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "n" 29)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "m")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "s" 29))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (IfThenElse (Apply (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "isSuffixOf" 0))) (Variable (QualIdent Nothing (Ident "end" 30)))) (Variable (QualIdent Nothing (Ident "s" 29)))) (Literal (String "")) (Variable (QualIdent Nothing (Ident "end" 30))))))))) [(PatternDecl (80,3) (VariablePattern (Ident "end" 30)) (SimpleRhs (80,9) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "cmd" 0))) (Literal (String "0m"))) []))]))])
+,(FunctionDecl (83,1) (Ident "isSuffixOf" 0) [(Equation (83,1) (FunLhs (Ident "isSuffixOf" 0) [(VariablePattern (Ident "s" 32))]) (SimpleRhs (83,16) (InfixApply (Apply (Variable (QualIdent (Just "List") (Ident "isPrefixOf" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Variable (QualIdent Nothing (Ident "s" 32)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0)))) []))])
+,(FunctionDecl (88,1) (Ident "bold" 0) [(Equation (88,1) (FunLhs (Ident "bold" 0) []) (SimpleRhs (88,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 36) 1))) []))])
+,(FunctionDecl (89,1) (Ident "underline" 0) [(Equation (89,1) (FunLhs (Ident "underline" 0) []) (SimpleRhs (89,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 39) 4))) []))])
+,(FunctionDecl (90,1) (Ident "revColors" 0) [(Equation (90,1) (FunLhs (Ident "revColors" 0) []) (SimpleRhs (90,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 42) 7))) []))])
+,(FunctionDecl (91,1) (Ident "concealed" 0) [(Equation (91,1) (FunLhs (Ident "concealed" 0) []) (SimpleRhs (91,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 45) 8))) []))])
+,(FunctionDecl (92,1) (Ident "black" 0) [(Equation (92,1) (FunLhs (Ident "black" 0) []) (SimpleRhs (92,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 48) 30))) []))])
+,(FunctionDecl (93,1) (Ident "red" 0) [(Equation (93,1) (FunLhs (Ident "red" 0) []) (SimpleRhs (93,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 51) 31))) []))])
+,(FunctionDecl (94,1) (Ident "green" 0) [(Equation (94,1) (FunLhs (Ident "green" 0) []) (SimpleRhs (94,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 54) 32))) []))])
+,(FunctionDecl (95,1) (Ident "yellow" 0) [(Equation (95,1) (FunLhs (Ident "yellow" 0) []) (SimpleRhs (95,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 57) 33))) []))])
+,(FunctionDecl (96,1) (Ident "blue" 0) [(Equation (96,1) (FunLhs (Ident "blue" 0) []) (SimpleRhs (96,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 60) 34))) []))])
+,(FunctionDecl (97,1) (Ident "magenta" 0) [(Equation (97,1) (FunLhs (Ident "magenta" 0) []) (SimpleRhs (97,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 63) 35))) []))])
+,(FunctionDecl (98,1) (Ident "cyan" 0) [(Equation (98,1) (FunLhs (Ident "cyan" 0) []) (SimpleRhs (98,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 66) 36))) []))])
+,(FunctionDecl (99,1) (Ident "white" 0) [(Equation (99,1) (FunLhs (Ident "white" 0) []) (SimpleRhs (99,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 69) 37))) []))])
+,(FunctionDecl (100,1) (Ident "bgBlack" 0) [(Equation (100,1) (FunLhs (Ident "bgBlack" 0) []) (SimpleRhs (100,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 72) 40))) []))])
+,(FunctionDecl (101,1) (Ident "bgRed" 0) [(Equation (101,1) (FunLhs (Ident "bgRed" 0) []) (SimpleRhs (101,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 75) 41))) []))])
+,(FunctionDecl (102,1) (Ident "bgGreen" 0) [(Equation (102,1) (FunLhs (Ident "bgGreen" 0) []) (SimpleRhs (102,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 78) 42))) []))])
+,(FunctionDecl (103,1) (Ident "bgYellow" 0) [(Equation (103,1) (FunLhs (Ident "bgYellow" 0) []) (SimpleRhs (103,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 81) 43))) []))])
+,(FunctionDecl (104,1) (Ident "bgBlue" 0) [(Equation (104,1) (FunLhs (Ident "bgBlue" 0) []) (SimpleRhs (104,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 84) 44))) []))])
+,(FunctionDecl (105,1) (Ident "bgMagenta" 0) [(Equation (105,1) (FunLhs (Ident "bgMagenta" 0) []) (SimpleRhs (105,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 87) 45))) []))])
+,(FunctionDecl (106,1) (Ident "bgCyan" 0) [(Equation (106,1) (FunLhs (Ident "bgCyan" 0) []) (SimpleRhs (106,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 90) 46))) []))])
+,(FunctionDecl (107,1) (Ident "bgWhite" 0) [(Equation (107,1) (FunLhs (Ident "bgWhite" 0) []) (SimpleRhs (107,13) (Apply (Variable (QualIdent (Just "AnsiCodes") (Ident "mode" 0))) (Literal (Int (Ident "_" 93) 47))) []))])
+,(TypeSig (112,1) [(Ident "ansiLength" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (113,1) (Ident "ansiLength" 0) [(Equation (113,1) (FunLhs (Ident "ansiLength" 0) [(VariablePattern (Ident "s" 94))]) (SimpleRhs (113,16) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 95))) (Variable (QualIdent Nothing (Ident "s" 94)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "s" 94)))))) [(FunctionDecl (115,3) (Ident "aux" 95) [(Equation (115,3) (FunLhs (Ident "aux" 95) [(ListPattern []),(VariablePattern (Ident "n" 96))]) (SimpleRhs (115,14) (Variable (QualIdent Nothing (Ident "n" 96))) [])),(Equation (116,3) (FunLhs (Ident "aux" 95) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 98)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 98)))),(VariablePattern (Ident "n" 98))]) (GuardedRhs [(CondExpr (116,16) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 98))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent (Just "AnsiCodes") (Ident "esc" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "Char") (Ident "isDigit" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "cs" 98))) (InfixOp (QualIdent (Just "Prelude") (Ident "!!" 0))) (Literal (Int (Ident "_" 100) 2)))))) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 95))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "cs" 98)))))))))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 98))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 101) 5)))))),(CondExpr (118,16) (InfixApply (Variable (QualIdent Nothing (Ident "c" 98))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent (Just "AnsiCodes") (Ident "esc" 0)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 95))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "cs" 98)))))))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 98))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 102) 4)))))),(CondExpr (119,16) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 95))) (Variable (QualIdent Nothing (Ident "cs" 98)))) (Variable (QualIdent Nothing (Ident "n" 98)))))] []))])]))])
+]
diff --git a/src/lib/Curry/Module/.curry/AnsiCodes.efc b/src/lib/Curry/Module/.curry/AnsiCodes.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/AnsiCodes.efc
@@ -0,0 +1,1 @@
+Prog "AnsiCodes" ["Char","List","Prelude"] [] [Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"AnsiCodes","esc")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  27)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"AnsiCodes","esc")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '['),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","cursorPos")) 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 0),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ';'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 1),2))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'H'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"AnsiCodes","cursorHome")) 0 Public (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'H'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","moveCursor")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cursorUp")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","moveCursor")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cursorDown")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","moveCursor")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'B'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cursorFwd")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","moveCursor")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cursorBack")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","moveCursor")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'D'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"AnsiCodes","saveCursor")) 0 Public (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"AnsiCodes","restoreCursor")) 0 Public (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"AnsiCodes","clear")) 0 Public (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '2'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'J'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"AnsiCodes","eraseLine")) 0 Public (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'K'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) 2 Private (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 7) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]))),"Prelude",":")) [Lit (Charc  '0'),Comb ConsCall ((Nothing,Just (FuncType (TVar 6) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 6]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 6]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (TVar 5),"Prelude","[]")) []]]])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cmd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 0),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"AnsiCodes","isSuffixOf")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))]]]]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"AnsiCodes","isSuffixOf")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"List","isPrefixOf")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","reverse")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bold")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  1)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","underline")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  4)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","revColors")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  7)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","concealed")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  8)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","black")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  30)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","red")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  31)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","green")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  32)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","yellow")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  33)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","blue")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  34)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","magenta")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  35)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cyan")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  36)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","white")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  37)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgBlack")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  40)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgRed")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  41)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgGreen")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  42)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgYellow")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  43)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgBlue")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  44)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgMagenta")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  45)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgCyan")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  46)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgWhite")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"AnsiCodes","mode")) [Lit (Intc  47)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"AnsiCodes","ansiLength")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"AnsiCodes","ansiLength.aux.95")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"AnsiCodes","ansiLength.aux.95")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"AnsiCodes","esc")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isDigit")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") []))),"Prelude","!!")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Lit (Intc  2)]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"AnsiCodes","ansiLength.aux.95")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  5)]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"AnsiCodes","esc")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"AnsiCodes","ansiLength.aux.95")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  4)]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"AnsiCodes","ansiLength.aux.95")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])])])]))] []
diff --git a/src/lib/Curry/Module/.curry/AnsiCodes.fcy b/src/lib/Curry/Module/.curry/AnsiCodes.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/AnsiCodes.fcy
@@ -0,0 +1,1 @@
+Prog "AnsiCodes" ["Char","List","Prelude"] [] [Func ("AnsiCodes","esc") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  27)])),Func ("AnsiCodes","cmd") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","esc") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '['),Comb ConsCall ("Prelude","[]") []],Var 1]])),Func ("AnsiCodes","cursorPos") 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Comb FuncCall ("AnsiCodes","cmd") [Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 1],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ';'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 2],Comb ConsCall ("Prelude",":") [Lit (Charc  'H'),Comb ConsCall ("Prelude","[]") []]]]]])),Func ("AnsiCodes","cursorHome") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb FuncCall ("AnsiCodes","cmd") [Comb ConsCall ("Prelude",":") [Lit (Charc  'H'),Comb ConsCall ("Prelude","[]") []]])),Func ("AnsiCodes","moveCursor") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Comb FuncCall ("AnsiCodes","cmd") [Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 2],Var 1]])),Func ("AnsiCodes","cursorUp") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","moveCursor") [Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude","[]") []]])),Func ("AnsiCodes","cursorDown") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","moveCursor") [Comb ConsCall ("Prelude",":") [Lit (Charc  'B'),Comb ConsCall ("Prelude","[]") []]])),Func ("AnsiCodes","cursorFwd") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","moveCursor") [Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude","[]") []]])),Func ("AnsiCodes","cursorBack") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","moveCursor") [Comb ConsCall ("Prelude",":") [Lit (Charc  'D'),Comb ConsCall ("Prelude","[]") []]])),Func ("AnsiCodes","saveCursor") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb FuncCall ("AnsiCodes","cmd") [Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude","[]") []]])),Func ("AnsiCodes","restoreCursor") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb FuncCall ("AnsiCodes","cmd") [Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude","[]") []]])),Func ("AnsiCodes","clear") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb FuncCall ("AnsiCodes","cmd") [Comb ConsCall ("Prelude",":") [Lit (Charc  '2'),Comb ConsCall ("Prelude",":") [Lit (Charc  'J'),Comb ConsCall ("Prelude","[]") []]]])),Func ("AnsiCodes","eraseLine") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb FuncCall ("AnsiCodes","cmd") [Comb ConsCall ("Prelude",":") [Lit (Charc  'K'),Comb ConsCall ("Prelude","[]") []]])),Func ("AnsiCodes","mode") 2 Private (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("AnsiCodes","cmd") [Comb ConsCall ("Prelude",":") [Lit (Charc  '0'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude","[]") []]]])] (Comb FuncCall ("AnsiCodes","cmd") [Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 1],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Var 2,Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("AnsiCodes","isSuffixOf") [Var 3],Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","False") []) (Var 3)]]]]]))),Func ("AnsiCodes","isSuffixOf") 1 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("List","isPrefixOf") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 1]],Comb FuncCall ("Prelude","reverse") []])),Func ("AnsiCodes","bold") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  1)])),Func ("AnsiCodes","underline") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  4)])),Func ("AnsiCodes","revColors") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  7)])),Func ("AnsiCodes","concealed") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  8)])),Func ("AnsiCodes","black") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  30)])),Func ("AnsiCodes","red") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  31)])),Func ("AnsiCodes","green") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  32)])),Func ("AnsiCodes","yellow") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  33)])),Func ("AnsiCodes","blue") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  34)])),Func ("AnsiCodes","magenta") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  35)])),Func ("AnsiCodes","cyan") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  36)])),Func ("AnsiCodes","white") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  37)])),Func ("AnsiCodes","bgBlack") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  40)])),Func ("AnsiCodes","bgRed") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  41)])),Func ("AnsiCodes","bgGreen") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  42)])),Func ("AnsiCodes","bgYellow") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  43)])),Func ("AnsiCodes","bgBlue") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  44)])),Func ("AnsiCodes","bgMagenta") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  45)])),Func ("AnsiCodes","bgCyan") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  46)])),Func ("AnsiCodes","bgWhite") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("AnsiCodes","mode") [Lit (Intc  47)])),Func ("AnsiCodes","ansiLength") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("AnsiCodes","ansiLength.aux.95") [Var 1,Comb FuncCall ("Prelude","length") [Var 1]])),Func ("AnsiCodes","ansiLength.aux.95") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 3,Comb FuncCall ("AnsiCodes","esc") []],Comb FuncCall ("Char","isDigit") [Comb FuncCall ("Prelude","!!") [Var 4,Lit (Intc  2)]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("AnsiCodes","ansiLength.aux.95") [Comb FuncCall ("Prelude","tail") [Comb FuncCall ("Prelude","tail") [Comb FuncCall ("Prelude","tail") [Comb FuncCall ("Prelude","tail") [Var 4]]]],Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  5)]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Comb FuncCall ("AnsiCodes","esc") []]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("AnsiCodes","ansiLength.aux.95") [Comb FuncCall ("Prelude","tail") [Comb FuncCall ("Prelude","tail") [Comb FuncCall ("Prelude","tail") [Var 4]]],Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  4)]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("AnsiCodes","ansiLength.aux.95") [Var 4,Var 2]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])]))] []
diff --git a/src/lib/Curry/Module/.curry/AnsiCodes.fint b/src/lib/Curry/Module/.curry/AnsiCodes.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/AnsiCodes.fint
@@ -0,0 +1,1 @@
+Prog "AnsiCodes" ["Char","List","Prelude"] [] [Func ("AnsiCodes","cursorPos") 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("AnsiCodes","cursorHome") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("AnsiCodes","cursorUp") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","cursorDown") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","cursorFwd") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","cursorBack") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","saveCursor") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("AnsiCodes","restoreCursor") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("AnsiCodes","clear") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("AnsiCodes","eraseLine") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("AnsiCodes","bold") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","underline") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","revColors") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","concealed") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","black") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","red") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","green") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","yellow") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","blue") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","magenta") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","cyan") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","white") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","bgBlack") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","bgRed") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","bgGreen") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","bgYellow") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","bgBlue") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","bgMagenta") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","bgCyan") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","bgWhite") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("AnsiCodes","ansiLength") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/AnsiCodes.uacy b/src/lib/Curry/Module/.curry/AnsiCodes.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/AnsiCodes.uacy
@@ -0,0 +1,40 @@
+CurryProg "AnsiCodes"
+ ["Prelude","Char","List"]
+ []
+ [CFunc ("AnsiCodes","ansiLength") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("AnsiCodes","aux")) (CVar (0,"s"))) (CApply (CSymbol ("Prelude","length")) (CVar (0,"s"))))] [CLocalFunc (CFunc ("AnsiCodes","aux") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"n")] [(CSymbol ("Prelude","success"),CVar (1,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")],CPVar (4,"n")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CSymbol ("AnsiCodes","esc")))) (CApply (CSymbol ("Char","isDigit")) (CApply (CApply (CSymbol ("Prelude","!!")) (CVar (3,"cs"))) (CLit (CIntc 2)))),CApply (CApply (CSymbol ("AnsiCodes","aux")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CVar (3,"cs"))))))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (4,"n"))) (CLit (CIntc 5)))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CSymbol ("AnsiCodes","esc")),CApply (CApply (CSymbol ("AnsiCodes","aux")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CApply (CSymbol ("Prelude","tail")) (CVar (3,"cs")))))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (4,"n"))) (CLit (CIntc 4)))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("AnsiCodes","aux")) (CVar (3,"cs"))) (CVar (4,"n")))] []]))]]),
+  CFunc ("AnsiCodes","bgBlack") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 40)))] []]),
+  CFunc ("AnsiCodes","bgBlue") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 44)))] []]),
+  CFunc ("AnsiCodes","bgCyan") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 46)))] []]),
+  CFunc ("AnsiCodes","bgGreen") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 42)))] []]),
+  CFunc ("AnsiCodes","bgMagenta") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 45)))] []]),
+  CFunc ("AnsiCodes","bgRed") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 41)))] []]),
+  CFunc ("AnsiCodes","bgWhite") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 47)))] []]),
+  CFunc ("AnsiCodes","bgYellow") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 43)))] []]),
+  CFunc ("AnsiCodes","black") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 30)))] []]),
+  CFunc ("AnsiCodes","blue") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 34)))] []]),
+  CFunc ("AnsiCodes","bold") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 1)))] []]),
+  CFunc ("AnsiCodes","clear") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '2'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CSymbol ("Prelude","[]")))))] []]),
+  CFunc ("AnsiCodes","cmd") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","esc"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '['))) (CSymbol ("Prelude","[]")))) (CVar (0,"s"))))] []]),
+  CFunc ("AnsiCodes","concealed") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 8)))] []]),
+  CFunc ("AnsiCodes","cursorBack") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","moveCursor")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'D'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cursorDown") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","moveCursor")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'B'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cursorFwd") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","moveCursor")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cursorHome") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'H'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cursorPos") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"r"),CPVar (1,"c")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"r")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ';'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (1,"c")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'H'))) (CSymbol ("Prelude","[]")))))))] []]),
+  CFunc ("AnsiCodes","cursorUp") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","moveCursor")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","cyan") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 36)))] []]),
+  CFunc ("AnsiCodes","eraseLine") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","esc") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 27)))] []]),
+  CFunc ("AnsiCodes","green") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 32)))] []]),
+  CFunc ("AnsiCodes","isSuffixOf") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("List","isPrefixOf")) (CApply (CSymbol ("Prelude","reverse")) (CVar (0,"s"))))) (CSymbol ("Prelude","reverse")))] []]),
+  CFunc ("AnsiCodes","magenta") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 35)))] []]),
+  CFunc ("AnsiCodes","mode") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"s"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("AnsiCodes","isSuffixOf")) (CVar (2,"end"))) (CVar (1,"s")))) (CSymbol ("Prelude","[]"))) (CVar (2,"end")))))))] [CLocalPat (CPVar (2,"end")) (CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '0'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CSymbol ("Prelude","[]"))))) []]]),
+  CFunc ("AnsiCodes","moveCursor") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") []))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"n")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (1,"n")))) (CVar (0,"s"))))] []]),
+  CFunc ("AnsiCodes","red") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 31)))] []]),
+  CFunc ("AnsiCodes","restoreCursor") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","revColors") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 7)))] []]),
+  CFunc ("AnsiCodes","saveCursor") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","cmd")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("AnsiCodes","underline") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 4)))] []]),
+  CFunc ("AnsiCodes","white") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 37)))] []]),
+  CFunc ("AnsiCodes","yellow") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("AnsiCodes","mode")) (CLit (CIntc 33)))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Array.acy b/src/lib/Curry/Module/.curry/Array.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Array.acy
@@ -0,0 +1,25 @@
+CurryProg "Array"
+ ["Prelude","Integer"]
+ [CType ("Array","Array") Public [(0,"b")] [CCons ("Array","Array") 2 Public [CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"b")),CTCons ("Array","Entry") [CTVar (0,"b")]]],
+  CType ("Array","Entry") Private [(0,"b")] [CCons ("Array","Entry") 3 Private [CTVar (0,"b"),CTCons ("Array","Entry") [CTVar (0,"b")],CTCons ("Array","Entry") [CTVar (0,"b")]],CCons ("Array","Empty") 0 Private []]]
+ [CFunc ("Array","!") 2 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPComb ("Array","Array") [CPVar (0,"default"),CPVar (1,"array")],CPVar (2,"i")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","from")) (CApply (CVar (0,"default")) (CVar (2,"i")))) (CVar (1,"array"))) (CVar (2,"i")))] []]),
+  CFunc ("Array","//") 2 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]]) (CTCons ("Array","Array") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Array","Array") [CPVar (0,"default"),CPVar (1,"array")],CPVar (2,"modifications")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (0,"default"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CLambda [CPComb ("Prelude","(,)") [CPVar (3,"n"),CPVar (4,"v")],CPVar (5,"a")] (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CApply (CVar (0,"default")) (CVar (3,"n")))) (CVar (5,"a"))) (CVar (3,"n"))) (CApply (CSymbol ("Prelude","const")) (CVar (4,"v")))))) (CVar (1,"array"))) (CVar (2,"modifications"))))] []]),
+  CFunc ("Array","applyAt") 3 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CTCons ("Array","Array") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPComb ("Array","Array") [CPVar (0,"default"),CPVar (1,"a")],CPVar (2,"n"),CPVar (3,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (0,"default"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CApply (CVar (0,"default")) (CVar (2,"n")))) (CVar (1,"a"))) (CVar (2,"n"))) (CVar (3,"f"))))] []]),
+  CFunc ("Array","arrayToList") 0 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","foldArray")) (CSymbol ("Prelude","[]"))) (CLambda [CPVar (0,"x"),CPVar (1,"ys"),CPVar (2,"zs")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"ys"))) (CVar (2,"zs"))))))] []]),
+  CFunc ("Array","at") 4 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CTCons ("Array","Entry") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"default"),CPComb ("Array","Empty") [],CPVar (1,"n"),CPVar (2,"f")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CVar (2,"f")) (CVar (0,"default")))) (CSymbol ("Array","Empty"))) (CSymbol ("Array","Empty"))),(CApply (CSymbol ("Integer","odd")) (CVar (1,"n")),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (0,"default"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CVar (0,"default"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"n"))) (CLit (CIntc 2)))) (CVar (2,"f")))) (CSymbol ("Array","Empty"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (0,"default"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CVar (0,"default"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (2,"f"))))] [],CRule [CPVar (3,"default"),CPComb ("Array","Entry") [CPVar (4,"v"),CPVar (5,"al"),CPVar (6,"ar")],CPVar (7,"n"),CPVar (8,"f")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CVar (8,"f")) (CVar (4,"v")))) (CVar (5,"al"))) (CVar (6,"ar"))),(CApply (CSymbol ("Integer","odd")) (CVar (7,"n")),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (4,"v"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CVar (3,"default"))) (CVar (5,"al"))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (7,"n"))) (CLit (CIntc 2)))) (CVar (8,"f")))) (CVar (6,"ar"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (4,"v"))) (CVar (5,"al"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CVar (3,"default"))) (CVar (6,"ar"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (7,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (8,"f"))))] []]),
+  CFunc ("Array","comb") 7 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (1,"b"))) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CFuncType (CTCons ("Array","Entry") [CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Array","Entry") [CTVar (2,"c")])))))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("Array","Empty") [],CPComb ("Array","Empty") [],CPVar (3,"_"),CPVar (4,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Array","Empty"))] [],CRule [CPVar (5,"f"),CPVar (6,"def1"),CPVar (7,"def2"),CPComb ("Array","Entry") [CPVar (8,"x"),CPVar (9,"xl"),CPVar (10,"xr")],CPComb ("Array","Empty") [],CPVar (11,"b"),CPVar (12,"o")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CApply (CVar (5,"f")) (CVar (8,"x"))) (CApply (CVar (7,"def2")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (11,"b"))) (CVar (12,"o")))) (CLit (CIntc 1)))))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (5,"f"))) (CVar (6,"def1"))) (CVar (7,"def2"))) (CVar (9,"xl"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (11,"b")))) (CVar (12,"o")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (5,"f"))) (CVar (6,"def1"))) (CVar (7,"def2"))) (CVar (10,"xr"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (11,"b")))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (12,"o"))) (CVar (11,"b")))))] [],CRule [CPVar (13,"f"),CPVar (14,"def1"),CPVar (15,"def2"),CPComb ("Array","Empty") [],CPComb ("Array","Entry") [CPVar (16,"y"),CPVar (17,"yl"),CPVar (18,"yr")],CPVar (19,"b"),CPVar (20,"o")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CApply (CVar (13,"f")) (CApply (CVar (14,"def1")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (19,"b"))) (CVar (20,"o")))) (CLit (CIntc 1))))) (CVar (16,"y")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (13,"f"))) (CVar (14,"def1"))) (CVar (15,"def2"))) (CSymbol ("Array","Empty"))) (CVar (17,"yl"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (19,"b")))) (CVar (20,"o")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (13,"f"))) (CVar (14,"def1"))) (CVar (15,"def2"))) (CSymbol ("Array","Empty"))) (CVar (18,"yr"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (19,"b")))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (20,"o"))) (CVar (19,"b")))))] [],CRule [CPVar (21,"f"),CPVar (22,"def1"),CPVar (23,"def2"),CPComb ("Array","Entry") [CPVar (24,"x"),CPVar (25,"xl"),CPVar (26,"xr")],CPComb ("Array","Entry") [CPVar (27,"y"),CPVar (28,"yl"),CPVar (29,"yr")],CPVar (30,"b"),CPVar (31,"o")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CApply (CVar (21,"f")) (CVar (24,"x"))) (CVar (27,"y")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (21,"f"))) (CVar (22,"def1"))) (CVar (23,"def2"))) (CVar (25,"xl"))) (CVar (28,"yl"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (30,"b")))) (CVar (31,"o")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (21,"f"))) (CVar (22,"def1"))) (CVar (23,"def2"))) (CVar (26,"xr"))) (CVar (29,"yr"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (30,"b")))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (31,"o"))) (CVar (30,"b")))))] []]),
+  CFunc ("Array","combSim") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CTCons ("Array","Entry") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Array","Empty") [],CPVar (1,"a2")] [(CSymbol ("Prelude","success"),CVar (1,"a2"))] [],CRule [CPVar (2,"_"),CPAs (6,"a1") (CPComb ("Array","Entry") [CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_")]),CPComb ("Array","Empty") []] [(CSymbol ("Prelude","success"),CVar (6,"a1"))] [],CRule [CPVar (7,"f"),CPComb ("Array","Entry") [CPVar (8,"x"),CPVar (9,"xl"),CPVar (10,"xr")],CPComb ("Array","Entry") [CPVar (11,"y"),CPVar (12,"yl"),CPVar (13,"yr")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CApply (CVar (7,"f")) (CVar (8,"x"))) (CVar (11,"y")))) (CApply (CApply (CApply (CSymbol ("Array","combSim")) (CVar (7,"f"))) (CVar (9,"xl"))) (CVar (12,"yl")))) (CApply (CApply (CApply (CSymbol ("Array","combSim")) (CVar (7,"f"))) (CVar (10,"xr"))) (CVar (13,"yr"))))] []]),
+  CFunc ("Array","combine") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CFuncType (CTCons ("Array","Array") [CTVar (1,"b")]) (CTCons ("Array","Array") [CTVar (2,"c")])))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("Array","Array") [CPVar (1,"def1"),CPVar (2,"a1")],CPComb ("Array","Array") [CPVar (3,"def2"),CPVar (4,"a2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CLambda [CPVar (5,"i")] (CApply (CApply (CVar (0,"f")) (CApply (CVar (1,"def1")) (CVar (5,"i")))) (CApply (CVar (3,"def2")) (CVar (5,"i")))))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (0,"f"))) (CVar (1,"def1"))) (CVar (3,"def2"))) (CVar (2,"a1"))) (CVar (4,"a2"))) (CLit (CIntc 0))) (CLit (CIntc 1))))] []]),
+  CFunc ("Array","combineSimilar") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CTCons ("Array","Array") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("Array","Array") [CPVar (1,"def"),CPVar (2,"a1")],CPComb ("Array","Array") [CPVar (3,"_"),CPVar (4,"a2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (1,"def"))) (CApply (CApply (CApply (CSymbol ("Array","combSim")) (CVar (0,"f"))) (CVar (2,"a1"))) (CVar (4,"a2"))))] []]),
+  CFunc ("Array","emptyDefaultArray") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CTCons ("Array","Array") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"default")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (0,"default"))) (CSymbol ("Array","Empty")))] []]),
+  CFunc ("Array","emptyErrorArray") 0 Public (CTCons ("Array","Array") [CTVar (0,"a")]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Array","emptyDefaultArray")) (CSymbol ("Array","errorArray")))] []]),
+  CFunc ("Array","errorArray") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"idx")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"idx")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'z'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]")))))))))))))))))))))] []]),
+  CFunc ("Array","foldArray") 3 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CFuncType (CTCons ("Array","Array") [CTVar (1,"b")]) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"emp"),CPVar (1,"ent"),CPComb ("Array","Array") [CPVar (2,"_"),CPVar (3,"es")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","foldEntries")) (CVar (0,"emp"))) (CVar (1,"ent"))) (CVar (3,"es")))] []]),
+  CFunc ("Array","foldEntries") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CFuncType (CTCons ("Array","Entry") [CTVar (1,"b")]) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"emp"),CPVar (1,"_"),CPComb ("Array","Empty") []] [(CSymbol ("Prelude","success"),CVar (0,"emp"))] [],CRule [CPVar (2,"emp"),CPVar (3,"ent"),CPComb ("Array","Entry") [CPVar (4,"x"),CPVar (5,"a1"),CPVar (6,"a2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CVar (3,"ent")) (CVar (4,"x"))) (CApply (CApply (CApply (CSymbol ("Array","foldEntries")) (CVar (2,"emp"))) (CVar (3,"ent"))) (CVar (5,"a1")))) (CApply (CApply (CApply (CSymbol ("Array","foldEntries")) (CVar (2,"emp"))) (CVar (3,"ent"))) (CVar (6,"a2"))))] []]),
+  CFunc ("Array","from") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"default"),CPComb ("Array","Empty") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CVar (0,"default"))] [],CRule [CPVar (2,"default"),CPComb ("Array","Entry") [CPVar (3,"v"),CPVar (4,"al"),CPVar (5,"ar")],CPVar (6,"n")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"n"))) (CLit (CIntc 0)),CVar (3,"v")),(CApply (CSymbol ("Integer","odd")) (CVar (6,"n")),CApply (CApply (CApply (CSymbol ("Array","from")) (CVar (2,"default"))) (CVar (4,"al"))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (6,"n"))) (CLit (CIntc 2)))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("Array","from")) (CVar (2,"default"))) (CVar (5,"ar"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (6,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 1))))] []]),
+  CFunc ("Array","listToArray") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Array","Entry") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Array","Empty"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"ys"),CPVar (3,"zs")]) (CApply (CSymbol ("Array","split")) (CVar (1,"xs"))) []] (CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (0,"x"))) (CApply (CSymbol ("Array","listToArray")) (CVar (2,"ys")))) (CApply (CSymbol ("Array","listToArray")) (CVar (3,"zs")))))] []]),
+  CFunc ("Array","listToDefaultArray") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Array","Array") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"def")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Array","Array")) (CVar (0,"def")))) (CSymbol ("Array","listToArray")))] []]),
+  CFunc ("Array","listToErrorArray") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Array","Array") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Array","listToDefaultArray")) (CSymbol ("Array","errorArray")))] []]),
+  CFunc ("Array","split") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPComb ("Prelude",":") [CPVar (2,"y"),CPVar (3,"xys")]]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"xs"),CPVar (5,"ys")]) (CApply (CSymbol ("Array","split")) (CVar (3,"xys"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (4,"xs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"y"))) (CVar (5,"ys")))))] []]),
+  CFunc ("Array","update") 3 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CTCons ("Array","Array") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPComb ("Array","Array") [CPVar (0,"default"),CPVar (1,"a")],CPVar (2,"i"),CPVar (3,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (0,"default"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CApply (CVar (0,"default")) (CVar (2,"i")))) (CVar (1,"a"))) (CVar (2,"i"))) (CApply (CSymbol ("Prelude","const")) (CVar (3,"v")))))] []])]
+ [COp ("Array","//") CInfixlOp 9,COp ("Array","!") CInfixlOp 9]
diff --git a/src/lib/Curry/Module/.curry/Array.cy b/src/lib/Curry/Module/.curry/Array.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Array.cy
@@ -0,0 +1,47 @@
+Module "Array"
+(Just (Exporting (6,3) [(Export (QualIdent Nothing (Ident "Array" 0))),(Export (QualIdent Nothing (Ident "emptyErrorArray" 0))),(Export (QualIdent Nothing (Ident "emptyDefaultArray" 0))),(Export (QualIdent Nothing (Ident "listToDefaultArray" 0))),(Export (QualIdent Nothing (Ident "listToErrorArray" 0))),(Export (QualIdent Nothing (Ident "//" 0))),(Export (QualIdent Nothing (Ident "update" 0))),(Export (QualIdent Nothing (Ident "applyAt" 0))),(Export (QualIdent Nothing (Ident "!" 0))),(Export (QualIdent Nothing (Ident "combine" 0))),(Export (QualIdent Nothing (Ident "combineSimilar" 0))),(Export (QualIdent Nothing (Ident "foldArray" 0))),(Export (QualIdent Nothing (Ident "arrayToList" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (22,1) "Integer" False Nothing Nothing)
+,(DataDecl (26,1) (Ident "Array" 0) [(Ident "b" 0)] [(ConstrDecl (26,16) [] (Ident "Array" 0) [(ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))),(ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))])])])
+,(DataDecl (28,1) (Ident "Entry" 0) [(Ident "b" 0)] [(ConstrDecl (28,16) [] (Ident "Entry" 0) [(VariableType (Ident "b" 0)),(ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))]),(ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))])]),(ConstrDecl (28,46) [] (Ident "Empty" 0) [])])
+,(InfixDecl (24,1) InfixL 9 [(Ident "!" 0),(Ident "//" 0)])
+,(TypeSig (33,1) [(Ident "emptyErrorArray" 0)] (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]))
+,(FunctionDecl (34,1) (Ident "emptyErrorArray" 0) [(Equation (34,1) (FunLhs (Ident "emptyErrorArray" 0) []) (SimpleRhs (34,19) (Apply (Variable (QualIdent (Just "Array") (Ident "emptyDefaultArray" 0))) (Variable (QualIdent (Just "Array") (Ident "errorArray" 0)))) []))])
+,(TypeSig (36,1) [(Ident "errorArray" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "_" 0))))
+,(FunctionDecl (37,1) (Ident "errorArray" 0) [(Equation (37,1) (FunLhs (Ident "errorArray" 0) [(VariablePattern (Ident "idx" 4))]) (SimpleRhs (37,19) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Paren (InfixApply (Literal (String "Array index ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "idx" 4)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String " not initialized")))))) []))])
+,(TypeSig (42,1) [(Ident "emptyDefaultArray" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))])))
+,(FunctionDecl (43,1) (Ident "emptyDefaultArray" 0) [(Equation (43,1) (FunLhs (Ident "emptyDefaultArray" 0) [(VariablePattern (Ident "default" 6))]) (SimpleRhs (43,29) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "default" 6)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) []))])
+,(TypeSig (51,1) [(Ident "//" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ListType (TupleType [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(VariableType (Ident "b" 0))])) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (52,1) (Ident "//" 0) [(Equation (52,1) (OpLhs (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "default" 8)),(VariablePattern (Ident "array" 8))]) (Ident "//" 0) (VariablePattern (Ident "modifications" 8))) (SimpleRhs (53,3) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "default" 8)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "n" 10)),(VariablePattern (Ident "v" 10))]),(VariablePattern (Ident "a" 10))] (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "default" 8))) (Variable (QualIdent Nothing (Ident "n" 10)))))) (Variable (QualIdent Nothing (Ident "a" 10)))) (Variable (QualIdent Nothing (Ident "n" 10)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Variable (QualIdent Nothing (Ident "v" 10))))))))) (Variable (QualIdent Nothing (Ident "array" 8)))) (Variable (QualIdent Nothing (Ident "modifications" 8)))))) []))])
+,(TypeSig (61,1) [(Ident "update" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (62,1) (Ident "update" 0) [(Equation (62,1) (FunLhs (Ident "update" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "default" 11)),(VariablePattern (Ident "a" 11))])),(VariablePattern (Ident "i" 11)),(VariablePattern (Ident "v" 11))]) (SimpleRhs (63,3) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "default" 11)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "default" 11))) (Variable (QualIdent Nothing (Ident "i" 11)))))) (Variable (QualIdent Nothing (Ident "a" 11)))) (Variable (QualIdent Nothing (Ident "i" 11)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Variable (QualIdent Nothing (Ident "v" 11)))))))) []))])
+,(TypeSig (70,1) [(Ident "applyAt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (71,1) (Ident "applyAt" 0) [(Equation (71,1) (FunLhs (Ident "applyAt" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "default" 13)),(VariablePattern (Ident "a" 13))])),(VariablePattern (Ident "n" 13)),(VariablePattern (Ident "f" 13))]) (SimpleRhs (71,33) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "default" 13)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "default" 13))) (Variable (QualIdent Nothing (Ident "n" 13)))))) (Variable (QualIdent Nothing (Ident "a" 13)))) (Variable (QualIdent Nothing (Ident "n" 13)))) (Variable (QualIdent Nothing (Ident "f" 13)))))) []))])
+,(TypeSig (74,1) [(Ident "at" 0)] (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))]))))))
+,(FunctionDecl (75,1) (Ident "at" 0) [(Equation (75,1) (FunLhs (Ident "at" 0) [(VariablePattern (Ident "default" 15)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "n" 15)),(VariablePattern (Ident "f" 15))]) (GuardedRhs [(CondExpr (76,3) (InfixApply (Variable (QualIdent Nothing (Ident "n" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 17) 0))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 15))) (Variable (QualIdent Nothing (Ident "default" 15)))))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0))))),(CondExpr (77,3) (Apply (Variable (QualIdent (Just "Integer") (Ident "odd" 0))) (Variable (QualIdent Nothing (Ident "n" 15)))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "default" 15)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Variable (QualIdent Nothing (Ident "default" 15)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 18) 2))))) (Variable (QualIdent Nothing (Ident "f" 15)))))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0))))),(CondExpr (78,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "default" 15)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Variable (QualIdent Nothing (Ident "default" 15)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 19) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 20) 1))))) (Variable (QualIdent Nothing (Ident "f" 15)))))))] [])),(Equation (79,1) (FunLhs (Ident "at" 0) [(VariablePattern (Ident "default" 21)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "v" 21)),(VariablePattern (Ident "al" 21)),(VariablePattern (Ident "ar" 21))])),(VariablePattern (Ident "n" 21)),(VariablePattern (Ident "f" 21))]) (GuardedRhs [(CondExpr (80,3) (InfixApply (Variable (QualIdent Nothing (Ident "n" 21))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 23) 0))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 21))) (Variable (QualIdent Nothing (Ident "v" 21)))))) (Variable (QualIdent Nothing (Ident "al" 21)))) (Variable (QualIdent Nothing (Ident "ar" 21))))),(CondExpr (81,3) (Apply (Variable (QualIdent (Just "Integer") (Ident "odd" 0))) (Variable (QualIdent Nothing (Ident "n" 21)))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "v" 21)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Variable (QualIdent Nothing (Ident "default" 21)))) (Variable (QualIdent Nothing (Ident "al" 21)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 21))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 24) 2))))) (Variable (QualIdent Nothing (Ident "f" 21)))))) (Variable (QualIdent Nothing (Ident "ar" 21))))),(CondExpr (82,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "v" 21)))) (Variable (QualIdent Nothing (Ident "al" 21)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "at" 0))) (Variable (QualIdent Nothing (Ident "default" 21)))) (Variable (QualIdent Nothing (Ident "ar" 21)))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 21))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 25) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 26) 1))))) (Variable (QualIdent Nothing (Ident "f" 21)))))))] []))])
+,(TypeSig (88,1) [(Ident "!" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0)))))
+,(FunctionDecl (89,1) (Ident "!" 0) [(Equation (89,1) (OpLhs (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "default" 27)),(VariablePattern (Ident "array" 27))]) (Ident "!" 0) (VariablePattern (Ident "i" 27))) (SimpleRhs (89,27) (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "from" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "default" 27))) (Variable (QualIdent Nothing (Ident "i" 27)))))) (Variable (QualIdent Nothing (Ident "array" 27)))) (Variable (QualIdent Nothing (Ident "i" 27)))) []))])
+,(TypeSig (91,1) [(Ident "from" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (92,1) (Ident "from" 0) [(Equation (92,1) (FunLhs (Ident "from" 0) [(VariablePattern (Ident "default" 29)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "_" 30))]) (SimpleRhs (92,24) (Variable (QualIdent Nothing (Ident "default" 29))) [])),(Equation (93,1) (FunLhs (Ident "from" 0) [(VariablePattern (Ident "default" 32)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "v" 32)),(VariablePattern (Ident "al" 32)),(VariablePattern (Ident "ar" 32))])),(VariablePattern (Ident "n" 32))]) (GuardedRhs [(CondExpr (94,3) (InfixApply (Variable (QualIdent Nothing (Ident "n" 32))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 34) 0))) (Variable (QualIdent Nothing (Ident "v" 32)))),(CondExpr (95,3) (Apply (Variable (QualIdent (Just "Integer") (Ident "odd" 0))) (Variable (QualIdent Nothing (Ident "n" 32)))) (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "from" 0))) (Variable (QualIdent Nothing (Ident "default" 32)))) (Variable (QualIdent Nothing (Ident "al" 32)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 32))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 35) 2)))))),(CondExpr (96,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "from" 0))) (Variable (QualIdent Nothing (Ident "default" 32)))) (Variable (QualIdent Nothing (Ident "ar" 32)))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 32))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 36) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 37) 1))))))] []))])
+,(TypeSig (99,1) [(Ident "split" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (TupleType [(ListType (VariableType (Ident "a" 0))),(ListType (VariableType (Ident "a" 0)))])))
+,(FunctionDecl (100,1) (Ident "split" 0) [(Equation (100,1) (FunLhs (Ident "split" 0) [(ListPattern [])]) (SimpleRhs (100,12) (Tuple [(List []),(List [])]) [])),(Equation (101,1) (FunLhs (Ident "split" 0) [(ListPattern [(VariablePattern (Ident "x" 40))])]) (SimpleRhs (101,13) (Tuple [(List [(Variable (QualIdent Nothing (Ident "x" 40)))]),(List [])]) [])),(Equation (102,1) (FunLhs (Ident "split" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 42)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "y" 42)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xys" 42)))))]) (SimpleRhs (102,19) (Let [(PatternDecl (102,23) (TuplePattern [(VariablePattern (Ident "xs" 44)),(VariablePattern (Ident "ys" 44))]) (SimpleRhs (102,33) (Apply (Variable (QualIdent (Just "Array") (Ident "split" 0))) (Variable (QualIdent Nothing (Ident "xys" 42)))) []))] (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "x" 42))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 44)))),(InfixApply (Variable (QualIdent Nothing (Ident "y" 42))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 44))))])) []))])
+,(TypeSig (108,1) [(Ident "listToDefaultArray" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))) (ArrowType (ListType (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (109,1) (Ident "listToDefaultArray" 0) [(Equation (109,1) (FunLhs (Ident "listToDefaultArray" 0) [(VariablePattern (Ident "def" 46))]) (SimpleRhs (109,26) (InfixApply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "def" 46)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Array") (Ident "listToArray" 0)))) []))])
+,(TypeSig (113,1) [(Ident "listToErrorArray" 0)] (ArrowType (ListType (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))])))
+,(FunctionDecl (114,1) (Ident "listToErrorArray" 0) [(Equation (114,1) (FunLhs (Ident "listToErrorArray" 0) []) (SimpleRhs (114,20) (Apply (Variable (QualIdent (Just "Array") (Ident "listToDefaultArray" 0))) (Variable (QualIdent (Just "Array") (Ident "errorArray" 0)))) []))])
+,(TypeSig (117,1) [(Ident "listToArray" 0)] (ArrowType (ListType (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))])))
+,(FunctionDecl (118,1) (Ident "listToArray" 0) [(Equation (118,1) (FunLhs (Ident "listToArray" 0) [(ListPattern [])]) (SimpleRhs (118,18) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0))) [])),(Equation (119,1) (FunLhs (Ident "listToArray" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 52)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 52))))]) (SimpleRhs (119,22) (Let [(PatternDecl (119,26) (TuplePattern [(VariablePattern (Ident "ys" 54)),(VariablePattern (Ident "zs" 54))]) (SimpleRhs (119,36) (Apply (Variable (QualIdent (Just "Array") (Ident "split" 0))) (Variable (QualIdent Nothing (Ident "xs" 52)))) []))] (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Variable (QualIdent Nothing (Ident "x" 52)))) (Paren (Apply (Variable (QualIdent (Just "Array") (Ident "listToArray" 0))) (Variable (QualIdent Nothing (Ident "ys" 54)))))) (Paren (Apply (Variable (QualIdent (Just "Array") (Ident "listToArray" 0))) (Variable (QualIdent Nothing (Ident "zs" 54))))))) []))])
+,(TypeSig (126,1) [(Ident "combine" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "c" 0))])))))
+,(FunctionDecl (127,1) (Ident "combine" 0) [(Equation (127,1) (FunLhs (Ident "combine" 0) [(VariablePattern (Ident "f" 56)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "def1" 56)),(VariablePattern (Ident "a1" 56))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "def2" 56)),(VariablePattern (Ident "a2" 56))]))]) (SimpleRhs (128,3) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Paren (Lambda [(VariablePattern (Ident "i" 58))] (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 56))) (Paren (Apply (Variable (QualIdent Nothing (Ident "def1" 56))) (Variable (QualIdent Nothing (Ident "i" 58)))))) (Paren (Apply (Variable (QualIdent Nothing (Ident "def2" 56))) (Variable (QualIdent Nothing (Ident "i" 58))))))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 56)))) (Variable (QualIdent Nothing (Ident "def1" 56)))) (Variable (QualIdent Nothing (Ident "def2" 56)))) (Variable (QualIdent Nothing (Ident "a1" 56)))) (Variable (QualIdent Nothing (Ident "a2" 56)))) (Literal (Int (Ident "_" 59) 0))) (Literal (Int (Ident "_" 60) 1))))) []))])
+,(TypeSig (130,1) [(Ident "comb" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0)))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "a" 0))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "b" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "c" 0))])))))))))
+,(FunctionDecl (132,1) (Ident "comb" 0) [(Equation (132,1) (FunLhs (Ident "comb" 0) [(VariablePattern (Ident "_" 62)),(VariablePattern (Ident "_" 63)),(VariablePattern (Ident "_" 64)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "_" 65)),(VariablePattern (Ident "_" 66))]) (SimpleRhs (132,30) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0))) [])),(Equation (133,1) (FunLhs (Ident "comb" 0) [(VariablePattern (Ident "f" 68)),(VariablePattern (Ident "def1" 68)),(VariablePattern (Ident "def2" 68)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "x" 68)),(VariablePattern (Ident "xl" 68)),(VariablePattern (Ident "xr" 68))])),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "b" 68)),(VariablePattern (Ident "o" 68))]) (SimpleRhs (134,3) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 68))) (Variable (QualIdent Nothing (Ident "x" 68)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "def2" 68))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "b" 68))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "o" 68)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 70) 1))))))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 68)))) (Variable (QualIdent Nothing (Ident "def1" 68)))) (Variable (QualIdent Nothing (Ident "def2" 68)))) (Variable (QualIdent Nothing (Ident "xl" 68)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (InfixApply (Literal (Int (Ident "_" 71) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 68)))))) (Variable (QualIdent Nothing (Ident "o" 68)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 68)))) (Variable (QualIdent Nothing (Ident "def1" 68)))) (Variable (QualIdent Nothing (Ident "def2" 68)))) (Variable (QualIdent Nothing (Ident "xr" 68)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Paren (InfixApply (Literal (Int (Ident "_" 72) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 68)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "o" 68))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "b" 68)))))))) [])),(Equation (137,1) (FunLhs (Ident "comb" 0) [(VariablePattern (Ident "f" 73)),(VariablePattern (Ident "def1" 73)),(VariablePattern (Ident "def2" 73)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "y" 73)),(VariablePattern (Ident "yl" 73)),(VariablePattern (Ident "yr" 73))])),(VariablePattern (Ident "b" 73)),(VariablePattern (Ident "o" 73))]) (SimpleRhs (138,3) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 73))) (Paren (Apply (Variable (QualIdent Nothing (Ident "def1" 73))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "b" 73))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "o" 73)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 75) 1))))))) (Variable (QualIdent Nothing (Ident "y" 73)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 73)))) (Variable (QualIdent Nothing (Ident "def1" 73)))) (Variable (QualIdent Nothing (Ident "def2" 73)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Variable (QualIdent Nothing (Ident "yl" 73)))) (Paren (InfixApply (Literal (Int (Ident "_" 76) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 73)))))) (Variable (QualIdent Nothing (Ident "o" 73)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 73)))) (Variable (QualIdent Nothing (Ident "def1" 73)))) (Variable (QualIdent Nothing (Ident "def2" 73)))) (Constructor (QualIdent (Just "Array") (Ident "Empty" 0)))) (Variable (QualIdent Nothing (Ident "yr" 73)))) (Paren (InfixApply (Literal (Int (Ident "_" 77) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 73)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "o" 73))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "b" 73)))))))) [])),(Equation (141,1) (FunLhs (Ident "comb" 0) [(VariablePattern (Ident "f" 78)),(VariablePattern (Ident "def1" 78)),(VariablePattern (Ident "def2" 78)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "x" 78)),(VariablePattern (Ident "xl" 78)),(VariablePattern (Ident "xr" 78))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "y" 78)),(VariablePattern (Ident "yl" 78)),(VariablePattern (Ident "yr" 78))])),(VariablePattern (Ident "b" 78)),(VariablePattern (Ident "o" 78))]) (SimpleRhs (142,3) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 78))) (Variable (QualIdent Nothing (Ident "x" 78)))) (Variable (QualIdent Nothing (Ident "y" 78)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 78)))) (Variable (QualIdent Nothing (Ident "def1" 78)))) (Variable (QualIdent Nothing (Ident "def2" 78)))) (Variable (QualIdent Nothing (Ident "xl" 78)))) (Variable (QualIdent Nothing (Ident "yl" 78)))) (Paren (InfixApply (Literal (Int (Ident "_" 80) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 78)))))) (Variable (QualIdent Nothing (Ident "o" 78)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "comb" 0))) (Variable (QualIdent Nothing (Ident "f" 78)))) (Variable (QualIdent Nothing (Ident "def1" 78)))) (Variable (QualIdent Nothing (Ident "def2" 78)))) (Variable (QualIdent Nothing (Ident "xr" 78)))) (Variable (QualIdent Nothing (Ident "yr" 78)))) (Paren (InfixApply (Literal (Int (Ident "_" 81) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 78)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "o" 78))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "b" 78)))))))) []))])
+,(TypeSig (152,1) [(Ident "combineSimilar" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (153,1) (Ident "combineSimilar" 0) [(Equation (153,1) (FunLhs (Ident "combineSimilar" 0) [(VariablePattern (Ident "f" 82)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "def" 82)),(VariablePattern (Ident "a1" 82))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "_" 83)),(VariablePattern (Ident "a2" 82))]))]) (SimpleRhs (153,49) (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Array" 0))) (Variable (QualIdent Nothing (Ident "def" 82)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "combSim" 0))) (Variable (QualIdent Nothing (Ident "f" 82)))) (Variable (QualIdent Nothing (Ident "a1" 82)))) (Variable (QualIdent Nothing (Ident "a2" 82)))))) []))])
+,(TypeSig (155,1) [(Ident "combSim" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Entry" 0)) [(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (156,1) (Ident "combSim" 0) [(Equation (156,1) (FunLhs (Ident "combSim" 0) [(VariablePattern (Ident "_" 86)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) []),(VariablePattern (Ident "a2" 85))]) (SimpleRhs (156,22) (Variable (QualIdent Nothing (Ident "a2" 85))) [])),(Equation (157,1) (FunLhs (Ident "combSim" 0) [(VariablePattern (Ident "_" 89)),(AsPattern (Ident "a1" 88) (ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "_" 90)),(VariablePattern (Ident "_" 91)),(VariablePattern (Ident "_" 92))]))),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) [])]) (SimpleRhs (157,36) (Variable (QualIdent Nothing (Ident "a1" 88))) [])),(Equation (158,1) (FunLhs (Ident "combSim" 0) [(VariablePattern (Ident "f" 94)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "x" 94)),(VariablePattern (Ident "xl" 94)),(VariablePattern (Ident "xr" 94))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "y" 94)),(VariablePattern (Ident "yl" 94)),(VariablePattern (Ident "yr" 94))]))]) (SimpleRhs (159,3) (Apply (Apply (Apply (Constructor (QualIdent (Just "Array") (Ident "Entry" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 94))) (Variable (QualIdent Nothing (Ident "x" 94)))) (Variable (QualIdent Nothing (Ident "y" 94)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "combSim" 0))) (Variable (QualIdent Nothing (Ident "f" 94)))) (Variable (QualIdent Nothing (Ident "xl" 94)))) (Variable (QualIdent Nothing (Ident "yl" 94)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "combSim" 0))) (Variable (QualIdent Nothing (Ident "f" 94)))) (Variable (QualIdent Nothing (Ident "xr" 94)))) (Variable (QualIdent Nothing (Ident "yr" 94)))))) []))])
+,(TypeSig (162,1) [(Ident "foldArray" 0)] (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "b" 0))))))
+,(FunctionDecl (163,1) (Ident "foldArray" 0) [(Equation (163,1) (FunLhs (Ident "foldArray" 0) [(VariablePattern (Ident "emp" 96)),(VariablePattern (Ident "ent" 96)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Array" 0)) [(VariablePattern (Ident "_" 97)),(VariablePattern (Ident "es" 96))]))]) (SimpleRhs (163,34) (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "foldEntries" 0))) (Variable (QualIdent Nothing (Ident "emp" 96)))) (Variable (QualIdent Nothing (Ident "ent" 96)))) (Variable (QualIdent Nothing (Ident "es" 96)))) []))])
+,(FunctionDecl (165,1) (Ident "foldEntries" 0) [(Equation (165,1) (FunLhs (Ident "foldEntries" 0) [(VariablePattern (Ident "emp" 99)),(VariablePattern (Ident "_" 100)),(ConstructorPattern (QualIdent (Just "Array") (Ident "Empty" 0)) [])]) (SimpleRhs (165,27) (Variable (QualIdent Nothing (Ident "emp" 99))) [])),(Equation (166,1) (FunLhs (Ident "foldEntries" 0) [(VariablePattern (Ident "emp" 102)),(VariablePattern (Ident "ent" 102)),(ParenPattern (ConstructorPattern (QualIdent (Just "Array") (Ident "Entry" 0)) [(VariablePattern (Ident "x" 102)),(VariablePattern (Ident "a1" 102)),(VariablePattern (Ident "a2" 102))]))]) (SimpleRhs (167,3) (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "ent" 102))) (Variable (QualIdent Nothing (Ident "x" 102)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "foldEntries" 0))) (Variable (QualIdent Nothing (Ident "emp" 102)))) (Variable (QualIdent Nothing (Ident "ent" 102)))) (Variable (QualIdent Nothing (Ident "a1" 102)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "foldEntries" 0))) (Variable (QualIdent Nothing (Ident "emp" 102)))) (Variable (QualIdent Nothing (Ident "ent" 102)))) (Variable (QualIdent Nothing (Ident "a2" 102)))))) []))])
+,(TypeSig (169,1) [(Ident "arrayToList" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Array" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (170,1) (Ident "arrayToList" 0) [(Equation (170,1) (FunLhs (Ident "arrayToList" 0) []) (SimpleRhs (170,15) (Apply (Apply (Variable (QualIdent (Just "Array") (Ident "foldArray" 0))) (List [])) (Paren (Lambda [(VariablePattern (Ident "x" 106)),(VariablePattern (Ident "ys" 106)),(VariablePattern (Ident "zs" 106))] (InfixApply (Variable (QualIdent Nothing (Ident "x" 106))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "ys" 106))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "zs" 106)))))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Array.efc b/src/lib/Curry/Module/.curry/Array.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Array.efc
@@ -0,0 +1,1 @@
+Prog "Array" ["Integer","Prelude"] [Type ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) Public [0] [Cons ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) 2 Private [FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 0),TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0]]],Type ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) Private [0] [Cons ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) 3 Private [TVar 0,TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0],TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0]],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) 0 Private []]] [Func ((Nothing,Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),"Array","emptyErrorArray")) 0 Public (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (TCons (Nothing,Nothing,"Array","Array") [TVar 0])),"Array","emptyDefaultArray")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),"Array","errorArray")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),"Array","errorArray")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'z'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (TCons (Nothing,Nothing,"Array","Array") [TVar 0])),"Array","emptyDefaultArray")) 1 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 0)) (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0])) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),1)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","//")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]]) (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),3),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","//._#lambda2")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),3))],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]),2))]])])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 72)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 72]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 72]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 72])))),"Array","//._#lambda2")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 72)) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 72]) (FuncType (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 72]) (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 72])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 72)),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 72]),2),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 72]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 72]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 72) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 72]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TVar 72),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TVar 72) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 72]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 72) (TVar 72)) (TCons (Nothing,Nothing,"Array","Entry") [TVar 72]))))),"Array","at")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 72)) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 72))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 72)),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 72]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 72) (FuncType (TVar 72) (TVar 72))),"Prelude","const")) [Var ((Just (TVar 72),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Array","Array") [TVar 0])))),"Array","update")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0])))) (Rule [(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TVar 0),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]))))),"Array","at")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),"Prelude","const")) [Var ((Just (TVar 0),3))]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons (Nothing,Nothing,"Array","Array") [TVar 0])))),"Array","applyAt")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0])))) (Rule [(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (FuncType (TVar 0) (TVar 0)),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]))))),"Array","at")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (FuncType (TVar 0) (TVar 0)),3))]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]))))),"Array","at")) 4 Private (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0]))))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (FuncType (TVar 0) (TVar 0)),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TVar 0)),4)),Var ((Just (TVar 0),1))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Integer","odd")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]))))),"Array","at")) [Var ((Just (TVar 0),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)],Var ((Just (FuncType (TVar 0) (TVar 0)),4))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [Var ((Just (TVar 0),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) [],Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]))))),"Array","at")) [Var ((Just (TVar 0),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)],Lit (Intc  1)],Var ((Just (FuncType (TVar 0) (TVar 0)),4))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Prelude","failed")) [])])])]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),6),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),7)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TVar 0)),4)),Var ((Just (TVar 0),5))],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),6)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),7))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Integer","odd")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [Var ((Just (TVar 0),5)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]))))),"Array","at")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),6)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)],Var ((Just (FuncType (TVar 0) (TVar 0)),4))],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),7))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [Var ((Just (TVar 0),5)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),6)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]))))),"Array","at")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),7)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)],Lit (Intc  1)],Var ((Just (FuncType (TVar 0) (TVar 0)),4))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Array","!")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),3),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)))),"Array","from")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)))),"Array","from")) 3 Private (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 0)))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []) (Var ((Just (TVar 0),1))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),6)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),4))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Integer","odd")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)))),"Array","from")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)))),"Array","from")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),6)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)],Lit (Intc  1)]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TVar 0),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"Array","split")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 141) (FuncType (TVar 142) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 141),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 142),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TVar 146) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []],Comb ConsCall ((Nothing,Just (TVar 146),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Let [((Just (TVar 139),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 148]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 148],TCons (Nothing,Nothing,"Prelude","[]") [TVar 148]])),"Array","split")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 149],TCons (Nothing,Nothing,"Prelude","[]") [TVar 149]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 149])),"Array","split._#selFP3#xs")) [Var ((Just (TVar 139),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 150],TCons (Nothing,Nothing,"Prelude","[]") [TVar 150]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 150])),"Array","split._#selFP4#ys")) [Var ((Just (TVar 139),6))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),8))]]))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 126],TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 126])),"Array","split._#selFP3#xs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 126],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 126]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 126])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 126],TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 126],TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]) (FuncType (TVar 129) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 126],TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]),2),(Just (TVar 129),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 126],TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 126])),"Array","split._#selFP4#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 126],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 126]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 126])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 126],TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 126],TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 128) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 126],TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]]))),"Prelude","(,)")) [(Just (TVar 128),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 126]),3)))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","listToDefaultArray")) 1 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 0)) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])),"Array","listToArray")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0])),"Array","listToErrorArray")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","listToDefaultArray")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),"Array","errorArray")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])),"Array","listToArray")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Let [((Just (TVar 141),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 143]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 143],TCons (Nothing,Nothing,"Prelude","[]") [TVar 143]])),"Array","split")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 144],TCons (Nothing,Nothing,"Prelude","[]") [TVar 144]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 144])),"Array","listToArray._#selFP6#ys")) [Var ((Just (TVar 141),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 145],TCons (Nothing,Nothing,"Prelude","[]") [TVar 145]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 145])),"Array","listToArray._#selFP7#zs")) [Var ((Just (TVar 141),4))])] (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [Var ((Just (TVar 0),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])),"Array","listToArray")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])),"Array","listToArray")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))]]))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 137],TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137])),"Array","listToArray._#selFP6#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 137],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 137]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 137])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 137],TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 137],TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]) (FuncType (TVar 140) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 137],TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]),2),(Just (TVar 140),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 137],TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137])),"Array","listToArray._#selFP7#zs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 137],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 137]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 137])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 137],TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 137],TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 139) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 137],TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]]))),"Prelude","(,)")) [(Just (TVar 139),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]),3)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 1]) (TCons (Nothing,Nothing,"Array","Array") [TVar 2])))),"Array","combine")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 1]) (TCons ((Nothing,Nothing,"Array","Array")) [TVar 2])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1),(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 1]),3))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TCons (Nothing,Nothing,"Array","Array") [TVar 1]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),6),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),7)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 2)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 2]) (TCons (Nothing,Nothing,"Array","Array") [TVar 2]))),"Array","Array")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 2))))),"Array","combine._#lambda3")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),6)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))))))),"Array","comb")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),6)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),7)),Lit (Intc  0),Lit (Intc  1)]])])])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 252)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 255)) (FuncType (FuncType (TVar 252) (FuncType (TVar 255) (TVar 263))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 263))))),"Array","combine._#lambda3")) 4 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 252)) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 255)) (FuncType (FuncType (TVar 252) (FuncType (TVar 255) (TVar 263))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 263))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 252)),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 255)),2),(Just (FuncType (TVar 252) (FuncType (TVar 255) (TVar 263))),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 255) (TVar 263)) (FuncType (TVar 255) (TVar 263))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 252) (FuncType (TVar 255) (TVar 263))) (FuncType (TVar 252) (FuncType (TVar 255) (TVar 263)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 252) (FuncType (TVar 255) (TVar 263))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 252)) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 252))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 252)),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 255)) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 255))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 255)),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))))))),"Array","comb")) 7 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 0)) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 1)) (FuncType (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 2])))))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),2),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),3),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),"Array","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 2]),"Array","Empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 1])))),"Array","Entry")) [(Just (TVar 1),8),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),9),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),10)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 2]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 2]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))),"Array","Entry")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 2)) (FuncType (TVar 1) (TVar 2))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Lit (Intc  1)]]],Var ((Just (TVar 1),8))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))))))),"Array","comb")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),2)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) [],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),9)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))))))),"Array","comb")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),2)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) [],Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),10)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))]]])]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [(Just (TVar 0),11),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),12),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),13)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),"Array","Empty")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 2]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 2]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))),"Array","Entry")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 2)) (FuncType (TVar 1) (TVar 2))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (TVar 0),11))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Lit (Intc  1)]]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))))))),"Array","comb")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),2)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),3)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),12)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),"Array","Empty")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))))))),"Array","comb")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),2)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),3)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),13)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),"Array","Empty")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))]]]),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 1])))),"Array","Entry")) [(Just (TVar 1),14),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),15),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),16)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 2]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 2]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))),"Array","Entry")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 2)) (FuncType (TVar 1) (TVar 2))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (TVar 0),11))],Var ((Just (TVar 1),14))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))))))),"Array","comb")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),2)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),3)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),12)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),15)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Array","Entry") [TVar 2])))))))),"Array","comb")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),2)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),3)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),13)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),16)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))]]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0])))),"Array","combineSimilar")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1),(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),6),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),7)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","Array")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0)),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","combSim")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),7))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","combSim")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0]) (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []) (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),3))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),"Array","Empty")) []) (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [(Just (TVar 0),7),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),8),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","Entry")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TVar 0),4))],Var ((Just (TVar 0),7))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","combSim")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),8))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 0])))),"Array","combSim")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),6)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 0]),9))]])])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 1]) (TVar 0)))),"Array","foldArray")) 3 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 1]) (TVar 0)))) (Rule [(Just (TVar 0),1),(Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),2),(Just (TCons (Nothing,Nothing,"Array","Array") [TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Array") [TVar 1]),3))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TCons (Nothing,Nothing,"Array","Array") [TVar 1]))),"Array","Array")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 1)),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TVar 0)))),"Array","foldEntries")) [Var ((Just (TVar 0),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),2)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),5))])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TVar 0)))),"Array","foldEntries")) 3 Private (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons ((Nothing,Nothing,"Array","Entry")) [TVar 1]) (TVar 0)))) (Rule [(Just (TVar 0),1),(Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),2),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),"Array","Empty")) []) (Var ((Just (TVar 0),1))),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TCons (Nothing,Nothing,"Array","Entry") [TVar 1])))),"Array","Entry")) [(Just (TVar 1),4),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),5),(Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),2)),Var ((Just (TVar 1),4))],Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TVar 0)))),"Array","foldEntries")) [Var ((Just (TVar 0),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),2)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),5))]],Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]) (TVar 0)))),"Array","foldEntries")) [Var ((Just (TVar 0),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),2)),Var ((Just (TCons (Nothing,Nothing,"Array","Entry") [TVar 1]),6))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Array","arrayToList")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Array","Array")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))) (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Array","foldArray")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [],Comb (FuncPartCall 3) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Array","arrayToList._#lambda4")) []])),Func ((Nothing,Just (FuncType (TVar 345) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345])))),"Array","arrayToList._#lambda4")) 3 Private (FuncType (TVar 345) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 345]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 345]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 345])))) (Rule [(Just (TVar 345),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]),3)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 345) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]))),"Prelude",":")) [Var ((Just (TVar 345),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 345]),3))]]))] [Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Array","!")) InfixlOp 9,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Array","Array") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"Array","Array") [TVar 0]))),"Array","//")) InfixlOp 9]
diff --git a/src/lib/Curry/Module/.curry/Array.fcy b/src/lib/Curry/Module/.curry/Array.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Array.fcy
@@ -0,0 +1,1 @@
+Prog "Array" ["Integer","Prelude"] [Type ("Array","Array") Public [0] [Cons ("Array","Array") 2 Private [FuncType (TCons ("Prelude","Int") []) (TVar 0),TCons ("Array","Entry") [TVar 0]]],Type ("Array","Entry") Private [0] [Cons ("Array","Entry") 3 Private [TVar 0,TCons ("Array","Entry") [TVar 0],TCons ("Array","Entry") [TVar 0]],Cons ("Array","Empty") 0 Private []]] [Func ("Array","emptyErrorArray") 0 Public (TCons ("Array","Array") [TVar 0]) (Rule [] (Comb FuncCall ("Array","emptyDefaultArray") [Comb (FuncPartCall 1) ("Array","errorArray") []])),Func ("Array","errorArray") 1 Private (FuncType (TCons ("Prelude","Int") []) (TVar 0)) (Rule [1] (Comb FuncCall ("Prelude","error") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 1],Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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  '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","[]") []]]]]]]]]]]]]]]]]]]])),Func ("Array","emptyDefaultArray") 1 Public (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 0)) (TCons ("Array","Array") [TVar 0])) (Rule [1] (Comb ConsCall ("Array","Array") [Var 1,Comb ConsCall ("Array","Empty") []])),Func ("Array","//") 2 Public (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]]) (TCons ("Array","Array") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Array","Array") [3,4]) (Comb ConsCall ("Array","Array") [Var 3,Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Array","//._#lambda2") [Var 3],Var 4,Var 2]])])),Func ("Array","//._#lambda2") 3 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 72)) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 72]) (FuncType (TCons ("Array","Entry") [TVar 72]) (TCons ("Array","Entry") [TVar 72])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [4,5]) (Comb FuncCall ("Array","at") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Var 3,Var 4,Comb (FuncPartCall 1) ("Prelude","const") [Var 5]])])),Func ("Array","update") 3 Public (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Array","Array") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 1) [Branch (Pattern ("Array","Array") [4,5]) (Comb ConsCall ("Array","Array") [Var 4,Comb FuncCall ("Array","at") [Comb FuncCall ("Prelude","apply") [Var 4,Var 2],Var 5,Var 2,Comb (FuncPartCall 1) ("Prelude","const") [Var 3]]])])),Func ("Array","applyAt") 3 Public (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons ("Array","Array") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 1) [Branch (Pattern ("Array","Array") [4,5]) (Comb ConsCall ("Array","Array") [Var 4,Comb FuncCall ("Array","at") [Comb FuncCall ("Prelude","apply") [Var 4,Var 2],Var 5,Var 2,Var 3]])])),Func ("Array","at") 4 Private (FuncType (TVar 0) (FuncType (TCons ("Array","Entry") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons ("Array","Entry") [TVar 0]))))) (Rule [1,2,3,4] (Case  Flex (Var 2) [Branch (Pattern ("Array","Empty") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Array","Entry") [Comb FuncCall ("Prelude","apply") [Var 4,Var 1],Comb ConsCall ("Array","Empty") [],Comb ConsCall ("Array","Empty") []]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Integer","odd") [Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Array","Entry") [Var 1,Comb FuncCall ("Array","at") [Var 1,Comb ConsCall ("Array","Empty") [],Comb FuncCall ("Prelude","div") [Var 3,Lit (Intc  2)],Var 4],Comb ConsCall ("Array","Empty") []]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Array","Entry") [Var 1,Comb ConsCall ("Array","Empty") [],Comb FuncCall ("Array","at") [Var 1,Comb ConsCall ("Array","Empty") [],Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","div") [Var 3,Lit (Intc  2)],Lit (Intc  1)],Var 4]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])]),Branch (Pattern ("Array","Entry") [5,6,7]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Array","Entry") [Comb FuncCall ("Prelude","apply") [Var 4,Var 5],Var 6,Var 7]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Integer","odd") [Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Array","Entry") [Var 5,Comb FuncCall ("Array","at") [Var 1,Var 6,Comb FuncCall ("Prelude","div") [Var 3,Lit (Intc  2)],Var 4],Var 7]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Array","Entry") [Var 5,Var 6,Comb FuncCall ("Array","at") [Var 1,Var 7,Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","div") [Var 3,Lit (Intc  2)],Lit (Intc  1)],Var 4]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("Array","!") 2 Public (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (TVar 0))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Array","Array") [3,4]) (Comb FuncCall ("Array","from") [Comb FuncCall ("Prelude","apply") [Var 3,Var 2],Var 4,Var 2])])),Func ("Array","from") 3 Private (FuncType (TVar 0) (FuncType (TCons ("Array","Entry") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (TVar 0)))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Array","Empty") []) (Var 1),Branch (Pattern ("Array","Entry") [4,5,6]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 4),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Integer","odd") [Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Array","from") [Var 1,Var 5,Comb FuncCall ("Prelude","div") [Var 3,Lit (Intc  2)]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Array","from") [Var 1,Var 6,Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","div") [Var 3,Lit (Intc  2)],Lit (Intc  1)]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("Array","split") 1 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [4,5]) (Let [(6,Comb FuncCall ("Array","split") [Var 5])] (Let [(7,Comb FuncCall ("Array","split._#selFP3#xs") [Var 6])] (Let [(8,Comb FuncCall ("Array","split._#selFP4#ys") [Var 6])] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 2,Var 7],Comb ConsCall ("Prelude",":") [Var 4,Var 8]]))))])])),Func ("Array","split._#selFP3#xs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 126],TCons ("Prelude","[]") [TVar 126]]) (TCons ("Prelude","[]") [TVar 126])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Array","split._#selFP4#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 126],TCons ("Prelude","[]") [TVar 126]]) (TCons ("Prelude","[]") [TVar 126])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Array","listToDefaultArray") 1 Public (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 0)) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Array","Array") [TVar 0]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Array","Array") [Var 1],Comb (FuncPartCall 1) ("Array","listToArray") []])),Func ("Array","listToErrorArray") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Array","Array") [TVar 0])) (Rule [] (Comb FuncCall ("Array","listToDefaultArray") [Comb (FuncPartCall 1) ("Array","errorArray") []])),Func ("Array","listToArray") 1 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Array","Entry") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Array","Empty") []),Branch (Pattern ("Prelude",":") [2,3]) (Let [(4,Comb FuncCall ("Array","split") [Var 3])] (Let [(5,Comb FuncCall ("Array","listToArray._#selFP6#ys") [Var 4])] (Let [(6,Comb FuncCall ("Array","listToArray._#selFP7#zs") [Var 4])] (Comb ConsCall ("Array","Entry") [Var 2,Comb FuncCall ("Array","listToArray") [Var 5],Comb FuncCall ("Array","listToArray") [Var 6]]))))])),Func ("Array","listToArray._#selFP6#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 137],TCons ("Prelude","[]") [TVar 137]]) (TCons ("Prelude","[]") [TVar 137])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Array","listToArray._#selFP7#zs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 137],TCons ("Prelude","[]") [TVar 137]]) (TCons ("Prelude","[]") [TVar 137])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Array","combine") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Array","Array") [TVar 1]) (TCons ("Array","Array") [TVar 2])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Array","Array") [4,5]) (Case  Flex (Var 3) [Branch (Pattern ("Array","Array") [6,7]) (Comb ConsCall ("Array","Array") [Comb (FuncPartCall 1) ("Array","combine._#lambda3") [Var 4,Var 6,Var 1],Comb FuncCall ("Array","comb") [Var 1,Var 4,Var 6,Var 5,Var 7,Lit (Intc  0),Lit (Intc  1)]])])])),Func ("Array","combine._#lambda3") 4 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 252)) (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 255)) (FuncType (FuncType (TVar 252) (FuncType (TVar 255) (TVar 263))) (FuncType (TCons ("Prelude","Int") []) (TVar 263))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Prelude","apply") [Var 1,Var 4]],Comb FuncCall ("Prelude","apply") [Var 2,Var 4]])),Func ("Array","comb") 7 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 0)) (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 1)) (FuncType (TCons ("Array","Entry") [TVar 0]) (FuncType (TCons ("Array","Entry") [TVar 1]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Array","Entry") [TVar 2])))))))) (Rule [1,2,3,4,5,6,7] (Case  Flex (Var 4) [Branch (Pattern ("Array","Empty") []) (Case  Flex (Var 5) [Branch (Pattern ("Array","Empty") []) (Comb ConsCall ("Array","Empty") []),Branch (Pattern ("Array","Entry") [8,9,10]) (Comb ConsCall ("Array","Entry") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Comb FuncCall ("Prelude","apply") [Var 2,Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","+") [Var 6,Var 7],Lit (Intc  1)]]],Var 8],Comb FuncCall ("Array","comb") [Var 1,Var 2,Var 3,Comb ConsCall ("Array","Empty") [],Var 9,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Var 6],Var 7],Comb FuncCall ("Array","comb") [Var 1,Var 2,Var 3,Comb ConsCall ("Array","Empty") [],Var 10,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Var 6],Comb FuncCall ("Prelude","+") [Var 7,Var 6]]])]),Branch (Pattern ("Array","Entry") [11,12,13]) (Case  Flex (Var 5) [Branch (Pattern ("Array","Empty") []) (Comb ConsCall ("Array","Entry") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 11],Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","+") [Var 6,Var 7],Lit (Intc  1)]]],Comb FuncCall ("Array","comb") [Var 1,Var 2,Var 3,Var 12,Comb ConsCall ("Array","Empty") [],Comb FuncCall ("Prelude","*") [Lit (Intc  2),Var 6],Var 7],Comb FuncCall ("Array","comb") [Var 1,Var 2,Var 3,Var 13,Comb ConsCall ("Array","Empty") [],Comb FuncCall ("Prelude","*") [Lit (Intc  2),Var 6],Comb FuncCall ("Prelude","+") [Var 7,Var 6]]]),Branch (Pattern ("Array","Entry") [14,15,16]) (Comb ConsCall ("Array","Entry") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 11],Var 14],Comb FuncCall ("Array","comb") [Var 1,Var 2,Var 3,Var 12,Var 15,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Var 6],Var 7],Comb FuncCall ("Array","comb") [Var 1,Var 2,Var 3,Var 13,Var 16,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Var 6],Comb FuncCall ("Prelude","+") [Var 7,Var 6]]])])])),Func ("Array","combineSimilar") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Array","Array") [TVar 0]) (TCons ("Array","Array") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Array","Array") [4,5]) (Case  Flex (Var 3) [Branch (Pattern ("Array","Array") [6,7]) (Comb ConsCall ("Array","Array") [Var 4,Comb FuncCall ("Array","combSim") [Var 1,Var 5,Var 7]])])])),Func ("Array","combSim") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("Array","Entry") [TVar 0]) (FuncType (TCons ("Array","Entry") [TVar 0]) (TCons ("Array","Entry") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Array","Empty") []) (Var 3),Branch (Pattern ("Array","Entry") [4,5,6]) (Case  Flex (Var 3) [Branch (Pattern ("Array","Empty") []) (Var 2),Branch (Pattern ("Array","Entry") [7,8,9]) (Comb ConsCall ("Array","Entry") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Var 7],Comb FuncCall ("Array","combSim") [Var 1,Var 5,Var 8],Comb FuncCall ("Array","combSim") [Var 1,Var 6,Var 9]])])])),Func ("Array","foldArray") 3 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons ("Array","Array") [TVar 1]) (TVar 0)))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Array","Array") [4,5]) (Comb FuncCall ("Array","foldEntries") [Var 1,Var 2,Var 5])])),Func ("Array","foldEntries") 3 Private (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons ("Array","Entry") [TVar 1]) (TVar 0)))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Array","Empty") []) (Var 1),Branch (Pattern ("Array","Entry") [4,5,6]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 4],Comb FuncCall ("Array","foldEntries") [Var 1,Var 2,Var 5]],Comb FuncCall ("Array","foldEntries") [Var 1,Var 2,Var 6]])])),Func ("Array","arrayToList") 0 Public (FuncType (TCons ("Array","Array") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ("Array","foldArray") [Comb ConsCall ("Prelude","[]") [],Comb (FuncPartCall 3) ("Array","arrayToList._#lambda4") []])),Func ("Array","arrayToList._#lambda4") 3 Private (FuncType (TVar 345) (FuncType (TCons ("Prelude","[]") [TVar 345]) (FuncType (TCons ("Prelude","[]") [TVar 345]) (TCons ("Prelude","[]") [TVar 345])))) (Rule [1,2,3] (Comb ConsCall ("Prelude",":") [Var 1,Comb FuncCall ("Prelude","++") [Var 2,Var 3]]))] [Op ("Array","!") InfixlOp 9,Op ("Array","//") InfixlOp 9]
diff --git a/src/lib/Curry/Module/.curry/Array.fint b/src/lib/Curry/Module/.curry/Array.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Array.fint
@@ -0,0 +1,1 @@
+Prog "Array" ["Integer","Prelude"] [Type ("Array","Array") Public [0] []] [Func ("Array","emptyErrorArray") 0 Public (TCons ("Array","Array") [TVar 0]) (Rule [] (Var 0)),Func ("Array","emptyDefaultArray") 1 Public (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 0)) (TCons ("Array","Array") [TVar 0])) (Rule [] (Var 0)),Func ("Array","//") 2 Public (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]]) (TCons ("Array","Array") [TVar 0]))) (Rule [] (Var 0)),Func ("Array","update") 3 Public (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Array","Array") [TVar 0])))) (Rule [] (Var 0)),Func ("Array","applyAt") 3 Public (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons ("Array","Array") [TVar 0])))) (Rule [] (Var 0)),Func ("Array","!") 2 Public (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (TVar 0))) (Rule [] (Var 0)),Func ("Array","listToDefaultArray") 1 Public (FuncType (FuncType (TCons ("Prelude","Int") []) (TVar 0)) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Array","Array") [TVar 0]))) (Rule [] (Var 0)),Func ("Array","listToErrorArray") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Array","Array") [TVar 0])) (Rule [] (Var 0)),Func ("Array","combine") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Array","Array") [TVar 1]) (TCons ("Array","Array") [TVar 2])))) (Rule [] (Var 0)),Func ("Array","combineSimilar") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("Array","Array") [TVar 0]) (FuncType (TCons ("Array","Array") [TVar 0]) (TCons ("Array","Array") [TVar 0])))) (Rule [] (Var 0)),Func ("Array","foldArray") 3 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (FuncType (TCons ("Array","Array") [TVar 1]) (TVar 0)))) (Rule [] (Var 0)),Func ("Array","arrayToList") 0 Public (FuncType (TCons ("Array","Array") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0))] [Op ("Array","!") InfixlOp 9,Op ("Array","//") InfixlOp 9]
diff --git a/src/lib/Curry/Module/.curry/Array.uacy b/src/lib/Curry/Module/.curry/Array.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Array.uacy
@@ -0,0 +1,25 @@
+CurryProg "Array"
+ ["Prelude","Integer"]
+ [CType ("Array","Array") Public [(0,"b")] [CCons ("Array","Array") 2 Public [CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"b")),CTCons ("Array","Entry") [CTVar (0,"b")]]],
+  CType ("Array","Entry") Private [(0,"b")] [CCons ("Array","Entry") 3 Private [CTVar (0,"b"),CTCons ("Array","Entry") [CTVar (0,"b")],CTCons ("Array","Entry") [CTVar (0,"b")]],CCons ("Array","Empty") 0 Private []]]
+ [CFunc ("Array","!") 2 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"b")))) (CRules CFlex [CRule [CPComb ("Array","Array") [CPVar (0,"default"),CPVar (1,"array")],CPVar (2,"i")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","from")) (CApply (CVar (0,"default")) (CVar (2,"i")))) (CVar (1,"array"))) (CVar (2,"i")))] []]),
+  CFunc ("Array","//") 2 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"b")]]) (CTCons ("Array","Array") [CTVar (0,"b")]))) (CRules CFlex [CRule [CPComb ("Array","Array") [CPVar (0,"default"),CPVar (1,"array")],CPVar (2,"modifications")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (0,"default"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CLambda [CPComb ("Prelude","(,)") [CPVar (3,"n"),CPVar (4,"v")],CPVar (5,"a")] (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CApply (CVar (0,"default")) (CVar (3,"n")))) (CVar (5,"a"))) (CVar (3,"n"))) (CApply (CSymbol ("Prelude","const")) (CVar (4,"v")))))) (CVar (1,"array"))) (CVar (2,"modifications"))))] []]),
+  CFunc ("Array","applyAt") 3 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTVar (0,"b")) (CTVar (0,"b"))) (CTCons ("Array","Array") [CTVar (0,"b")])))) (CRules CFlex [CRule [CPComb ("Array","Array") [CPVar (0,"default"),CPVar (1,"a")],CPVar (2,"n"),CPVar (3,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (0,"default"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CApply (CVar (0,"default")) (CVar (2,"n")))) (CVar (1,"a"))) (CVar (2,"n"))) (CVar (3,"f"))))] []]),
+  CFunc ("Array","arrayToList") 0 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","foldArray")) (CSymbol ("Prelude","[]"))) (CLambda [CPVar (0,"x"),CPVar (1,"ys"),CPVar (2,"zs")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"ys"))) (CVar (2,"zs"))))))] []]),
+  CFunc ("Array","at") 4 Private (CFuncType (CTVar (0,"b")) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTVar (0,"b")) (CTVar (0,"b"))) (CTCons ("Array","Entry") [CTVar (0,"b")]))))) (CRules CFlex [CRule [CPVar (0,"default"),CPComb ("Array","Empty") [],CPVar (1,"n"),CPVar (2,"f")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CVar (2,"f")) (CVar (0,"default")))) (CSymbol ("Array","Empty"))) (CSymbol ("Array","Empty"))),(CApply (CSymbol ("Integer","odd")) (CVar (1,"n")),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (0,"default"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CVar (0,"default"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"n"))) (CLit (CIntc 2)))) (CVar (2,"f")))) (CSymbol ("Array","Empty"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (0,"default"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CVar (0,"default"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (2,"f"))))] [],CRule [CPVar (3,"default"),CPComb ("Array","Entry") [CPVar (4,"v"),CPVar (5,"al"),CPVar (6,"ar")],CPVar (7,"n"),CPVar (8,"f")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CVar (8,"f")) (CVar (4,"v")))) (CVar (5,"al"))) (CVar (6,"ar"))),(CApply (CSymbol ("Integer","odd")) (CVar (7,"n")),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (4,"v"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CVar (3,"default"))) (CVar (5,"al"))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (7,"n"))) (CLit (CIntc 2)))) (CVar (8,"f")))) (CVar (6,"ar"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (4,"v"))) (CVar (5,"al"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CVar (3,"default"))) (CVar (6,"ar"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (7,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (8,"f"))))] []]),
+  CFunc ("Array","comb") 7 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (1,"b"))) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CFuncType (CTCons ("Array","Entry") [CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Array","Entry") [CTVar (2,"c")])))))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("Array","Empty") [],CPComb ("Array","Empty") [],CPVar (3,"_"),CPVar (4,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Array","Empty"))] [],CRule [CPVar (5,"f"),CPVar (6,"def1"),CPVar (7,"def2"),CPComb ("Array","Entry") [CPVar (8,"x"),CPVar (9,"xl"),CPVar (10,"xr")],CPComb ("Array","Empty") [],CPVar (11,"b"),CPVar (12,"o")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CApply (CVar (5,"f")) (CVar (8,"x"))) (CApply (CVar (7,"def2")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (11,"b"))) (CVar (12,"o")))) (CLit (CIntc 1)))))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (5,"f"))) (CVar (6,"def1"))) (CVar (7,"def2"))) (CVar (9,"xl"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (11,"b")))) (CVar (12,"o")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (5,"f"))) (CVar (6,"def1"))) (CVar (7,"def2"))) (CVar (10,"xr"))) (CSymbol ("Array","Empty"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (11,"b")))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (12,"o"))) (CVar (11,"b")))))] [],CRule [CPVar (13,"f"),CPVar (14,"def1"),CPVar (15,"def2"),CPComb ("Array","Empty") [],CPComb ("Array","Entry") [CPVar (16,"y"),CPVar (17,"yl"),CPVar (18,"yr")],CPVar (19,"b"),CPVar (20,"o")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CApply (CVar (13,"f")) (CApply (CVar (14,"def1")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (19,"b"))) (CVar (20,"o")))) (CLit (CIntc 1))))) (CVar (16,"y")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (13,"f"))) (CVar (14,"def1"))) (CVar (15,"def2"))) (CSymbol ("Array","Empty"))) (CVar (17,"yl"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (19,"b")))) (CVar (20,"o")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (13,"f"))) (CVar (14,"def1"))) (CVar (15,"def2"))) (CSymbol ("Array","Empty"))) (CVar (18,"yr"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (19,"b")))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (20,"o"))) (CVar (19,"b")))))] [],CRule [CPVar (21,"f"),CPVar (22,"def1"),CPVar (23,"def2"),CPComb ("Array","Entry") [CPVar (24,"x"),CPVar (25,"xl"),CPVar (26,"xr")],CPComb ("Array","Entry") [CPVar (27,"y"),CPVar (28,"yl"),CPVar (29,"yr")],CPVar (30,"b"),CPVar (31,"o")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CApply (CVar (21,"f")) (CVar (24,"x"))) (CVar (27,"y")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (21,"f"))) (CVar (22,"def1"))) (CVar (23,"def2"))) (CVar (25,"xl"))) (CVar (28,"yl"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (30,"b")))) (CVar (31,"o")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (21,"f"))) (CVar (22,"def1"))) (CVar (23,"def2"))) (CVar (26,"xr"))) (CVar (29,"yr"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (30,"b")))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (31,"o"))) (CVar (30,"b")))))] []]),
+  CFunc ("Array","combSim") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CTCons ("Array","Entry") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Array","Empty") [],CPVar (1,"a2")] [(CSymbol ("Prelude","success"),CVar (1,"a2"))] [],CRule [CPVar (2,"_"),CPAs (6,"a1") (CPComb ("Array","Entry") [CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_")]),CPComb ("Array","Empty") []] [(CSymbol ("Prelude","success"),CVar (6,"a1"))] [],CRule [CPVar (7,"f"),CPComb ("Array","Entry") [CPVar (8,"x"),CPVar (9,"xl"),CPVar (10,"xr")],CPComb ("Array","Entry") [CPVar (11,"y"),CPVar (12,"yl"),CPVar (13,"yr")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","Entry")) (CApply (CApply (CVar (7,"f")) (CVar (8,"x"))) (CVar (11,"y")))) (CApply (CApply (CApply (CSymbol ("Array","combSim")) (CVar (7,"f"))) (CVar (9,"xl"))) (CVar (12,"yl")))) (CApply (CApply (CApply (CSymbol ("Array","combSim")) (CVar (7,"f"))) (CVar (10,"xr"))) (CVar (13,"yr"))))] []]),
+  CFunc ("Array","combine") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CFuncType (CTCons ("Array","Array") [CTVar (1,"b")]) (CTCons ("Array","Array") [CTVar (2,"c")])))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("Array","Array") [CPVar (1,"def1"),CPVar (2,"a1")],CPComb ("Array","Array") [CPVar (3,"def2"),CPVar (4,"a2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CLambda [CPVar (5,"i")] (CApply (CApply (CVar (0,"f")) (CApply (CVar (1,"def1")) (CVar (5,"i")))) (CApply (CVar (3,"def2")) (CVar (5,"i")))))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Array","comb")) (CVar (0,"f"))) (CVar (1,"def1"))) (CVar (3,"def2"))) (CVar (2,"a1"))) (CVar (4,"a2"))) (CLit (CIntc 0))) (CLit (CIntc 1))))] []]),
+  CFunc ("Array","combineSimilar") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CFuncType (CTCons ("Array","Array") [CTVar (0,"a")]) (CTCons ("Array","Array") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("Array","Array") [CPVar (1,"def"),CPVar (2,"a1")],CPComb ("Array","Array") [CPVar (3,"_"),CPVar (4,"a2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (1,"def"))) (CApply (CApply (CApply (CSymbol ("Array","combSim")) (CVar (0,"f"))) (CVar (2,"a1"))) (CVar (4,"a2"))))] []]),
+  CFunc ("Array","emptyDefaultArray") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"b"))) (CTCons ("Array","Array") [CTVar (0,"b")])) (CRules CFlex [CRule [CPVar (0,"default")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (0,"default"))) (CSymbol ("Array","Empty")))] []]),
+  CFunc ("Array","emptyErrorArray") 0 Public (CTCons ("Array","Array") [CTVar (0,"b")]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Array","emptyDefaultArray")) (CSymbol ("Array","errorArray")))] []]),
+  CFunc ("Array","errorArray") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"_"))) (CRules CFlex [CRule [CPVar (0,"idx")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"idx")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'z'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]")))))))))))))))))))))] []]),
+  CFunc ("Array","foldArray") 3 Public (CFuncType (CTVar (0,"b")) (CFuncType (CFuncType (CTVar (1,"a")) (CFuncType (CTVar (0,"b")) (CFuncType (CTVar (0,"b")) (CTVar (0,"b"))))) (CFuncType (CTCons ("Array","Array") [CTVar (1,"a")]) (CTVar (0,"b"))))) (CRules CFlex [CRule [CPVar (0,"emp"),CPVar (1,"ent"),CPComb ("Array","Array") [CPVar (2,"_"),CPVar (3,"es")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Array","foldEntries")) (CVar (0,"emp"))) (CVar (1,"ent"))) (CVar (3,"es")))] []]),
+  CFunc ("Array","foldEntries") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"emp"),CPVar (1,"_"),CPComb ("Array","Empty") []] [(CSymbol ("Prelude","success"),CVar (0,"emp"))] [],CRule [CPVar (2,"emp"),CPVar (3,"ent"),CPComb ("Array","Entry") [CPVar (4,"x"),CPVar (5,"a1"),CPVar (6,"a2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CVar (3,"ent")) (CVar (4,"x"))) (CApply (CApply (CApply (CSymbol ("Array","foldEntries")) (CVar (2,"emp"))) (CVar (3,"ent"))) (CVar (5,"a1")))) (CApply (CApply (CApply (CSymbol ("Array","foldEntries")) (CVar (2,"emp"))) (CVar (3,"ent"))) (CVar (6,"a2"))))] []]),
+  CFunc ("Array","from") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Array","Entry") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"default"),CPComb ("Array","Empty") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CVar (0,"default"))] [],CRule [CPVar (2,"default"),CPComb ("Array","Entry") [CPVar (3,"v"),CPVar (4,"al"),CPVar (5,"ar")],CPVar (6,"n")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"n"))) (CLit (CIntc 0)),CVar (3,"v")),(CApply (CSymbol ("Integer","odd")) (CVar (6,"n")),CApply (CApply (CApply (CSymbol ("Array","from")) (CVar (2,"default"))) (CVar (4,"al"))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (6,"n"))) (CLit (CIntc 2)))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("Array","from")) (CVar (2,"default"))) (CVar (5,"ar"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (6,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 1))))] []]),
+  CFunc ("Array","listToArray") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"b")]) (CTCons ("Array","Entry") [CTVar (0,"b")])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Array","Empty"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"ys"),CPVar (3,"zs")]) (CApply (CSymbol ("Array","split")) (CVar (1,"xs"))) []] (CApply (CApply (CApply (CSymbol ("Array","Entry")) (CVar (0,"x"))) (CApply (CSymbol ("Array","listToArray")) (CVar (2,"ys")))) (CApply (CSymbol ("Array","listToArray")) (CVar (3,"zs")))))] []]),
+  CFunc ("Array","listToDefaultArray") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"b"))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"b")]) (CTCons ("Array","Array") [CTVar (0,"b")]))) (CRules CFlex [CRule [CPVar (0,"def")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Array","Array")) (CVar (0,"def")))) (CSymbol ("Array","listToArray")))] []]),
+  CFunc ("Array","listToErrorArray") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"b")]) (CTCons ("Array","Array") [CTVar (0,"b")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Array","listToDefaultArray")) (CSymbol ("Array","errorArray")))] []]),
+  CFunc ("Array","split") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPComb ("Prelude",":") [CPVar (2,"y"),CPVar (3,"xys")]]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"xs"),CPVar (5,"ys")]) (CApply (CSymbol ("Array","split")) (CVar (3,"xys"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (4,"xs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"y"))) (CVar (5,"ys")))))] []]),
+  CFunc ("Array","update") 3 Public (CFuncType (CTCons ("Array","Array") [CTVar (0,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"b")) (CTCons ("Array","Array") [CTVar (0,"b")])))) (CRules CFlex [CRule [CPComb ("Array","Array") [CPVar (0,"default"),CPVar (1,"a")],CPVar (2,"i"),CPVar (3,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Array","Array")) (CVar (0,"default"))) (CApply (CApply (CApply (CApply (CSymbol ("Array","at")) (CApply (CVar (0,"default")) (CVar (2,"i")))) (CVar (1,"a"))) (CVar (2,"i"))) (CApply (CSymbol ("Prelude","const")) (CVar (3,"v")))))] []])]
+ [COp ("Array","//") CInfixlOp 9,COp ("Array","!") CInfixlOp 9]
diff --git a/src/lib/Curry/Module/.curry/Assertion.acy b/src/lib/Curry/Module/.curry/Assertion.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Assertion.acy
@@ -0,0 +1,19 @@
+CurryProg "Assertion"
+ ["Prelude","List","IO"]
+ [CType ("Assertion","Assertion") Public [(0,"a")] [CCons ("Assertion","AssertTrue") 2 Public [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []],CCons ("Assertion","AssertEqual") 3 Public [CTCons ("Prelude","String") [],CTVar (0,"a"),CTVar (0,"a")],CCons ("Assertion","AssertValues") 3 Public [CTCons ("Prelude","String") [],CTVar (0,"a"),CTCons ("Prelude","[]") [CTVar (0,"a")]],CCons ("Assertion","AssertSolutions") 3 Public [CTCons ("Prelude","String") [],CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") []),CTCons ("Prelude","[]") [CTVar (0,"a")]],CCons ("Assertion","AssertIO") 3 Public [CTCons ("Prelude","String") [],CTCons ("Prelude","IO") [CTVar (0,"a")],CTVar (0,"a")],CCons ("Assertion","AssertEqualIO") 3 Public [CTCons ("Prelude","String") [],CTCons ("Prelude","IO") [CTVar (0,"a")],CTCons ("Prelude","IO") [CTVar (0,"a")]]],
+  CType ("Assertion","ProtocolMsg") Public [] [CCons ("Assertion","TestModule") 1 Public [CTCons ("Prelude","String") []],CCons ("Assertion","TestCase") 2 Public [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []],CCons ("Assertion","TestFinished") 0 Public [],CCons ("Assertion","TestCompileError") 0 Public []]]
+ [CFunc ("Assertion","checkAssertEqual") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"call"),CPVar (2,"result")] [(CSymbol ("Prelude","success"),CDoExpr [CSLet [CLocalPat (CPVar (3,"r")) (CVar (1,"call")) []],CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"r"))) (CVar (2,"result")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (3,"r")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"result")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertEqualIO") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"action1"),CPVar (2,"action2")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"r1")) (CVar (1,"action1")),CSPat (CPVar (4,"r2")) (CVar (2,"action2")),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"r1"))) (CVar (4,"r2")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '1'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (3,"r1")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '2'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (4,"r2")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertIO") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"action"),CPVar (2,"result")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"r")) (CVar (1,"action")),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"r"))) (CVar (2,"result")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (3,"r")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"result")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertSolutions") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"constr"),CPVar (2,"results")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (4,"st")) (CApply (CSymbol ("Prelude","getSearchTree")) (CLetDecl [CLocalVar (3,"x")] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"x"))) (CApply (CVar (1,"constr")) (CVar (3,"x")))))),CSLet [CLocalPat (CPVar (5,"rs")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","fst"))) (CApply (CSymbol ("Prelude","allValuesB")) (CVar (4,"st")))) []],CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (5,"rs"))) (CVar (2,"results"))))) (CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (2,"results"))) (CVar (5,"rs")))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (5,"rs")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"results")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertTrue") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]]))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"cond")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (1,"cond"))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))] []]),
+  CFunc ("Assertion","checkAssertValues") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"call"),CPVar (2,"results")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"st")) (CApply (CSymbol ("Prelude","getSearchTree")) (CVar (1,"call"))),CSLet [CLocalPat (CPVar (4,"rs")) (CApply (CSymbol ("Prelude","allValuesB")) (CVar (3,"st"))) []],CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (4,"rs"))) (CVar (2,"results"))))) (CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (2,"results"))) (CVar (4,"rs")))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (4,"rs")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"results")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertion") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]])) (CFuncType (CTCons ("Assertion","Assertion") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]]))) (CRules CFlex [CRule [CPVar (0,"prot"),CPComb ("Assertion","AssertTrue") [CPVar (1,"name"),CPVar (2,"cond")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CSymbol ("Assertion","checkAssertTrue")) (CVar (1,"name"))) (CVar (2,"cond")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (0,"prot")))] [],CRule [CPVar (3,"prot"),CPComb ("Assertion","AssertEqual") [CPVar (4,"name"),CPVar (5,"call"),CPVar (6,"result")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertEqual")) (CVar (4,"name"))) (CVar (5,"call"))) (CVar (6,"result")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (3,"prot")))] [],CRule [CPVar (7,"prot"),CPComb ("Assertion","AssertValues") [CPVar (8,"name"),CPVar (9,"expr"),CPVar (10,"results")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertValues")) (CVar (8,"name"))) (CVar (9,"expr"))) (CVar (10,"results")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (8,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (7,"prot")))] [],CRule [CPVar (11,"prot"),CPComb ("Assertion","AssertSolutions") [CPVar (12,"name"),CPVar (13,"constr"),CPVar (14,"results")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertSolutions")) (CVar (12,"name"))) (CVar (13,"constr"))) (CVar (14,"results")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (12,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (11,"prot")))] [],CRule [CPVar (15,"prot"),CPComb ("Assertion","AssertIO") [CPVar (16,"name"),CPVar (17,"action"),CPVar (18,"result")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertIO")) (CVar (16,"name"))) (CVar (17,"action"))) (CVar (18,"result")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (16,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (15,"prot")))] [],CRule [CPVar (19,"prot"),CPComb ("Assertion","AssertEqualIO") [CPVar (20,"name"),CPVar (21,"action1"),CPVar (22,"action2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertEqualIO")) (CVar (20,"name"))) (CVar (21,"action1"))) (CVar (22,"action2")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (20,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (19,"prot")))] []]),
+  CFunc ("Assertion","doSend") 2 Private (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("IO","hPutStrLn")) (CVar (0,"h"))) (CApply (CSymbol ("Prelude","show")) (CVar (1,"x"))))] []]),
+  CFunc ("Assertion","seqStrActions") 2 Public (CFuncType (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]]) (CFuncType (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]]))) (CRules CFlex [CRule [CPVar (0,"a1"),CPVar (1,"a2")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPComb ("Prelude","(,)") [CPVar (2,"s1"),CPVar (3,"b1")]) (CVar (0,"a1")),CSPat (CPComb ("Prelude","(,)") [CPVar (4,"s2"),CPVar (5,"b2")]) (CVar (1,"a2")),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"s1"))) (CVar (4,"s2")))) (CApply (CApply (CSymbol ("Prelude","&&")) (CVar (3,"b1"))) (CVar (5,"b2")))))])] []]),
+  CFunc ("Assertion","showTestCase") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]]))) (CRules CFlex [CRule [CPVar (0,"port"),CPComb ("Prelude","(,)") [CPVar (1,"s"),CPVar (2,"b")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("Assertion","doSend")) (CVar (0,"port"))) (CApply (CApply (CSymbol ("Assertion","TestCase")) (CVar (1,"s"))) (CVar (2,"b"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"s"))) (CVar (2,"b")))))] []]),
+  CFunc ("Assertion","showTestCompileError") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Assertion","doSend")) (CVar (0,"port"))) (CSymbol ("Assertion","TestCompileError")))] []]),
+  CFunc ("Assertion","showTestEnd") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Assertion","doSend")) (CVar (0,"port"))) (CSymbol ("Assertion","TestFinished")))] []]),
+  CFunc ("Assertion","showTestMod") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"port"),CPVar (1,"modname")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Assertion","doSend")) (CVar (0,"port"))) (CApply (CSymbol ("Assertion","TestModule")) (CVar (1,"modname"))))] []]),
+  CFunc ("Assertion","writeAssertResult") 1 Public (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"result"),CPVar (1,"flag")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (1,"flag"))) (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"result"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"result"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '!'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))] []])]
+ [COp ("Assertion","seqStrActions") CInfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Assertion.cy b/src/lib/Curry/Module/.curry/Assertion.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Assertion.cy
@@ -0,0 +1,37 @@
+Module "Assertion"
+(Just (Exporting (9,17) [(ExportTypeAll (QualIdent Nothing (Ident "Assertion" 0))),(Export (QualIdent Nothing (Ident "checkAssertion" 0))),(Export (QualIdent Nothing (Ident "seqStrActions" 0))),(Export (QualIdent Nothing (Ident "writeAssertResult" 0))),(ExportTypeAll (QualIdent Nothing (Ident "ProtocolMsg" 0))),(Export (QualIdent Nothing (Ident "showTestMod" 0))),(Export (QualIdent Nothing (Ident "showTestCase" 0))),(Export (QualIdent Nothing (Ident "showTestEnd" 0))),(Export (QualIdent Nothing (Ident "showTestCompileError" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (16,1) "List" False Nothing (Just (Importing (16,12) [(Import (Ident "\\\\" 0))])))
+,(ImportDecl (17,1) "IO" False Nothing Nothing)
+,(DataDecl (35,1) (Ident "Assertion" 0) [(Ident "a" 0)] [(ConstrDecl (35,20) [] (Ident "AssertTrue" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]),(ConstrDecl (36,20) [] (Ident "AssertEqual" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))]),(ConstrDecl (37,20) [] (Ident "AssertValues" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(VariableType (Ident "a" 0)),(ListType (VariableType (Ident "a" 0)))]),(ConstrDecl (38,20) [] (Ident "AssertSolutions" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Success" 0)) [])),(ListType (VariableType (Ident "a" 0)))]),(ConstrDecl (39,20) [] (Ident "AssertIO" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]),(VariableType (Ident "a" 0))]),(ConstrDecl (40,20) [] (Ident "AssertEqualIO" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])])])
+,(DataDecl (159,1) (Ident "ProtocolMsg" 0) [] [(ConstrDecl (159,20) [] (Ident "TestModule" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]),(ConstrDecl (159,40) [] (Ident "TestCase" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]),(ConstrDecl (159,63) [] (Ident "TestFinished" 0) []),(ConstrDecl (160,20) [] (Ident "TestCompileError" 0) [])])
+,(InfixDecl (19,1) InfixL 1 [(Ident "seqStrActions" 0)])
+,(TypeSig (45,1) [(Ident "seqStrActions" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])]))))
+,(FunctionDecl (46,1) (Ident "seqStrActions" 0) [(Equation (46,1) (FunLhs (Ident "seqStrActions" 0) [(VariablePattern (Ident "a1" 2)),(VariablePattern (Ident "a2" 2))]) (SimpleRhs (47,3) (Do [(StmtBind (TuplePattern [(VariablePattern (Ident "s1" 4)),(VariablePattern (Ident "b1" 4))]) (Variable (QualIdent Nothing (Ident "a1" 2)))),(StmtBind (TuplePattern [(VariablePattern (Ident "s2" 5)),(VariablePattern (Ident "b2" 5))]) (Variable (QualIdent Nothing (Ident "a2" 2))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "s1" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "s2" 5)))),(InfixApply (Variable (QualIdent Nothing (Ident "b1" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Variable (QualIdent Nothing (Ident "b2" 5))))]))) []))])
+,(TypeSig (57,1) [(Ident "checkAssertion" 0)] (ArrowType (ArrowType (TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Assertion" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])]))))
+,(FunctionDecl (59,1) (Ident "checkAssertion" 0) [(Equation (59,1) (FunLhs (Ident "checkAssertion" 0) [(VariablePattern (Ident "prot" 6)),(ParenPattern (ConstructorPattern (QualIdent (Just "Assertion") (Ident "AssertTrue" 0)) [(VariablePattern (Ident "name" 6)),(VariablePattern (Ident "cond" 6))]))]) (SimpleRhs (60,3) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "checkAssertTrue" 0))) (Variable (QualIdent Nothing (Ident "name" 6)))) (Variable (QualIdent Nothing (Ident "cond" 6)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 6))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ": no solution or error\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Variable (QualIdent Nothing (Ident "prot" 6)))) [])),(Equation (63,1) (FunLhs (Ident "checkAssertion" 0) [(VariablePattern (Ident "prot" 8)),(ParenPattern (ConstructorPattern (QualIdent (Just "Assertion") (Ident "AssertEqual" 0)) [(VariablePattern (Ident "name" 8)),(VariablePattern (Ident "call" 8)),(VariablePattern (Ident "result" 8))]))]) (SimpleRhs (64,3) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "checkAssertEqual" 0))) (Variable (QualIdent Nothing (Ident "name" 8)))) (Variable (QualIdent Nothing (Ident "call" 8)))) (Variable (QualIdent Nothing (Ident "result" 8)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 8))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ": no solution or error\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Variable (QualIdent Nothing (Ident "prot" 8)))) [])),(Equation (67,1) (FunLhs (Ident "checkAssertion" 0) [(VariablePattern (Ident "prot" 10)),(ParenPattern (ConstructorPattern (QualIdent (Just "Assertion") (Ident "AssertValues" 0)) [(VariablePattern (Ident "name" 10)),(VariablePattern (Ident "expr" 10)),(VariablePattern (Ident "results" 10))]))]) (SimpleRhs (68,3) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "checkAssertValues" 0))) (Variable (QualIdent Nothing (Ident "name" 10)))) (Variable (QualIdent Nothing (Ident "expr" 10)))) (Variable (QualIdent Nothing (Ident "results" 10)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 10))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ": no solution or error\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Variable (QualIdent Nothing (Ident "prot" 10)))) [])),(Equation (71,1) (FunLhs (Ident "checkAssertion" 0) [(VariablePattern (Ident "prot" 12)),(ParenPattern (ConstructorPattern (QualIdent (Just "Assertion") (Ident "AssertSolutions" 0)) [(VariablePattern (Ident "name" 12)),(VariablePattern (Ident "constr" 12)),(VariablePattern (Ident "results" 12))]))]) (SimpleRhs (72,3) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "checkAssertSolutions" 0))) (Variable (QualIdent Nothing (Ident "name" 12)))) (Variable (QualIdent Nothing (Ident "constr" 12)))) (Variable (QualIdent Nothing (Ident "results" 12)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 12))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ": no solution or error\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Variable (QualIdent Nothing (Ident "prot" 12)))) [])),(Equation (75,1) (FunLhs (Ident "checkAssertion" 0) [(VariablePattern (Ident "prot" 14)),(ParenPattern (ConstructorPattern (QualIdent (Just "Assertion") (Ident "AssertIO" 0)) [(VariablePattern (Ident "name" 14)),(VariablePattern (Ident "action" 14)),(VariablePattern (Ident "result" 14))]))]) (SimpleRhs (76,3) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "checkAssertIO" 0))) (Variable (QualIdent Nothing (Ident "name" 14)))) (Variable (QualIdent Nothing (Ident "action" 14)))) (Variable (QualIdent Nothing (Ident "result" 14)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 14))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ": no solution or error\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Variable (QualIdent Nothing (Ident "prot" 14)))) [])),(Equation (79,1) (FunLhs (Ident "checkAssertion" 0) [(VariablePattern (Ident "prot" 16)),(ParenPattern (ConstructorPattern (QualIdent (Just "Assertion") (Ident "AssertEqualIO" 0)) [(VariablePattern (Ident "name" 16)),(VariablePattern (Ident "action1" 16)),(VariablePattern (Ident "action2" 16))]))]) (SimpleRhs (80,3) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "checkAssertEqualIO" 0))) (Variable (QualIdent Nothing (Ident "name" 16)))) (Variable (QualIdent Nothing (Ident "action1" 16)))) (Variable (QualIdent Nothing (Ident "action2" 16)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 16))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ": no solution or error\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Variable (QualIdent Nothing (Ident "prot" 16)))) []))])
+,(TypeSig (85,1) [(Ident "checkAssertTrue" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])]))))
+,(FunctionDecl (86,1) (Ident "checkAssertTrue" 0) [(Equation (86,1) (FunLhs (Ident "checkAssertTrue" 0) [(VariablePattern (Ident "name" 18)),(VariablePattern (Ident "cond" 18))]) (SimpleRhs (87,3) (IfThenElse (Variable (QualIdent Nothing (Ident "cond" 18))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "OK: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 18))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))])) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 18))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ": assertion not satisfied\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))]))) []))])
+,(TypeSig (92,1) [(Ident "checkAssertEqual" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])])))))
+,(FunctionDecl (93,1) (Ident "checkAssertEqual" 0) [(Equation (93,1) (FunLhs (Ident "checkAssertEqual" 0) [(VariablePattern (Ident "name" 20)),(VariablePattern (Ident "call" 20)),(VariablePattern (Ident "result" 20))]) (SimpleRhs (93,37) (Do [(StmtDecl [(PatternDecl (94,7) (VariablePattern (Ident "r" 22)) (SimpleRhs (94,11) (Variable (QualIdent Nothing (Ident "call" 20))) []))])] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "r" 22))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "result" 20)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "OK: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))])) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ": equality assertion not satisfied:\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Computed answer: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "r" 22)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Expected answer: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "result" 20)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))))))))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) []))])
+,(TypeSig (102,1) [(Ident "checkAssertValues" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])])))))
+,(FunctionDecl (103,1) (Ident "checkAssertValues" 0) [(Equation (103,1) (FunLhs (Ident "checkAssertValues" 0) [(VariablePattern (Ident "name" 24)),(VariablePattern (Ident "call" 24)),(VariablePattern (Ident "results" 24))]) (SimpleRhs (103,39) (Do [(StmtBind (VariablePattern (Ident "st" 26)) (Apply (Variable (QualIdent (Just "Prelude") (Ident "getSearchTree" 0))) (Variable (QualIdent Nothing (Ident "call" 24))))),(StmtDecl [(PatternDecl (105,7) (VariablePattern (Ident "rs" 27)) (SimpleRhs (105,12) (Apply (Variable (QualIdent (Just "Prelude") (Ident "allValuesB" 0))) (Variable (QualIdent Nothing (Ident "st" 26)))) []))])] (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "rs" 27))) (InfixOp (QualIdent (Just "List") (Ident "\\\\" 0))) (Variable (QualIdent Nothing (Ident "results" 24)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "results" 24))) (InfixOp (QualIdent (Just "List") (Ident "\\\\" 0))) (Variable (QualIdent Nothing (Ident "rs" 27))))))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "OK: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 24))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))])) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 24))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ": values assertion not satisfied:\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Computed values: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "rs" 27)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Expected values: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "results" 24)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))))))))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) []))])
+,(TypeSig (113,1) [(Ident "checkAssertSolutions" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Success" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])])))))
+,(FunctionDecl (114,1) (Ident "checkAssertSolutions" 0) [(Equation (114,1) (FunLhs (Ident "checkAssertSolutions" 0) [(VariablePattern (Ident "name" 29)),(VariablePattern (Ident "constr" 29)),(VariablePattern (Ident "results" 29))]) (SimpleRhs (114,44) (Do [(StmtBind (VariablePattern (Ident "st" 32)) (Apply (Variable (QualIdent (Just "Prelude") (Ident "getSearchTree" 0))) (Paren (Let [(ExtraVariables (115,28) [(Ident "x" 31)])] (Tuple [(Variable (QualIdent Nothing (Ident "x" 31))),(Apply (Variable (QualIdent Nothing (Ident "constr" 29))) (Variable (QualIdent Nothing (Ident "x" 31))))]))))),(StmtDecl [(PatternDecl (116,7) (VariablePattern (Ident "rs" 33)) (SimpleRhs (116,12) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "fst" 0)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "allValuesB" 0))) (Variable (QualIdent Nothing (Ident "st" 32)))))) []))])] (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "rs" 33))) (InfixOp (QualIdent (Just "List") (Ident "\\\\" 0))) (Variable (QualIdent Nothing (Ident "results" 29)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "results" 29))) (InfixOp (QualIdent (Just "List") (Ident "\\\\" 0))) (Variable (QualIdent Nothing (Ident "rs" 33))))))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "OK: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 29))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))])) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 29))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ": solutions assertion not satisfied:\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Computed values: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "rs" 33)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Expected values: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "results" 29)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))))))))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) []))])
+,(TypeSig (124,1) [(Ident "checkAssertIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])])))))
+,(FunctionDecl (125,1) (Ident "checkAssertIO" 0) [(Equation (125,1) (FunLhs (Ident "checkAssertIO" 0) [(VariablePattern (Ident "name" 35)),(VariablePattern (Ident "action" 35)),(VariablePattern (Ident "result" 35))]) (SimpleRhs (125,36) (Do [(StmtBind (VariablePattern (Ident "r" 37)) (Variable (QualIdent Nothing (Ident "action" 35))))] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "r" 37))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "result" 35)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "OK: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 35))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))])) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 35))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ": IO assertion not satisfied:\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Computed answer: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "r" 37)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Expected answer: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "result" 35)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n\n")))))))))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) []))])
+,(TypeSig (134,1) [(Ident "checkAssertEqualIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])])))))
+,(FunctionDecl (135,1) (Ident "checkAssertEqualIO" 0) [(Equation (135,1) (FunLhs (Ident "checkAssertEqualIO" 0) [(VariablePattern (Ident "name" 38)),(VariablePattern (Ident "action1" 38)),(VariablePattern (Ident "action2" 38))]) (SimpleRhs (135,43) (Do [(StmtBind (VariablePattern (Ident "r1" 40)) (Variable (QualIdent Nothing (Ident "action1" 38)))),(StmtBind (VariablePattern (Ident "r2" 41)) (Variable (QualIdent Nothing (Ident "action2" 38))))] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "r1" 40))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "r2" 41)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "OK: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 38))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))),(Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))])) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(InfixApply (Literal (String "FAILURE of ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "name" 38))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ": IO equality assertion not satisfied:\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Computed answer 1: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "r1" 40)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "Computed answer 2: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "r2" 41)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n\n")))))))))),(Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))])))) []))])
+,(TypeSig (147,1) [(Ident "writeAssertResult" 0)] (ArrowType (TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (148,1) (Ident "writeAssertResult" 0) [(Equation (148,1) (FunLhs (Ident "writeAssertResult" 0) [(TuplePattern [(VariablePattern (Ident "result" 42)),(VariablePattern (Ident "flag" 42))])]) (SimpleRhs (149,3) (IfThenElse (Variable (QualIdent Nothing (Ident "flag" 42))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "result" 42))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "All tests successfully passed."))))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "result" 42))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "FAILURE occurred in some assertions!\n")))))) []))])
+,(TypeSig (162,1) [(Ident "doSend" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (163,1) (Ident "doSend" 0) [(Equation (163,1) (FunLhs (Ident "doSend" 0) [(VariablePattern (Ident "h" 44)),(VariablePattern (Ident "x" 44))]) (SimpleRhs (163,14) (Apply (Apply (Variable (QualIdent (Just "IO") (Ident "hPutStrLn" 0))) (Variable (QualIdent Nothing (Ident "h" 44)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "x" 44)))))) []))])
+,(TypeSig (167,1) [(Ident "showTestMod" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (168,1) (Ident "showTestMod" 0) [(Equation (168,1) (FunLhs (Ident "showTestMod" 0) [(VariablePattern (Ident "port" 46)),(VariablePattern (Ident "modname" 46))]) (SimpleRhs (168,28) (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "doSend" 0))) (Variable (QualIdent Nothing (Ident "port" 46)))) (Paren (Apply (Constructor (QualIdent (Just "Assertion") (Ident "TestModule" 0))) (Variable (QualIdent Nothing (Ident "modname" 46)))))) []))])
+,(TypeSig (173,1) [(Ident "showTestCase" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])]))))
+,(FunctionDecl (174,1) (Ident "showTestCase" 0) [(Equation (174,1) (FunLhs (Ident "showTestCase" 0) [(VariablePattern (Ident "port" 48)),(TuplePattern [(VariablePattern (Ident "s" 48)),(VariablePattern (Ident "b" 48))])]) (SimpleRhs (175,3) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "doSend" 0))) (Variable (QualIdent Nothing (Ident "port" 48)))) (Paren (Apply (Apply (Constructor (QualIdent (Just "Assertion") (Ident "TestCase" 0))) (Variable (QualIdent Nothing (Ident "s" 48)))) (Variable (QualIdent Nothing (Ident "b" 48)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "s" 48))),(Variable (QualIdent Nothing (Ident "b" 48)))]))) []))])
+,(TypeSig (180,1) [(Ident "showTestEnd" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (181,1) (Ident "showTestEnd" 0) [(Equation (181,1) (FunLhs (Ident "showTestEnd" 0) [(VariablePattern (Ident "port" 50))]) (SimpleRhs (181,20) (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "doSend" 0))) (Variable (QualIdent Nothing (Ident "port" 50)))) (Constructor (QualIdent (Just "Assertion") (Ident "TestFinished" 0)))) []))])
+,(TypeSig (185,1) [(Ident "showTestCompileError" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (186,1) (Ident "showTestCompileError" 0) [(Equation (186,1) (FunLhs (Ident "showTestCompileError" 0) [(VariablePattern (Ident "port" 52))]) (SimpleRhs (186,29) (Apply (Apply (Variable (QualIdent (Just "Assertion") (Ident "doSend" 0))) (Variable (QualIdent Nothing (Ident "port" 52)))) (Constructor (QualIdent (Just "Assertion") (Ident "TestCompileError" 0)))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Assertion.efc b/src/lib/Curry/Module/.curry/Assertion.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Assertion.efc
@@ -0,0 +1,1 @@
+Prog "Assertion" ["IO","List","Prelude"] [Type ((Nothing,Nothing,"Assertion","Assertion")) Public [0] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0]))),"Assertion","AssertTrue")) 2 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertEqual")) 3 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TVar 0,TVar 0],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertValues")) 3 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertSolutions")) 3 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Success")) []),TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertIO")) 3 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0],TVar 0],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertEqualIO")) 3 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]]],Type ((Nothing,Nothing,"Assertion","ProtocolMsg")) Public [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") [])),"Assertion","TestModule")) 1 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []))),"Assertion","TestCase")) 2 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []),"Assertion","TestFinished")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []),"Assertion","TestCompileError")) 0 Public []]] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Assertion","seqStrActions")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Assertion","seqStrActions._#lambda2")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Assertion","seqStrActions._#lambda2")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","seqStrActions._#lambda2._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","seqStrActions._#lambda2._#lambda3")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5))]]])])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (FuncType (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Assertion","checkAssertion")) 2 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])) (FuncType (TCons ((Nothing,Nothing,"Assertion","Assertion")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]]))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),1),(Just (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0]))),"Assertion","AssertTrue")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude","catchFail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Assertion","checkAssertTrue")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]]],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertEqual")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),(Just (TVar 0),6),(Just (TVar 0),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude","catchFail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertEqual")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)),Var ((Just (TVar 0),6)),Var ((Just (TVar 0),7))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]]],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertValues")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),8),(Just (TVar 0),9),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),10)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude","catchFail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertValues")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),8)),Var ((Just (TVar 0),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),10))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),8)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]]],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertSolutions")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),11),(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])),12),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),13)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude","catchFail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertSolutions")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),11)),Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])),12)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),13))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),11)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]]],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertIO")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),14),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),15),(Just (TVar 0),16)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude","catchFail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertIO")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),14)),Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),15)),Var ((Just (TVar 0),16))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),14)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]]],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Assertion","Assertion") [TVar 0])))),"Assertion","AssertEqualIO")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),17),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),18),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),19)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude","catchFail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertEqualIO")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),17)),Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),18)),Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),19))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),17)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]]],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),1))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Assertion","checkAssertTrue")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'K'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertEqual")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 0),2),(Just (TVar 0),3)] (Let [((Just (TVar 0),4),Var ((Just (TVar 0),2)))] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 0),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'K'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 0),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 0),3))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertValues")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])),"Prelude","getSearchTree")) [Var ((Just (TVar 0),2))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertValues._#lambda4")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertValues._#lambda4")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 42]) (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 42]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]),2),(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 42]),3)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 53]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53])),"Prelude","allValuesB")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 42]),3))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]))),"List","\\\\")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]),2))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]))),"List","\\\\")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]),4))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'K'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]),2))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertSolutions")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Success")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Success") []]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Success") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Success") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Success") []]]])),"Prelude","getSearchTree")) [Free [(Just (TVar 0),4)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Success") []]))),"Prelude","(,)")) [Var ((Just (TVar 0),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])),2)),Var ((Just (TVar 0),4))]])],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Success") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertSolutions._#lambda5")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","Success") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertSolutions._#lambda5")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 73]) (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 73,TCons ((Nothing,Nothing,"Prelude","Success")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]),2),(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","Success") []]]),3)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]),4),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 87) (TVar 88)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 87]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 88]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 84,TVar 85]) (TVar 84)),"Prelude","fst")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 86]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 86])),"Prelude","allValuesB")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","Success") []]]),3))]])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]))),"List","\\\\")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]),2))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]))),"List","\\\\")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]),4))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'K'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]),2))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertIO")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertIO._#lambda6")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TVar 0),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 104) (FuncType (TVar 104) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertIO._#lambda6")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 104) (FuncType (TVar 104) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 104),2),(Just (TVar 104),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 104) (FuncType (TVar 104) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 104),3)),Var ((Just (TVar 104),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'K'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 104) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 104),3))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 104) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 104),2))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertEqualIO")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertEqualIO._#lambda7")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 127]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 127) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertEqualIO._#lambda7")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 127]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 127) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 127]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 127),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 127]) (FuncType (FuncType (TVar 127) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 127]),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 127) (FuncType (TVar 127) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertEqualIO._#lambda7._#lambda8")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TVar 127),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 127) (FuncType (TVar 127) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])))),"Assertion","checkAssertEqualIO._#lambda7._#lambda8")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 127) (FuncType (TVar 127) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 127),2),(Just (TVar 127),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 127) (FuncType (TVar 127) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 127),2)),Var ((Just (TVar 127),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'K'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '1'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 127) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 127),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '2'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 127) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 127),3))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Assertion","writeAssertResult")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStrLn")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStrLn")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'L'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '!'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Assertion","doSend")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutStrLn")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 0),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Assertion","showTestMod")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Assertion","doSend")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") [])),"Assertion","TestModule")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Assertion","showTestCase")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","Bool")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Assertion","doSend")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []))),"Assertion","TestCase")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","(,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Assertion","showTestEnd")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Assertion","doSend")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []),"Assertion","TestFinished")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Assertion","showTestCompileError")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Assertion","doSend")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Assertion","ProtocolMsg") []),"Assertion","TestCompileError")) []]))] [Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","Bool") []]]))),"Assertion","seqStrActions")) InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Assertion.fcy b/src/lib/Curry/Module/.curry/Assertion.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Assertion.fcy
@@ -0,0 +1,1 @@
+Prog "Assertion" ["IO","List","Prelude"] [Type ("Assertion","Assertion") Public [0] [Cons ("Assertion","AssertTrue") 2 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []],Cons ("Assertion","AssertEqual") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0,TVar 0],Cons ("Assertion","AssertValues") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0,TCons ("Prelude","[]") [TVar 0]],Cons ("Assertion","AssertSolutions") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],FuncType (TVar 0) (TCons ("Prelude","Success") []),TCons ("Prelude","[]") [TVar 0]],Cons ("Assertion","AssertIO") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","IO") [TVar 0],TVar 0],Cons ("Assertion","AssertEqualIO") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","IO") [TVar 0],TCons ("Prelude","IO") [TVar 0]]],Type ("Assertion","ProtocolMsg") Public [] [Cons ("Assertion","TestModule") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Assertion","TestCase") 2 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []],Cons ("Assertion","TestFinished") 0 Public [],Cons ("Assertion","TestCompileError") 0 Public []]] [Func ("Assertion","seqStrActions") 2 Public (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]) (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Var 1,Comb (FuncPartCall 1) ("Assertion","seqStrActions._#lambda2") [Var 2]])),Func ("Assertion","seqStrActions._#lambda2") 2 Private (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb FuncCall ("Prelude",">>=") [Var 1,Comb (FuncPartCall 1) ("Assertion","seqStrActions._#lambda2._#lambda3") [Var 4,Var 3]])])),Func ("Assertion","seqStrActions._#lambda2._#lambda3") 3 Private (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,)") [4,5]) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [Var 2,Var 4],Comb FuncCall ("Prelude","&&") [Var 1,Var 5]]])])),Func ("Assertion","checkAssertion") 2 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])) (FuncType (TCons ("Assertion","Assertion") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Assertion","AssertTrue") [3,4]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Assertion","checkAssertTrue") [Var 3,Var 4],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 3,Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  '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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude","False") []]]],Var 1]),Branch (Pattern ("Assertion","AssertEqual") [5,6,7]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Assertion","checkAssertEqual") [Var 5,Var 6,Var 7],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 5,Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  '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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude","False") []]]],Var 1]),Branch (Pattern ("Assertion","AssertValues") [8,9,10]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Assertion","checkAssertValues") [Var 8,Var 9,Var 10],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 8,Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  '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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude","False") []]]],Var 1]),Branch (Pattern ("Assertion","AssertSolutions") [11,12,13]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Assertion","checkAssertSolutions") [Var 11,Var 12,Var 13],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 11,Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  '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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude","False") []]]],Var 1]),Branch (Pattern ("Assertion","AssertIO") [14,15,16]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Assertion","checkAssertIO") [Var 14,Var 15,Var 16],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 14,Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  '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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude","False") []]]],Var 1]),Branch (Pattern ("Assertion","AssertEqualIO") [17,18,19]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Assertion","checkAssertEqualIO") [Var 17,Var 18,Var 19],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 17,Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  '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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude","False") []]]],Var 1])])),Func ("Assertion","checkAssertTrue") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]))) (Rule [1,2] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'K'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","True") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude","False") []]])])),Func ("Assertion","checkAssertEqual") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Let [(4,Var 2)] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'K'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","True") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [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  'u'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 4],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 3],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb ConsCall ("Prelude","False") []]])]))),Func ("Assertion","checkAssertValues") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","getSearchTree") [Var 2],Comb (FuncPartCall 1) ("Assertion","checkAssertValues._#lambda4") [Var 1,Var 3]])),Func ("Assertion","checkAssertValues._#lambda4") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 42]) (FuncType (TCons ("Prelude","SearchTree") [TVar 42]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","allValuesB") [Var 3])] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","null") [Comb FuncCall ("List","\\\\") [Var 4,Var 2]],Comb FuncCall ("Prelude","null") [Comb FuncCall ("List","\\\\") [Var 2,Var 4]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'K'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","True") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [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  'u'),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  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),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","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 4],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),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  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),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","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 2],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb ConsCall ("Prelude","False") []]])]))),Func ("Assertion","checkAssertSolutions") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Success") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","getSearchTree") [Free [4] (Comb ConsCall ("Prelude","(,)") [Var 4,Comb FuncCall ("Prelude","apply") [Var 2,Var 4]])],Comb (FuncPartCall 1) ("Assertion","checkAssertSolutions._#lambda5") [Var 1,Var 3]])),Func ("Assertion","checkAssertSolutions._#lambda5") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 73]) (FuncType (TCons ("Prelude","SearchTree") [TCons ("Prelude","(,)") [TVar 73,TCons ("Prelude","Success") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","fst") [],Comb FuncCall ("Prelude","allValuesB") [Var 3]])] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","null") [Comb FuncCall ("List","\\\\") [Var 4,Var 2]],Comb FuncCall ("Prelude","null") [Comb FuncCall ("List","\\\\") [Var 2,Var 4]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'K'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","True") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [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  'u'),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  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),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","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 4],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),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  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),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","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 2],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb ConsCall ("Prelude","False") []]])]))),Func ("Assertion","checkAssertIO") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Var 2,Comb (FuncPartCall 1) ("Assertion","checkAssertIO._#lambda6") [Var 1,Var 3]])),Func ("Assertion","checkAssertIO._#lambda6") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 104) (FuncType (TVar 104) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'K'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","True") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [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  'u'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 3],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 2],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]],Comb ConsCall ("Prelude","False") []]])])),Func ("Assertion","checkAssertEqualIO") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Var 2,Comb (FuncPartCall 1) ("Assertion","checkAssertEqualIO._#lambda7") [Var 3,Var 1]])),Func ("Assertion","checkAssertEqualIO._#lambda7") 3 Private (FuncType (TCons ("Prelude","IO") [TVar 127]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 127) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Var 1,Comb (FuncPartCall 1) ("Assertion","checkAssertEqualIO._#lambda7._#lambda8") [Var 2,Var 3]])),Func ("Assertion","checkAssertEqualIO._#lambda7._#lambda8") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 127) (FuncType (TVar 127) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'K'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","True") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),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","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [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  'u'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '1'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 2],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [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  'u'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '2'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 3],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]],Comb ConsCall ("Prelude","False") []]])])),Func ("Assertion","writeAssertResult") 1 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","putStrLn") [Comb FuncCall ("Prelude","++") [Var 2,Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),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","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","putStrLn") [Comb FuncCall ("Prelude","++") [Var 2,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",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),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  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  '!'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])])),Func ("Assertion","doSend") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("IO","hPutStrLn") [Var 1,Comb FuncCall ("Prelude","show") [Var 2]])),Func ("Assertion","showTestMod") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Assertion","doSend") [Var 1,Comb ConsCall ("Assertion","TestModule") [Var 2]])),Func ("Assertion","showTestCase") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Assertion","doSend") [Var 1,Comb ConsCall ("Assertion","TestCase") [Var 3,Var 4]],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","(,)") [Var 3,Var 4]]])])),Func ("Assertion","showTestEnd") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Assertion","doSend") [Var 1,Comb ConsCall ("Assertion","TestFinished") []])),Func ("Assertion","showTestCompileError") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Assertion","doSend") [Var 1,Comb ConsCall ("Assertion","TestCompileError") []]))] [Op ("Assertion","seqStrActions") InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Assertion.fint b/src/lib/Curry/Module/.curry/Assertion.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Assertion.fint
@@ -0,0 +1,1 @@
+Prog "Assertion" ["IO","List","Prelude"] [Type ("Assertion","Assertion") Public [0] [Cons ("Assertion","AssertTrue") 2 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []],Cons ("Assertion","AssertEqual") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0,TVar 0],Cons ("Assertion","AssertValues") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0,TCons ("Prelude","[]") [TVar 0]],Cons ("Assertion","AssertSolutions") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],FuncType (TVar 0) (TCons ("Prelude","Success") []),TCons ("Prelude","[]") [TVar 0]],Cons ("Assertion","AssertIO") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","IO") [TVar 0],TVar 0],Cons ("Assertion","AssertEqualIO") 3 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","IO") [TVar 0],TCons ("Prelude","IO") [TVar 0]]],Type ("Assertion","ProtocolMsg") Public [] [Cons ("Assertion","TestModule") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Assertion","TestCase") 2 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []],Cons ("Assertion","TestFinished") 0 Public [],Cons ("Assertion","TestCompileError") 0 Public []]] [Func ("Assertion","seqStrActions") 2 Public (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]) (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]))) (Rule [] (Var 0)),Func ("Assertion","checkAssertion") 2 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]])) (FuncType (TCons ("Assertion","Assertion") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]))) (Rule [] (Var 0)),Func ("Assertion","writeAssertResult") 1 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Assertion","showTestMod") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("Assertion","showTestCase") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","Bool") []]]))) (Rule [] (Var 0)),Func ("Assertion","showTestEnd") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Assertion","showTestCompileError") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0))] [Op ("Assertion","seqStrActions") InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Assertion.uacy b/src/lib/Curry/Module/.curry/Assertion.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Assertion.uacy
@@ -0,0 +1,19 @@
+CurryProg "Assertion"
+ ["Prelude","List","IO"]
+ [CType ("Assertion","Assertion") Public [(0,"a")] [CCons ("Assertion","AssertTrue") 2 Public [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []],CCons ("Assertion","AssertEqual") 3 Public [CTCons ("Prelude","String") [],CTVar (0,"a"),CTVar (0,"a")],CCons ("Assertion","AssertValues") 3 Public [CTCons ("Prelude","String") [],CTVar (0,"a"),CTCons ("Prelude","[]") [CTVar (0,"a")]],CCons ("Assertion","AssertSolutions") 3 Public [CTCons ("Prelude","String") [],CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") []),CTCons ("Prelude","[]") [CTVar (0,"a")]],CCons ("Assertion","AssertIO") 3 Public [CTCons ("Prelude","String") [],CTCons ("Prelude","IO") [CTVar (0,"a")],CTVar (0,"a")],CCons ("Assertion","AssertEqualIO") 3 Public [CTCons ("Prelude","String") [],CTCons ("Prelude","IO") [CTVar (0,"a")],CTCons ("Prelude","IO") [CTVar (0,"a")]]],
+  CType ("Assertion","ProtocolMsg") Public [] [CCons ("Assertion","TestModule") 1 Public [CTCons ("Prelude","String") []],CCons ("Assertion","TestCase") 2 Public [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []],CCons ("Assertion","TestFinished") 0 Public [],CCons ("Assertion","TestCompileError") 0 Public []]]
+ [CFunc ("Assertion","checkAssertEqual") 3 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"call"),CPVar (2,"result")] [(CSymbol ("Prelude","success"),CDoExpr [CSLet [CLocalPat (CPVar (3,"r")) (CVar (1,"call")) []],CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"r"))) (CVar (2,"result")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (3,"r")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"result")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertEqualIO") 3 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"action1"),CPVar (2,"action2")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"r1")) (CVar (1,"action1")),CSPat (CPVar (4,"r2")) (CVar (2,"action2")),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"r1"))) (CVar (4,"r2")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '1'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (3,"r1")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '2'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (4,"r2")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertIO") 3 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"action"),CPVar (2,"result")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"r")) (CVar (1,"action")),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"r"))) (CVar (2,"result")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (3,"r")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"result")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertSolutions") 3 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"constr"),CPVar (2,"results")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (4,"st")) (CApply (CSymbol ("Prelude","getSearchTree")) (CLetDecl [CLocalVar (3,"x")] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"x"))) (CApply (CVar (1,"constr")) (CVar (3,"x")))))),CSLet [CLocalPat (CPVar (5,"rs")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","fst"))) (CApply (CSymbol ("Prelude","allValuesB")) (CVar (4,"st")))) []],CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (5,"rs"))) (CVar (2,"results"))))) (CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (2,"results"))) (CVar (5,"rs")))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (5,"rs")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"results")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertTrue") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]]))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"cond")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (1,"cond"))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))] []]),
+  CFunc ("Assertion","checkAssertValues") 3 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]])))) (CRules CFlex [CRule [CPVar (0,"name"),CPVar (1,"call"),CPVar (2,"results")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"st")) (CApply (CSymbol ("Prelude","getSearchTree")) (CVar (1,"call"))),CSLet [CLocalPat (CPVar (4,"rs")) (CApply (CSymbol ("Prelude","allValuesB")) (CVar (3,"st"))) []],CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (4,"rs"))) (CVar (2,"results"))))) (CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (2,"results"))) (CVar (4,"rs")))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","True"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (4,"rs")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"results")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CSymbol ("Prelude","False")))))])] []]),
+  CFunc ("Assertion","checkAssertion") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]])) (CFuncType (CTCons ("Assertion","Assertion") [CTVar (0,"_")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]]))) (CRules CFlex [CRule [CPVar (0,"prot"),CPComb ("Assertion","AssertTrue") [CPVar (1,"name"),CPVar (2,"cond")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CSymbol ("Assertion","checkAssertTrue")) (CVar (1,"name"))) (CVar (2,"cond")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (0,"prot")))] [],CRule [CPVar (3,"prot"),CPComb ("Assertion","AssertEqual") [CPVar (4,"name"),CPVar (5,"call"),CPVar (6,"result")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertEqual")) (CVar (4,"name"))) (CVar (5,"call"))) (CVar (6,"result")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (3,"prot")))] [],CRule [CPVar (7,"prot"),CPComb ("Assertion","AssertValues") [CPVar (8,"name"),CPVar (9,"expr"),CPVar (10,"results")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertValues")) (CVar (8,"name"))) (CVar (9,"expr"))) (CVar (10,"results")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (8,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (7,"prot")))] [],CRule [CPVar (11,"prot"),CPComb ("Assertion","AssertSolutions") [CPVar (12,"name"),CPVar (13,"constr"),CPVar (14,"results")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertSolutions")) (CVar (12,"name"))) (CVar (13,"constr"))) (CVar (14,"results")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (12,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (11,"prot")))] [],CRule [CPVar (15,"prot"),CPComb ("Assertion","AssertIO") [CPVar (16,"name"),CPVar (17,"action"),CPVar (18,"result")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertIO")) (CVar (16,"name"))) (CVar (17,"action"))) (CVar (18,"result")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (16,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (15,"prot")))] [],CRule [CPVar (19,"prot"),CPComb ("Assertion","AssertEqualIO") [CPVar (20,"name"),CPVar (21,"action1"),CPVar (22,"action2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CApply (CSymbol ("Assertion","checkAssertEqualIO")) (CVar (20,"name"))) (CVar (21,"action1"))) (CVar (22,"action2")))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (20,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CSymbol ("Prelude","False")))))) (CVar (19,"prot")))] []]),
+  CFunc ("Assertion","doSend") 2 Private (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("IO","hPutStrLn")) (CVar (0,"h"))) (CApply (CSymbol ("Prelude","show")) (CVar (1,"x"))))] []]),
+  CFunc ("Assertion","seqStrActions") 2 Public (CFuncType (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]]) (CFuncType (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]]))) (CRules CFlex [CRule [CPVar (0,"a1"),CPVar (1,"a2")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPComb ("Prelude","(,)") [CPVar (2,"s1"),CPVar (3,"b1")]) (CVar (0,"a1")),CSPat (CPComb ("Prelude","(,)") [CPVar (4,"s2"),CPVar (5,"b2")]) (CVar (1,"a2")),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"s1"))) (CVar (4,"s2")))) (CApply (CApply (CSymbol ("Prelude","&&")) (CVar (3,"b1"))) (CVar (5,"b2")))))])] []]),
+  CFunc ("Assertion","showTestCase") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]]))) (CRules CFlex [CRule [CPVar (0,"port"),CPComb ("Prelude","(,)") [CPVar (1,"s"),CPVar (2,"b")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("Assertion","doSend")) (CVar (0,"port"))) (CApply (CApply (CSymbol ("Assertion","TestCase")) (CVar (1,"s"))) (CVar (2,"b"))))) (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"s"))) (CVar (2,"b")))))] []]),
+  CFunc ("Assertion","showTestCompileError") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Assertion","doSend")) (CVar (0,"port"))) (CSymbol ("Assertion","TestCompileError")))] []]),
+  CFunc ("Assertion","showTestEnd") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Assertion","doSend")) (CVar (0,"port"))) (CSymbol ("Assertion","TestFinished")))] []]),
+  CFunc ("Assertion","showTestMod") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"port"),CPVar (1,"modname")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Assertion","doSend")) (CVar (0,"port"))) (CApply (CSymbol ("Assertion","TestModule")) (CVar (1,"modname"))))] []]),
+  CFunc ("Assertion","writeAssertResult") 1 Public (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"result"),CPVar (1,"flag")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (1,"flag"))) (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"result"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"result"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'L'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '!'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))] []])]
+ [COp ("Assertion","seqStrActions") CInfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/CSV.acy b/src/lib/Curry/Module/.curry/CSV.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/CSV.acy
@@ -0,0 +1,12 @@
+CurryProg "CSV"
+ ["Prelude","List"]
+ []
+ [CFunc ("CSV","components") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (1,"delims"),CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CLit (CCharc '"')))) (CApply (CSymbol ("CSV","breakString")) (CVar (3,"cs")))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (5,"e"),CPVar (6,"s")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (7,"x0")] (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (7,"x0"))) (CVar (1,"delims"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"c"))) (CVar (3,"cs")))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"e"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (6,"s")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("CSV","components")) (CVar (1,"delims"))) (CApply (CSymbol ("Prelude","tail")) (CVar (6,"s"))))))))] [CLocalFunc (CFunc ("CSV","breakString") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CVar (4,"delimError"))] [],CRule [CPComb ("Prelude",":") [CPVar (5,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (5,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))) (CVar (4,"delimError")))] [],CRule [CPComb ("Prelude",":") [CPVar (6,"x"),CPComb ("Prelude",":") [CPVar (7,"y"),CPVar (8,"zs")]]] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"y"))) (CLit (CCharc '"'))),CLetDecl [CLocalPat (CPComb ("Prelude",":") [CPVar (9,"b"),CPVar (10,"bs")]) (CApply (CSymbol ("CSV","breakString")) (CVar (8,"zs"))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (9,"b")))) (CVar (10,"bs")))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (7,"y"))) (CVar (1,"delims"))),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("CSV","components")) (CVar (1,"delims"))) (CVar (8,"zs")))),(CSymbol ("Prelude","otherwise"),CLetDecl [CLocalPat (CPComb ("Prelude",":") [CPVar (11,"b"),CPVar (12,"bs")]) (CApply (CSymbol ("CSV","breakString")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (7,"y"))) (CVar (8,"zs")))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (11,"b")))) (CVar (12,"bs"))))] []])),CLocalPat (CPVar (4,"delimError")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'V'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '!'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))) []]]),
+  CFunc ("CSV","readCSV") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CSV","readCSVWithDelims")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("CSV","readCSVFile") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CSV","readCSVFileWithDelims")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("CSV","readCSVFileWithDelims") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]]))) (CRules CFlex [CRule [CPVar (0,"delims"),CPVar (1,"fname")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"contents")) (CApply (CSymbol ("Prelude","readFile")) (CVar (1,"fname"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("CSV","readCSVWithDelims")) (CVar (0,"delims"))) (CVar (2,"contents"))))])] []]),
+  CFunc ("CSV","readCSVWithDelims") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]))) (CRules CFlex [CRule [CPVar (0,"delims"),CPVar (1,"str")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("CSV","components")) (CVar (0,"delims")))) (CApply (CSymbol ("Prelude","lines")) (CVar (1,"str"))))] []]),
+  CFunc ("CSV","showCSV") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"rows")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("CSV","showCSVLine"))) (CVar (0,"rows")))] []]),
+  CFunc ("CSV","showCSVLine") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"row")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CSymbol ("List","intersperse")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("CSV","convert"))) (CVar (0,"row")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))] [CLocalFunc (CFunc ("CSV","convert") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","any")) (CLambda [CPVar (2,"c")] (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (2,"c"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ';'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]"))))))))) (CVar (1,"s")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","concatMap")) (CLambda [CPVar (3,"c")] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"c"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CSymbol ("Prelude","[]"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CSymbol ("Prelude","[]")))))) (CVar (1,"s")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CSymbol ("Prelude","[]")))))) (CVar (1,"s")))] []]))]]),
+  CFunc ("CSV","writeCSVFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"fname"),CPVar (1,"rows")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (0,"fname"))) (CApply (CSymbol ("CSV","showCSV")) (CVar (1,"rows"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/CSV.cy b/src/lib/Curry/Module/.curry/CSV.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/CSV.cy
@@ -0,0 +1,21 @@
+Module "CSV"
+(Just (Exporting (10,11) [(Export (QualIdent Nothing (Ident "showCSV" 0))),(Export (QualIdent Nothing (Ident "readCSV" 0))),(Export (QualIdent Nothing (Ident "readCSVWithDelims" 0))),(Export (QualIdent Nothing (Ident "writeCSVFile" 0))),(Export (QualIdent Nothing (Ident "readCSVFile" 0))),(Export (QualIdent Nothing (Ident "readCSVFileWithDelims" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (13,1) "List" False Nothing (Just (Importing (13,12) [(Import (Ident "intersperse" 0))])))
+,(TypeSig (19,1) [(Ident "writeCSVFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ListType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (20,1) (Ident "writeCSVFile" 0) [(Equation (20,1) (FunLhs (Ident "writeCSVFile" 0) [(VariablePattern (Ident "fname" 2)),(VariablePattern (Ident "rows" 2))]) (SimpleRhs (20,27) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "writeFile" 0))) (Variable (QualIdent Nothing (Ident "fname" 2)))) (Paren (Apply (Variable (QualIdent (Just "CSV") (Ident "showCSV" 0))) (Variable (QualIdent Nothing (Ident "rows" 2)))))) []))])
+,(TypeSig (24,1) [(Ident "showCSV" 0)] (ArrowType (ListType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (25,1) (Ident "showCSV" 0) [(Equation (25,1) (FunLhs (Ident "showCSV" 0) [(VariablePattern (Ident "rows" 4))]) (SimpleRhs (25,16) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "concatMap" 0))) (Variable (QualIdent (Just "CSV") (Ident "showCSVLine" 0)))) (Variable (QualIdent Nothing (Ident "rows" 4)))) []))])
+,(TypeSig (28,1) [(Ident "showCSVLine" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (29,1) (Ident "showCSVLine" 0) [(Equation (29,1) (FunLhs (Ident "showCSVLine" 0) [(VariablePattern (Ident "row" 6))]) (SimpleRhs (29,19) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "concat" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "List") (Ident "intersperse" 0))) (Literal (String ","))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "convert" 7)))) (Variable (QualIdent Nothing (Ident "row" 6)))))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n"))) [(FunctionDecl (32,4) (Ident "convert" 7) [(Equation (32,4) (FunLhs (Ident "convert" 7) [(VariablePattern (Ident "s" 8))]) (SimpleRhs (33,7) (IfThenElse (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "any" 0))) (Paren (Lambda [(VariablePattern (Ident "c" 10))] (InfixApply (Variable (QualIdent Nothing (Ident "c" 10))) (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (List [(Literal (Char '"')),(Literal (Char ',')),(Literal (Char ';')),(Literal (Char ':'))]))))) (Variable (QualIdent Nothing (Ident "s" 8)))) (InfixApply (Literal (Char '"')) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "concatMap" 0))) (Paren (Lambda [(VariablePattern (Ident "c" 11))] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "c" 11))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '"'))) (List [(Variable (QualIdent Nothing (Ident "c" 11))),(Variable (QualIdent Nothing (Ident "c" 11)))]) (List [(Variable (QualIdent Nothing (Ident "c" 11)))]))))) (Variable (QualIdent Nothing (Ident "s" 8)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\"")))) (Variable (QualIdent Nothing (Ident "s" 8)))) []))])]))])
+,(TypeSig (41,1) [(Ident "readCSVFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))])))
+,(FunctionDecl (42,1) (Ident "readCSVFile" 0) [(Equation (42,1) (FunLhs (Ident "readCSVFile" 0) []) (SimpleRhs (42,15) (Apply (Variable (QualIdent (Just "CSV") (Ident "readCSVFileWithDelims" 0))) (List [(Literal (Char ','))])) []))])
+,(TypeSig (48,1) [(Ident "readCSVFileWithDelims" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))]))))
+,(FunctionDecl (49,1) (Ident "readCSVFileWithDelims" 0) [(Equation (49,1) (FunLhs (Ident "readCSVFileWithDelims" 0) [(VariablePattern (Ident "delims" 14)),(VariablePattern (Ident "fname" 14))]) (SimpleRhs (49,38) (Do [(StmtBind (VariablePattern (Ident "contents" 16)) (Apply (Variable (QualIdent (Just "Prelude") (Ident "readFile" 0))) (Variable (QualIdent Nothing (Ident "fname" 14)))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "CSV") (Ident "readCSVWithDelims" 0))) (Variable (QualIdent Nothing (Ident "delims" 14)))) (Variable (QualIdent Nothing (Ident "contents" 16))))))) []))])
+,(TypeSig (56,1) [(Ident "readCSV" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))))
+,(FunctionDecl (57,1) (Ident "readCSV" 0) [(Equation (57,1) (FunLhs (Ident "readCSV" 0) []) (SimpleRhs (57,11) (Apply (Variable (QualIdent (Just "CSV") (Ident "readCSVWithDelims" 0))) (List [(Literal (Char ','))])) []))])
+,(TypeSig (63,1) [(Ident "readCSVWithDelims" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))))
+,(FunctionDecl (64,1) (Ident "readCSVWithDelims" 0) [(Equation (64,1) (FunLhs (Ident "readCSVWithDelims" 0) [(VariablePattern (Ident "delims" 19)),(VariablePattern (Ident "str" 19))]) (SimpleRhs (64,32) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Apply (Variable (QualIdent (Just "CSV") (Ident "components" 0))) (Variable (QualIdent Nothing (Ident "delims" 19)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "lines" 0))) (Variable (QualIdent Nothing (Ident "str" 19)))))) []))])
+,(TypeSig (67,1) [(Ident "components" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))))
+,(FunctionDecl (68,1) (Ident "components" 0) [(Equation (68,1) (FunLhs (Ident "components" 0) [(VariablePattern (Ident "_" 22)),(ListPattern [])]) (SimpleRhs (68,19) (List [(List [])]) [])),(Equation (69,1) (FunLhs (Ident "components" 0) [(VariablePattern (Ident "delims" 24)),(ParenPattern (InfixPattern (VariablePattern (Ident "c" 24)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 24))))]) (SimpleRhs (70,3) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "c" 24))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '"'))) (Apply (Variable (QualIdent Nothing (Ident "breakString" 25))) (Variable (QualIdent Nothing (Ident "cs" 24)))) (Let [(PatternDecl (71,22) (TuplePattern [(VariablePattern (Ident "e" 37)),(VariablePattern (Ident "s" 37))]) (SimpleRhs (71,30) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "break" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (Variable (QualIdent Nothing (Ident "delims" 24))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 24))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "cs" 24)))))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "e" 37))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Paren (IfThenElse (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "s" 37)))) (List []) (Apply (Apply (Variable (QualIdent (Just "CSV") (Ident "components" 0))) (Variable (QualIdent Nothing (Ident "delims" 24)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "s" 37))))))))))) [(FunctionDecl (74,4) (Ident "breakString" 25) [(Equation (74,4) (FunLhs (Ident "breakString" 25) [(ListPattern [])]) (SimpleRhs (74,21) (Variable (QualIdent Nothing (Ident "delimError" 25))) [])),(Equation (75,4) (FunLhs (Ident "breakString" 25) [(ListPattern [(VariablePattern (Ident "x" 28))])]) (SimpleRhs (75,22) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "x" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '"'))) (List [(List [])]) (Variable (QualIdent Nothing (Ident "delimError" 25)))) [])),(Equation (77,4) (FunLhs (Ident "breakString" 25) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 30)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "y" 30)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "zs" 30)))))]) (GuardedRhs [(CondExpr (77,25) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "x" 30))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '"'))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "y" 30))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '"')))) (Let [(PatternDecl (77,50) (ParenPattern (InfixPattern (VariablePattern (Ident "b" 32)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "bs" 32)))) (SimpleRhs (77,59) (Apply (Variable (QualIdent Nothing (Ident "breakString" 25))) (Variable (QualIdent Nothing (Ident "zs" 30)))) []))] (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 30))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "b" 32))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "bs" 32)))))),(CondExpr (79,25) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "x" 30))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '"'))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "y" 30))) (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (Variable (QualIdent Nothing (Ident "delims" 24))))) (InfixApply (List []) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "CSV") (Ident "components" 0))) (Variable (QualIdent Nothing (Ident "delims" 24)))) (Variable (QualIdent Nothing (Ident "zs" 30)))))),(CondExpr (80,25) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Let [(PatternDecl (80,43) (ParenPattern (InfixPattern (VariablePattern (Ident "b" 34)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "bs" 34)))) (SimpleRhs (80,52) (Apply (Variable (QualIdent Nothing (Ident "breakString" 25))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 30))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "zs" 30)))))) []))] (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 30))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "b" 34))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "bs" 34))))))] []))]),(PatternDecl (83,4) (VariablePattern (Ident "delimError" 25)) (SimpleRhs (83,18) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Missing closing delimiter in CSV record!"))) []))]))])
+]
diff --git a/src/lib/Curry/Module/.curry/CSV.efc b/src/lib/Curry/Module/.curry/CSV.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/CSV.efc
@@ -0,0 +1,1 @@
+Prog "CSV" ["List","Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"CSV","writeCSVFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","writeFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","showCSV")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","showCSV")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","concatMap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","showCSVLine")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","showCSVLine")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","concat")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"List","intersperse")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","showCSVLine.convert.7")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))]]],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","showCSVLine.convert.7")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","any")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"CSV","showCSVLine.convert.7._#lambda2")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '"'),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","concatMap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","showCSVLine.convert.7._#lambda3")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '"'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"CSV","showCSVLine.convert.7._#lambda2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '"'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ';'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","showCSVLine.convert.7._#lambda3")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  '"')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"CSV","readCSVFile")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"CSV","readCSVFileWithDelims")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"CSV","readCSVFileWithDelims")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","readFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"CSV","readCSVFileWithDelims._#lambda4")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"CSV","readCSVFileWithDelims._#lambda4")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"Prelude","return")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"CSV","readCSVWithDelims")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"CSV","readCSV")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"CSV","readCSVWithDelims")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"CSV","readCSVWithDelims")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"CSV","components")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"CSV","components")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 55)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 54) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 54]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 54]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TVar 53) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TVar 52) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 52]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 52]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TVar 51) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 51]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 51]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TVar 50) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TVar 49) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 49]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 49]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TVar 48) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 48]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 48]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TVar 47) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TVar 46) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 46]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 46]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TVar 45) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TVar 44) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 44]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 44]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TVar 43) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TVar 42) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TVar 41) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 41]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 41]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TVar 40) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 40]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 40]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TVar 39) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TVar 38) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 38]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 38]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TVar 37) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 36) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 36]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 36]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TVar 35) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 35]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 35]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TVar 34) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 34]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 34]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TVar 33) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 33]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 33]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TVar 32) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 32]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 32]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TVar 31) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 31]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 31]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 30) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 30]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 30]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TVar 29) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 29]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 29]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TVar 28) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 28]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 28]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TVar 27) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 27]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 27]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TVar 26) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 26]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 26]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TVar 25) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 25]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 25]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TVar 24) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 24]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 24]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TVar 23) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]))),"Prelude",":")) [Lit (Charc  'V'),Comb ConsCall ((Nothing,Just (FuncType (TVar 22) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 22]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 22]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TVar 21) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 21]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 21]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TVar 20) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 20]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 20]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 19) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 19]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 19]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TVar 18) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 17]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 17]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TVar 16) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 16]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 16]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TVar 15) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]))),"Prelude",":")) [Lit (Charc  '!'),Comb ConsCall ((Nothing,Just (TVar 14),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3)),Lit (Charc  '"')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"CSV","components.breakString.25")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TVar 9),6),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 63) (TVar 64)) (FuncType (TVar 63) (TVar 64))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 61) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 61]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 61],TCons (Nothing,Nothing,"Prelude","[]") [TVar 61]]))),"Prelude","break")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 58) (FuncType (TVar 59) (TVar 60))) (FuncType (TVar 59) (FuncType (TVar 58) (TVar 60)))),"Prelude","flip")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 57) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 57]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]],Comb ConsCall ((Nothing,Just (FuncType (TVar 62) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 62]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 62]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","components._#selFP9#e")) [Var ((Just (TVar 9),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","components._#selFP10#s")) [Var ((Just (TVar 9),6))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7)),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),8))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"CSV","components")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),8))]])]]))))]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"CSV","components.breakString.25")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),4)),Lit (Charc  '"')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),4)),Lit (Charc  '"')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),6)),Lit (Charc  '"')]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 10),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"CSV","components.breakString.25")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","components.breakString.25._#selFP3#b")) [Var ((Just (TVar 10),8))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"CSV","components.breakString.25._#selFP4#bs")) [Var ((Just (TVar 10),8))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),10))])))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),4)),Lit (Charc  '"')],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"CSV","components")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 12),11),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"CSV","components.breakString.25")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TVar 27) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 27]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 27]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7))]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),12),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","components.breakString.25._#selFP6#b")) [Var ((Just (TVar 12),11))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),13),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"CSV","components.breakString.25._#selFP7#bs")) [Var ((Just (TVar 12),11))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),12))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),13))])))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","failed")) [])])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","components.breakString.25._#selFP3#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"CSV","components.breakString.25._#selFP4#bs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","components.breakString.25._#selFP6#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"CSV","components.breakString.25._#selFP7#bs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","components._#selFP9#e")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"CSV","components._#selFP10#s")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))]))] []
diff --git a/src/lib/Curry/Module/.curry/CSV.fcy b/src/lib/Curry/Module/.curry/CSV.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/CSV.fcy
@@ -0,0 +1,1 @@
+Prog "CSV" ["List","Prelude"] [] [Func ("CSV","writeCSVFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","writeFile") [Var 1,Comb FuncCall ("CSV","showCSV") [Var 2]])),Func ("CSV","showCSV") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("CSV","showCSVLine") []],Var 1])),Func ("CSV","showCSVLine") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","concat") [Comb FuncCall ("List","intersperse") [Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("CSV","showCSVLine.convert.7") [],Var 1]]],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]])),Func ("CSV","showCSVLine.convert.7") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","any") [Comb (FuncPartCall 1) ("CSV","showCSVLine.convert.7._#lambda2") []],Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '"'),Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("CSV","showCSVLine.convert.7._#lambda3") []],Var 1],Comb ConsCall ("Prelude",":") [Lit (Charc  '"'),Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("Prelude","False") []) (Var 1)])),Func ("CSV","showCSVLine.convert.7._#lambda2") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 1],Comb ConsCall ("Prelude",":") [Lit (Charc  '"'),Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude",":") [Lit (Charc  ';'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude","[]") []]]]]])),Func ("CSV","showCSVLine.convert.7._#lambda3") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  '"')]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []])])),Func ("CSV","readCSVFile") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]])) (Rule [] (Comb (FuncPartCall 1) ("CSV","readCSVFileWithDelims") [Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude","[]") []]])),Func ("CSV","readCSVFileWithDelims") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","readFile") [Var 2],Comb (FuncPartCall 1) ("CSV","readCSVFileWithDelims._#lambda4") [Var 1]])),Func ("CSV","readCSVFileWithDelims._#lambda4") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb FuncCall ("CSV","readCSVWithDelims") [Var 1,Var 2]])),Func ("CSV","readCSV") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [] (Comb (FuncPartCall 1) ("CSV","readCSVWithDelims") [Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude","[]") []]])),Func ("CSV","readCSVWithDelims") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [1,2] (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("CSV","components") [Var 1],Comb FuncCall ("Prelude","lines") [Var 2]])),Func ("CSV","components") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Prelude","error") [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  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),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  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude",":") [Lit (Charc  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'V'),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","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Lit (Charc  '"')]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("CSV","components.breakString.25") [Var 5,Var 1,Var 4]),Branch (Pattern ("Prelude","False") []) (Let [(6,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 1) ("Prelude","elem") [],Var 1]],Comb ConsCall ("Prelude",":") [Var 3,Var 4]])] (Let [(7,Comb FuncCall ("CSV","components._#selFP9#e") [Var 6])] (Let [(8,Comb FuncCall ("CSV","components._#selFP10#s") [Var 6])] (Comb ConsCall ("Prelude",":") [Var 7,Case  Rigid (Comb FuncCall ("Prelude","null") [Var 8]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("CSV","components") [Var 1,Comb FuncCall ("Prelude","tail") [Var 8]])]]))))]))])),Func ("CSV","components.breakString.25") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Var 1),Branch (Pattern ("Prelude",":") [4,5]) (Case  Flex (Var 5) [Branch (Pattern ("Prelude","[]") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Lit (Charc  '"')]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Var 1)]),Branch (Pattern ("Prelude",":") [6,7]) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 4,Lit (Charc  '"')],Comb FuncCall ("Prelude","==") [Var 6,Lit (Charc  '"')]]) [Branch (Pattern ("Prelude","True") []) (Let [(8,Comb FuncCall ("CSV","components.breakString.25") [Var 1,Var 2,Var 7])] (Let [(9,Comb FuncCall ("CSV","components.breakString.25._#selFP3#b") [Var 8])] (Let [(10,Comb FuncCall ("CSV","components.breakString.25._#selFP4#bs") [Var 8])] (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 4,Var 9],Var 10])))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 4,Lit (Charc  '"')],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 6],Var 2]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","[]") [],Comb FuncCall ("CSV","components") [Var 2,Var 7]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Let [(11,Comb FuncCall ("CSV","components.breakString.25") [Var 1,Var 2,Comb ConsCall ("Prelude",":") [Var 6,Var 7]])] (Let [(12,Comb FuncCall ("CSV","components.breakString.25._#selFP6#b") [Var 11])] (Let [(13,Comb FuncCall ("CSV","components.breakString.25._#selFP7#bs") [Var 11])] (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 4,Var 12],Var 13])))),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])])),Func ("CSV","components.breakString.25._#selFP3#b") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Var 2)])),Func ("CSV","components.breakString.25._#selFP4#bs") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Var 3)])),Func ("CSV","components.breakString.25._#selFP6#b") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Var 2)])),Func ("CSV","components.breakString.25._#selFP7#bs") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Var 3)])),Func ("CSV","components._#selFP9#e") 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 ("CSV","components._#selFP10#s") 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)]))] []
diff --git a/src/lib/Curry/Module/.curry/CSV.fint b/src/lib/Curry/Module/.curry/CSV.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/CSV.fint
@@ -0,0 +1,1 @@
+Prog "CSV" ["List","Prelude"] [] [Func ("CSV","writeCSVFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("CSV","showCSV") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("CSV","readCSVFile") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]])) (Rule [] (Var 0)),Func ("CSV","readCSVFileWithDelims") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]]))) (Rule [] (Var 0)),Func ("CSV","readCSV") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [] (Var 0)),Func ("CSV","readCSVWithDelims") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/CSV.uacy b/src/lib/Curry/Module/.curry/CSV.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/CSV.uacy
@@ -0,0 +1,12 @@
+CurryProg "CSV"
+ ["Prelude","List"]
+ []
+ [CFunc ("CSV","components") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (1,"delims"),CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CLit (CCharc '"')))) (CApply (CSymbol ("CSV","breakString")) (CVar (3,"cs")))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (5,"e"),CPVar (6,"s")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (7,"x0")] (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (7,"x0"))) (CVar (1,"delims"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"c"))) (CVar (3,"cs")))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"e"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (6,"s")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("CSV","components")) (CVar (1,"delims"))) (CApply (CSymbol ("Prelude","tail")) (CVar (6,"s"))))))))] [CLocalFunc (CFunc ("CSV","breakString") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CVar (4,"delimError"))] [],CRule [CPComb ("Prelude",":") [CPVar (5,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (5,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))) (CVar (4,"delimError")))] [],CRule [CPComb ("Prelude",":") [CPVar (6,"x"),CPComb ("Prelude",":") [CPVar (7,"y"),CPVar (8,"zs")]]] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"y"))) (CLit (CCharc '"'))),CLetDecl [CLocalPat (CPComb ("Prelude",":") [CPVar (9,"b"),CPVar (10,"bs")]) (CApply (CSymbol ("CSV","breakString")) (CVar (8,"zs"))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (9,"b")))) (CVar (10,"bs")))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (7,"y"))) (CVar (1,"delims"))),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("CSV","components")) (CVar (1,"delims"))) (CVar (8,"zs")))),(CSymbol ("Prelude","otherwise"),CLetDecl [CLocalPat (CPComb ("Prelude",":") [CPVar (11,"b"),CPVar (12,"bs")]) (CApply (CSymbol ("CSV","breakString")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (7,"y"))) (CVar (8,"zs")))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (11,"b")))) (CVar (12,"bs"))))] []])),CLocalPat (CPVar (4,"delimError")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'V'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '!'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))) []]]),
+  CFunc ("CSV","readCSV") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CSV","readCSVWithDelims")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("CSV","readCSVFile") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CSV","readCSVFileWithDelims")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("CSV","readCSVFileWithDelims") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]]))) (CRules CFlex [CRule [CPVar (0,"delims"),CPVar (1,"fname")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"contents")) (CApply (CSymbol ("Prelude","readFile")) (CVar (1,"fname"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("CSV","readCSVWithDelims")) (CVar (0,"delims"))) (CVar (2,"contents"))))])] []]),
+  CFunc ("CSV","readCSVWithDelims") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]))) (CRules CFlex [CRule [CPVar (0,"delims"),CPVar (1,"str")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("CSV","components")) (CVar (0,"delims")))) (CApply (CSymbol ("Prelude","lines")) (CVar (1,"str"))))] []]),
+  CFunc ("CSV","showCSV") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"rows")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("CSV","showCSVLine"))) (CVar (0,"rows")))] []]),
+  CFunc ("CSV","showCSVLine") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"row")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CSymbol ("List","intersperse")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("CSV","convert"))) (CVar (0,"row")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))] [CLocalFunc (CFunc ("CSV","convert") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","any")) (CLambda [CPVar (2,"c")] (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (2,"c"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ';'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]"))))))))) (CVar (1,"s")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","concatMap")) (CLambda [CPVar (3,"c")] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"c"))) (CLit (CCharc '"')))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CSymbol ("Prelude","[]"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"c"))) (CSymbol ("Prelude","[]")))))) (CVar (1,"s")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '"'))) (CSymbol ("Prelude","[]")))))) (CVar (1,"s")))] []]))]]),
+  CFunc ("CSV","writeCSVFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"fname"),CPVar (1,"rows")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (0,"fname"))) (CApply (CSymbol ("CSV","showCSV")) (CVar (1,"rows"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Char.acy b/src/lib/Curry/Module/.curry/Char.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Char.acy
@@ -0,0 +1,16 @@
+CurryProg "Char"
+ ["Prelude"]
+ []
+ [CFunc ("Char","digitToInt") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CApply (CSymbol ("Char","isDigit")) (CVar (0,"c")),CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'F')))),CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CLit (CIntc 10))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'f')))),CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CLit (CIntc 10))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))] []]),
+  CFunc ("Char","intToDigit") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Char") [])) (CRules CFlex [CRule [CPVar (0,"i")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"i"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"i"))) (CLit (CIntc 9))),CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))) (CVar (0,"i")))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"i"))) (CLit (CIntc 10)))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"i"))) (CLit (CIntc 15))),CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A')))) (CVar (0,"i")))) (CLit (CIntc 10)))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'D'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))] []]),
+  CFunc ("Char","isAlpha") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Char","isUpper")) (CVar (0,"c")))) (CApply (CSymbol ("Char","isLower")) (CVar (0,"c"))))] []]),
+  CFunc ("Char","isAlphaNum") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Char","isAlpha")) (CVar (0,"c")))) (CApply (CSymbol ("Char","isDigit")) (CVar (0,"c"))))] []]),
+  CFunc ("Char","isDigit") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c"))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '9')))))] []]),
+  CFunc ("Char","isHexDigit") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Char","isDigit")) (CVar (0,"c")))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'F')))))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'f')))))))] []]),
+  CFunc ("Char","isLower") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'z')))))] []]),
+  CFunc ("Char","isOctDigit") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '7')))))] []]),
+  CFunc ("Char","isSpace") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc ' ')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc '\t')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc '\n')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc '\r')))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CLit (CIntc 12)))))))] []]),
+  CFunc ("Char","isUpper") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'Z')))))] []]),
+  CFunc ("Char","toLower") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Char") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CApply (CSymbol ("Char","isUpper")) (CVar (0,"c")),CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))),(CSymbol ("Prelude","otherwise"),CVar (0,"c"))] []]),
+  CFunc ("Char","toUpper") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Char") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CApply (CSymbol ("Char","isLower")) (CVar (0,"c")),CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))),(CSymbol ("Prelude","otherwise"),CVar (0,"c"))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Char.cy b/src/lib/Curry/Module/.curry/Char.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Char.cy
@@ -0,0 +1,28 @@
+Module "Char"
+(Just (Exporting (8,12) [(Export (QualIdent Nothing (Ident "isUpper" 0))),(Export (QualIdent Nothing (Ident "isLower" 0))),(Export (QualIdent Nothing (Ident "isAlpha" 0))),(Export (QualIdent Nothing (Ident "isDigit" 0))),(Export (QualIdent Nothing (Ident "isAlphaNum" 0))),(Export (QualIdent Nothing (Ident "isOctDigit" 0))),(Export (QualIdent Nothing (Ident "isHexDigit" 0))),(Export (QualIdent Nothing (Ident "isSpace" 0))),(Export (QualIdent Nothing (Ident "toUpper" 0))),(Export (QualIdent Nothing (Ident "toLower" 0))),(Export (QualIdent Nothing (Ident "digitToInt" 0))),(Export (QualIdent Nothing (Ident "intToDigit" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(TypeSig (12,1) [(Ident "isUpper" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (13,1) (Ident "isUpper" 0) [(Equation (13,1) (FunLhs (Ident "isUpper" 0) [(VariablePattern (Ident "c" 2))]) (SimpleRhs (13,18) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 2)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 2)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'Z'))))) []))])
+,(TypeSig (16,1) [(Ident "isLower" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (17,1) (Ident "isLower" 0) [(Equation (17,1) (FunLhs (Ident "isLower" 0) [(VariablePattern (Ident "c" 4))]) (SimpleRhs (17,18) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 4)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 4)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'z'))))) []))])
+,(TypeSig (20,1) [(Ident "isAlpha" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (21,1) (Ident "isAlpha" 0) [(Equation (21,1) (FunLhs (Ident "isAlpha" 0) [(VariablePattern (Ident "c" 6))]) (SimpleRhs (21,18) (InfixApply (Apply (Variable (QualIdent (Just "Char") (Ident "isUpper" 0))) (Variable (QualIdent Nothing (Ident "c" 6)))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (Apply (Variable (QualIdent (Just "Char") (Ident "isLower" 0))) (Variable (QualIdent Nothing (Ident "c" 6))))) []))])
+,(TypeSig (24,1) [(Ident "isDigit" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (25,1) (Ident "isDigit" 0) [(Equation (25,1) (FunLhs (Ident "isDigit" 0) [(VariablePattern (Ident "c" 8))]) (SimpleRhs (25,18) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '0'))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 8))))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 8)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '9'))))) []))])
+,(TypeSig (28,1) [(Ident "isAlphaNum" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (29,1) (Ident "isAlphaNum" 0) [(Equation (29,1) (FunLhs (Ident "isAlphaNum" 0) [(VariablePattern (Ident "c" 10))]) (SimpleRhs (29,18) (InfixApply (Apply (Variable (QualIdent (Just "Char") (Ident "isAlpha" 0))) (Variable (QualIdent Nothing (Ident "c" 10)))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (Apply (Variable (QualIdent (Just "Char") (Ident "isDigit" 0))) (Variable (QualIdent Nothing (Ident "c" 10))))) []))])
+,(TypeSig (32,1) [(Ident "isOctDigit" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (33,1) (Ident "isOctDigit" 0) [(Equation (33,1) (FunLhs (Ident "isOctDigit" 0) [(VariablePattern (Ident "c" 12))]) (SimpleRhs (33,18) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 12)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '0')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 12)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '7'))))) []))])
+,(TypeSig (36,1) [(Ident "isHexDigit" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (37,1) (Ident "isHexDigit" 0) [(Equation (37,1) (FunLhs (Ident "isHexDigit" 0) [(VariablePattern (Ident "c" 14))]) (SimpleRhs (37,18) (InfixApply (Apply (Variable (QualIdent (Just "Char") (Ident "isDigit" 0))) (Variable (QualIdent Nothing (Ident "c" 14)))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 14)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 14)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'F'))))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 14)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 14)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'f'))))))) []))])
+,(TypeSig (41,1) [(Ident "isSpace" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (42,1) (Ident "isSpace" 0) [(Equation (42,1) (FunLhs (Ident "isSpace" 0) [(VariablePattern (Ident "c" 16))]) (SimpleRhs (42,18) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 16))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char ' '))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 16))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\t'))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 16))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\n'))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 16))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\r'))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 16)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 18) 12))))))) []))])
+,(TypeSig (46,1) [(Ident "toUpper" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])))
+,(FunctionDecl (47,1) (Ident "toUpper" 0) [(Equation (47,1) (FunLhs (Ident "toUpper" 0) [(VariablePattern (Ident "c" 19))]) (GuardedRhs [(CondExpr (47,11) (Apply (Variable (QualIdent (Just "Char") (Ident "isLower" 0))) (Variable (QualIdent Nothing (Ident "c" 19)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Paren (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 19)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a')))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A'))))))),(CondExpr (48,11) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Variable (QualIdent Nothing (Ident "c" 19))))] []))])
+,(TypeSig (51,1) [(Ident "toLower" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])))
+,(FunctionDecl (52,1) (Ident "toLower" 0) [(Equation (52,1) (FunLhs (Ident "toLower" 0) [(VariablePattern (Ident "c" 21))]) (GuardedRhs [(CondExpr (52,11) (Apply (Variable (QualIdent (Just "Char") (Ident "isUpper" 0))) (Variable (QualIdent Nothing (Ident "c" 21)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Paren (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 21)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A')))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a'))))))),(CondExpr (53,11) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Variable (QualIdent Nothing (Ident "c" 21))))] []))])
+,(TypeSig (56,1) [(Ident "digitToInt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (57,1) (Ident "digitToInt" 0) [(Equation (57,1) (FunLhs (Ident "digitToInt" 0) [(VariablePattern (Ident "c" 23))]) (GuardedRhs [(CondExpr (58,3) (Apply (Variable (QualIdent (Just "Char") (Ident "isDigit" 0))) (Variable (QualIdent Nothing (Ident "c" 23)))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 23)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '0'))))),(CondExpr (59,3) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 23)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 23)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'F'))))) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 23)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A')))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 25) 10)))),(CondExpr (60,3) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 23)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 23)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'f'))))) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 23)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a')))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 26) 10)))),(CondExpr (61,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Char.digitToInt: argument is not a digit"))))] []))])
+,(TypeSig (64,1) [(Ident "intToDigit" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])))
+,(FunctionDecl (65,1) (Ident "intToDigit" 0) [(Equation (65,1) (FunLhs (Ident "intToDigit" 0) [(VariablePattern (Ident "i" 27))]) (GuardedRhs [(CondExpr (66,3) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "i" 27))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Literal (Int (Ident "_" 29) 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "i" 27))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Literal (Int (Ident "_" 30) 9)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '0'))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "i" 27))))))),(CondExpr (67,3) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "i" 27))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Literal (Int (Ident "_" 31) 10))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "i" 27))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Literal (Int (Ident "_" 32) 15)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Paren (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A'))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "i" 27)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 33) 10)))))),(CondExpr (68,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Char.intToDigit: argument not a digit value"))))] []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Char.efc b/src/lib/Curry/Module/.curry/Char.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Char.efc
@@ -0,0 +1,1 @@
+Prog "Char" ["Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isUpper")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'Z')]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isLower")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'z')]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isAlpha")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isUpper")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isLower")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isDigit")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '0')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '9')]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isAlphaNum")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isAlpha")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isDigit")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isOctDigit")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '0')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '7')]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isHexDigit")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isDigit")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'F')]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'f')]]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isSpace")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  ' ')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  '\t')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  '\n')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  '\r')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Lit (Intc  12)]]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Char","toUpper")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Char")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isLower")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"Prelude","failed")) [])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Char","toLower")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Char")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isUpper")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"Prelude","failed")) [])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Char","digitToInt")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isDigit")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '0')]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'F')]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]],Lit (Intc  10)]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'f')]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')]],Lit (Intc  10)]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Char","intToDigit")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Char")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  9)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '0')],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  10)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  15)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Lit (Intc  10)]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'D'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"Prelude","failed")) [])])])]))] []
diff --git a/src/lib/Curry/Module/.curry/Char.fcy b/src/lib/Curry/Module/.curry/Char.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Char.fcy
@@ -0,0 +1,1 @@
+Prog "Char" ["Prelude"] [] [Func ("Char","isUpper") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'Z')]]])),Func ("Char","isLower") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'z')]]])),Func ("Char","isAlpha") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Char","isUpper") [Var 1],Comb FuncCall ("Char","isLower") [Var 1]])),Func ("Char","isDigit") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Lit (Charc  '0')],Comb FuncCall ("Prelude","ord") [Var 1]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  '9')]]])),Func ("Char","isAlphaNum") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Char","isAlpha") [Var 1],Comb FuncCall ("Char","isDigit") [Var 1]])),Func ("Char","isOctDigit") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  '0')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  '7')]]])),Func ("Char","isHexDigit") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Char","isDigit") [Var 1],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'F')]]],Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'f')]]]]])),Func ("Char","isSpace") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  ' ')],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  '\t')],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  '\n')],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  '\r')],Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","ord") [Var 1],Lit (Intc  12)]]]]])),Func ("Char","toUpper") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Char") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Char","isLower") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","chr") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')]],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])),Func ("Char","toLower") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Char") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Char","isUpper") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","chr") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]],Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])),Func ("Char","digitToInt") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Char","isDigit") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  '0')]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'F')]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]],Lit (Intc  10)]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'f')]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')]],Lit (Intc  10)]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),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  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("Char","intToDigit") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Char") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Var 1,Lit (Intc  0)],Comb FuncCall ("Prelude","<=") [Var 1,Lit (Intc  9)]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","chr") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","ord") [Lit (Charc  '0')],Var 1]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Var 1,Lit (Intc  10)],Comb FuncCall ("Prelude","<=") [Var 1,Lit (Intc  15)]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","chr") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')],Var 1],Lit (Intc  10)]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'D'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])]))] []
diff --git a/src/lib/Curry/Module/.curry/Char.fint b/src/lib/Curry/Module/.curry/Char.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Char.fint
@@ -0,0 +1,1 @@
+Prog "Char" ["Prelude"] [] [Func ("Char","isUpper") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Char","isLower") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Char","isAlpha") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Char","isDigit") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Char","isAlphaNum") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Char","isOctDigit") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Char","isHexDigit") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Char","isSpace") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Char","toUpper") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Char") [])) (Rule [] (Var 0)),Func ("Char","toLower") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Char") [])) (Rule [] (Var 0)),Func ("Char","digitToInt") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Char","intToDigit") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Char") [])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Char.uacy b/src/lib/Curry/Module/.curry/Char.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Char.uacy
@@ -0,0 +1,16 @@
+CurryProg "Char"
+ ["Prelude"]
+ []
+ [CFunc ("Char","digitToInt") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CApply (CSymbol ("Char","isDigit")) (CVar (0,"c")),CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'F')))),CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CLit (CIntc 10))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'f')))),CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CLit (CIntc 10))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))] []]),
+  CFunc ("Char","intToDigit") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Char") [])) (CRules CFlex [CRule [CPVar (0,"i")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"i"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"i"))) (CLit (CIntc 9))),CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))) (CVar (0,"i")))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"i"))) (CLit (CIntc 10)))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"i"))) (CLit (CIntc 15))),CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A')))) (CVar (0,"i")))) (CLit (CIntc 10)))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'D'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))] []]),
+  CFunc ("Char","isAlpha") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Char","isUpper")) (CVar (0,"c")))) (CApply (CSymbol ("Char","isLower")) (CVar (0,"c"))))] []]),
+  CFunc ("Char","isAlphaNum") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Char","isAlpha")) (CVar (0,"c")))) (CApply (CSymbol ("Char","isDigit")) (CVar (0,"c"))))] []]),
+  CFunc ("Char","isDigit") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c"))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '9')))))] []]),
+  CFunc ("Char","isHexDigit") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Char","isDigit")) (CVar (0,"c")))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'F')))))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'f')))))))] []]),
+  CFunc ("Char","isLower") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'z')))))] []]),
+  CFunc ("Char","isOctDigit") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '7')))))] []]),
+  CFunc ("Char","isSpace") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc ' ')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc '\t')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc '\n')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc '\r')))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CLit (CIntc 12)))))))] []]),
+  CFunc ("Char","isUpper") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'Z')))))] []]),
+  CFunc ("Char","toLower") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Char") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CApply (CSymbol ("Char","isUpper")) (CVar (0,"c")),CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))),(CSymbol ("Prelude","otherwise"),CVar (0,"c"))] []]),
+  CFunc ("Char","toUpper") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Char") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CApply (CSymbol ("Char","isLower")) (CVar (0,"c")),CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))),(CSymbol ("Prelude","otherwise"),CVar (0,"c"))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Dequeue.acy b/src/lib/Curry/Module/.curry/Dequeue.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Dequeue.acy
@@ -0,0 +1,20 @@
+CurryProg "Dequeue"
+ ["Prelude"]
+ [CType ("Dequeue","Queue") Public [(0,"a")] [CCons ("Dequeue","S") 4 Private [CTCons ("Prelude","Int") [],CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","Int") [],CTCons ("Prelude","[]") [CTVar (0,"a")]]]]
+ [CFunc ("Dequeue","check") 4 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"lenf"),CPVar (1,"f"),CPVar (2,"lenr"),CPVar (3,"r")] [(CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"lenf"))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 3))) (CVar (2,"lenr")))) (CLit (CIntc 1))),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","S")) (CVar (0,"lenf"))) (CVar (1,"f"))) (CVar (2,"lenr"))) (CVar (3,"r"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","S")) (CVar (5,"lenf'"))) (CVar (7,"f'"))) (CVar (6,"lenr'"))) (CVar (9,"r'")))] [CLocalPat (CPVar (4,"len")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"lenf"))) (CVar (2,"lenr"))) [],CLocalPat (CPVar (5,"lenf'")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (4,"len"))) (CLit (CIntc 2))) [],CLocalPat (CPVar (6,"lenr'")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (4,"len"))) (CVar (5,"lenf'"))) [],CLocalPat (CPComb ("Prelude","(,)") [CPVar (7,"f'"),CPVar (8,"rf'")]) (CApply (CApply (CSymbol ("Prelude","splitAt")) (CVar (5,"lenf'"))) (CVar (1,"f"))) [],CLocalPat (CPVar (9,"r'")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (3,"r"))) (CApply (CSymbol ("Prelude","reverse")) (CVar (8,"rf'")))) []]]),
+  CFunc ("Dequeue","cons") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"x"),CPComb ("Dequeue","S") [CPVar (1,"lenf"),CPVar (2,"f"),CPVar (3,"lenr"),CPVar (4,"r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"lenf"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (2,"f")))) (CVar (3,"lenr"))) (CVar (4,"r")))] []]),
+  CFunc ("Dequeue","deqHead") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"lenf"),CPVar (1,"f"),CPVar (2,"_"),CPVar (3,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","head")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"lenf"))) (CLit (CIntc 0)))) (CVar (3,"r"))) (CVar (1,"f"))))] []]),
+  CFunc ("Dequeue","deqInit") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CSymbol ("Dequeue","empty"))] [],CRule [CPComb ("Dequeue","S") [CPVar (3,"lenf"),CPVar (4,"f"),CPVar (5,"lenr"),CPComb ("Prelude",":") [CPVar (6,"_"),CPVar (7,"rs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CVar (3,"lenf"))) (CVar (4,"f"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (5,"lenr"))) (CLit (CIntc 1)))) (CVar (7,"rs")))] []]),
+  CFunc ("Dequeue","deqLast") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPVar (1,"f"),CPVar (2,"lenr"),CPVar (3,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","head")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"lenr"))) (CLit (CIntc 0)))) (CVar (1,"f"))) (CVar (3,"r"))))] []]),
+  CFunc ("Dequeue","deqLength") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"lenf"),CPVar (1,"_"),CPVar (2,"lenr"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"lenf"))) (CVar (2,"lenr")))] []]),
+  CFunc ("Dequeue","deqReverse") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"lenf"),CPVar (1,"f"),CPVar (2,"lenr"),CPVar (3,"r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","S")) (CVar (2,"lenr"))) (CVar (3,"r"))) (CVar (0,"lenf"))) (CVar (1,"f")))] []]),
+  CFunc ("Dequeue","deqTail") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Dequeue","empty"))] [],CRule [CPComb ("Dequeue","S") [CPVar (3,"lenf"),CPComb ("Prelude",":") [CPVar (4,"_"),CPVar (5,"fs")],CPVar (6,"lenr"),CPVar (7,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Dequeue","deqReverse")) (CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CVar (6,"lenr"))) (CVar (7,"r"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"lenf"))) (CLit (CIntc 1)))) (CVar (5,"fs"))))] []]),
+  CFunc ("Dequeue","deqToList") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPVar (1,"xs"),CPVar (2,"_"),CPVar (3,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"xs"))) (CApply (CSymbol ("Prelude","reverse")) (CVar (3,"ys"))))] []]),
+  CFunc ("Dequeue","empty") 0 Public (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","S")) (CLit (CIntc 0))) (CSymbol ("Prelude","[]"))) (CLit (CIntc 0))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Dequeue","isEmpty") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"lenf"),CPVar (1,"_"),CPVar (2,"lenr"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"lenf"))) (CVar (2,"lenr")))) (CLit (CIntc 0)))] []]),
+  CFunc ("Dequeue","listToDeq") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CApply (CSymbol ("Prelude","length")) (CVar (0,"xs")))) (CVar (0,"xs"))) (CLit (CIntc 0))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Dequeue","matchHead") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Dequeue","Queue") [CTVar (0,"a")]]])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("Dequeue","S") [CPVar (2,"_"),CPComb ("Prelude","[]") [],CPVar (3,"_"),CPComb ("Prelude",":") [CPVar (4,"x"),CPComb ("Prelude","[]") []]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (4,"x"))) (CSymbol ("Dequeue","empty"))))] [],CRule [CPComb ("Dequeue","S") [CPVar (5,"lenf"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPVar (8,"lenr"),CPVar (9,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (6,"x"))) (CApply (CSymbol ("Dequeue","deqReverse")) (CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CVar (8,"lenr"))) (CVar (9,"r"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (5,"lenf"))) (CLit (CIntc 1)))) (CVar (7,"xs"))))))] []]),
+  CFunc ("Dequeue","matchLast") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Dequeue","Queue") [CTVar (0,"a")]]])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("Dequeue","S") [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"x"),CPComb ("Prelude","[]") []],CPVar (4,"_"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"x"))) (CSymbol ("Dequeue","empty"))))] [],CRule [CPComb ("Dequeue","S") [CPVar (5,"lenf"),CPVar (6,"f"),CPVar (7,"lenr"),CPComb ("Prelude",":") [CPVar (8,"x"),CPVar (9,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (8,"x"))) (CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CVar (5,"lenf"))) (CVar (6,"f"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (7,"lenr"))) (CLit (CIntc 1)))) (CVar (9,"xs")))))] []]),
+  CFunc ("Dequeue","rotate") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"q")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Dequeue","snoc")) (CApply (CSymbol ("Dequeue","deqHead")) (CVar (0,"q")))) (CApply (CSymbol ("Dequeue","deqTail")) (CVar (0,"q"))))] []]),
+  CFunc ("Dequeue","snoc") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"x"),CPComb ("Dequeue","S") [CPVar (1,"lenf"),CPVar (2,"f"),CPVar (3,"lenr"),CPVar (4,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Dequeue","deqReverse")) (CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"lenr"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (4,"r")))) (CVar (1,"lenf"))) (CVar (2,"f"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Dequeue.cy b/src/lib/Curry/Module/.curry/Dequeue.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Dequeue.cy
@@ -0,0 +1,37 @@
+Module "Dequeue"
+(Just (Exporting (9,15) [(Export (QualIdent Nothing (Ident "Queue" 0))),(Export (QualIdent Nothing (Ident "empty" 0))),(Export (QualIdent Nothing (Ident "isEmpty" 0))),(Export (QualIdent Nothing (Ident "deqHead" 0))),(Export (QualIdent Nothing (Ident "deqLast" 0))),(Export (QualIdent Nothing (Ident "cons" 0))),(Export (QualIdent Nothing (Ident "deqTail" 0))),(Export (QualIdent Nothing (Ident "snoc" 0))),(Export (QualIdent Nothing (Ident "deqInit" 0))),(Export (QualIdent Nothing (Ident "listToDeq" 0))),(Export (QualIdent Nothing (Ident "deqToList" 0))),(Export (QualIdent Nothing (Ident "deqReverse" 0))),(Export (QualIdent Nothing (Ident "deqLength" 0))),(Export (QualIdent Nothing (Ident "rotate" 0))),(Export (QualIdent Nothing (Ident "matchHead" 0))),(Export (QualIdent Nothing (Ident "matchLast" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(DataDecl (15,1) (Ident "Queue" 0) [(Ident "a" 0)] [(ConstrDecl (15,16) [] (Ident "S" 0) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ListType (VariableType (Ident "a" 0))),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ListType (VariableType (Ident "a" 0)))])])
+,(TypeSig (18,1) [(Ident "empty" 0)] (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "_" 0))]))
+,(FunctionDecl (19,1) (Ident "empty" 0) [(Equation (19,1) (FunLhs (Ident "empty" 0) []) (SimpleRhs (19,9) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "Dequeue") (Ident "S" 0))) (Literal (Int (Ident "_" 4) 0))) (List [])) (Literal (Int (Ident "_" 5) 0))) (List [])) []))])
+,(TypeSig (22,1) [(Ident "isEmpty" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (23,1) (Ident "isEmpty" 0) [(Equation (23,1) (FunLhs (Ident "isEmpty" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 6)),(VariablePattern (Ident "_" 7)),(VariablePattern (Ident "lenr" 6)),(VariablePattern (Ident "_" 8))]))]) (SimpleRhs (23,29) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "lenf" 6))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "lenr" 6)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 10) 0))) []))])
+,(TypeSig (26,1) [(Ident "deqHead" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "a" 0))))
+,(FunctionDecl (27,1) (Ident "deqHead" 0) [(Equation (27,1) (FunLhs (Ident "deqHead" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 11)),(VariablePattern (Ident "f" 11)),(VariablePattern (Ident "_" 12)),(VariablePattern (Ident "r" 11))]))]) (SimpleRhs (27,26) (Apply (Variable (QualIdent (Just "Prelude") (Ident "head" 0))) (Paren (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "lenf" 11))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 14) 0))) (Variable (QualIdent Nothing (Ident "r" 11))) (Variable (QualIdent Nothing (Ident "f" 11)))))) []))])
+,(TypeSig (30,1) [(Ident "deqLast" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "a" 0))))
+,(FunctionDecl (31,1) (Ident "deqLast" 0) [(Equation (31,1) (FunLhs (Ident "deqLast" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "_" 16)),(VariablePattern (Ident "f" 15)),(VariablePattern (Ident "lenr" 15)),(VariablePattern (Ident "r" 15))]))]) (SimpleRhs (31,26) (Apply (Variable (QualIdent (Just "Prelude") (Ident "head" 0))) (Paren (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "lenr" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 18) 0))) (Variable (QualIdent Nothing (Ident "f" 15))) (Variable (QualIdent Nothing (Ident "r" 15)))))) []))])
+,(TypeSig (34,1) [(Ident "cons" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (35,1) (Ident "cons" 0) [(Equation (35,1) (FunLhs (Ident "cons" 0) [(VariablePattern (Ident "x" 19)),(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 19)),(VariablePattern (Ident "f" 19)),(VariablePattern (Ident "lenr" 19)),(VariablePattern (Ident "r" 19))]))]) (SimpleRhs (35,28) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "check" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "lenf" 19))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 21) 1))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 19))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "f" 19)))))) (Variable (QualIdent Nothing (Ident "lenr" 19)))) (Variable (QualIdent Nothing (Ident "r" 19)))) []))])
+,(TypeSig (38,1) [(Ident "deqTail" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (39,1) (Ident "deqTail" 0) [(Equation (39,1) (FunLhs (Ident "deqTail" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "_" 23)),(ListPattern []),(VariablePattern (Ident "_" 24)),(VariablePattern (Ident "_" 25))]))]) (SimpleRhs (39,24) (Variable (QualIdent (Just "Dequeue") (Ident "empty" 0))) [])),(Equation (40,1) (FunLhs (Ident "deqTail" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 27)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 28)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "fs" 27)))),(VariablePattern (Ident "lenr" 27)),(VariablePattern (Ident "r" 27))]))]) (SimpleRhs (40,34) (Apply (Variable (QualIdent (Just "Dequeue") (Ident "deqReverse" 0))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "check" 0))) (Variable (QualIdent Nothing (Ident "lenr" 27)))) (Variable (QualIdent Nothing (Ident "r" 27)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "lenf" 27))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 30) 1))))) (Variable (QualIdent Nothing (Ident "fs" 27)))))) []))])
+,(TypeSig (43,1) [(Ident "snoc" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (44,1) (Ident "snoc" 0) [(Equation (44,1) (FunLhs (Ident "snoc" 0) [(VariablePattern (Ident "x" 31)),(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 31)),(VariablePattern (Ident "f" 31)),(VariablePattern (Ident "lenr" 31)),(VariablePattern (Ident "r" 31))]))]) (SimpleRhs (44,28) (Apply (Variable (QualIdent (Just "Dequeue") (Ident "deqReverse" 0))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "check" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "lenr" 31))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 33) 1))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 31))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "r" 31)))))) (Variable (QualIdent Nothing (Ident "lenf" 31)))) (Variable (QualIdent Nothing (Ident "f" 31)))))) []))])
+,(TypeSig (47,1) [(Ident "deqInit" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (48,1) (Ident "deqInit" 0) [(Equation (48,1) (FunLhs (Ident "deqInit" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "_" 35)),(VariablePattern (Ident "_" 36)),(VariablePattern (Ident "_" 37)),(ListPattern [])]))]) (SimpleRhs (48,24) (Variable (QualIdent (Just "Dequeue") (Ident "empty" 0))) [])),(Equation (49,1) (FunLhs (Ident "deqInit" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 39)),(VariablePattern (Ident "f" 39)),(VariablePattern (Ident "lenr" 39)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 40)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "rs" 39))))]))]) (SimpleRhs (49,34) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "check" 0))) (Variable (QualIdent Nothing (Ident "lenf" 39)))) (Variable (QualIdent Nothing (Ident "f" 39)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "lenr" 39))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 42) 1))))) (Variable (QualIdent Nothing (Ident "rs" 39)))) []))])
+,(TypeSig (52,1) [(Ident "deqReverse" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (53,1) (Ident "deqReverse" 0) [(Equation (53,1) (FunLhs (Ident "deqReverse" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 43)),(VariablePattern (Ident "f" 43)),(VariablePattern (Ident "lenr" 43)),(VariablePattern (Ident "r" 43))]))]) (SimpleRhs (53,32) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "Dequeue") (Ident "S" 0))) (Variable (QualIdent Nothing (Ident "lenr" 43)))) (Variable (QualIdent Nothing (Ident "r" 43)))) (Variable (QualIdent Nothing (Ident "lenf" 43)))) (Variable (QualIdent Nothing (Ident "f" 43)))) []))])
+,(TypeSig (55,1) [(Ident "check" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]))))))
+,(FunctionDecl (56,1) (Ident "check" 0) [(Equation (56,1) (FunLhs (Ident "check" 0) [(VariablePattern (Ident "lenf" 45)),(VariablePattern (Ident "f" 45)),(VariablePattern (Ident "lenr" 45)),(VariablePattern (Ident "r" 45))]) (GuardedRhs [(CondExpr (57,3) (InfixApply (Variable (QualIdent Nothing (Ident "lenf" 45))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (InfixApply (InfixApply (Literal (Int (Ident "_" 53) 3)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "lenr" 45)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 54) 1)))) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "Dequeue") (Ident "S" 0))) (Variable (QualIdent Nothing (Ident "lenf" 45)))) (Variable (QualIdent Nothing (Ident "f" 45)))) (Variable (QualIdent Nothing (Ident "lenr" 45)))) (Variable (QualIdent Nothing (Ident "r" 45))))),(CondExpr (58,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "Dequeue") (Ident "S" 0))) (Variable (QualIdent Nothing (Ident "lenf'" 46)))) (Variable (QualIdent Nothing (Ident "f'" 46)))) (Variable (QualIdent Nothing (Ident "lenr'" 46)))) (Variable (QualIdent Nothing (Ident "r'" 46)))))] [(PatternDecl (60,5) (VariablePattern (Ident "len" 46)) (SimpleRhs (60,11) (InfixApply (Variable (QualIdent Nothing (Ident "lenf" 45))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "lenr" 45)))) [])),(PatternDecl (61,5) (VariablePattern (Ident "lenf'" 46)) (SimpleRhs (61,13) (InfixApply (Variable (QualIdent Nothing (Ident "len" 46))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 49) 2))) [])),(PatternDecl (62,5) (VariablePattern (Ident "lenr'" 46)) (SimpleRhs (62,13) (InfixApply (Variable (QualIdent Nothing (Ident "len" 46))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "lenf'" 46)))) [])),(PatternDecl (63,5) (TuplePattern [(VariablePattern (Ident "f'" 46)),(VariablePattern (Ident "rf'" 46))]) (SimpleRhs (63,16) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "splitAt" 0))) (Variable (QualIdent Nothing (Ident "lenf'" 46)))) (Variable (QualIdent Nothing (Ident "f" 45)))) [])),(PatternDecl (64,5) (VariablePattern (Ident "r'" 46)) (SimpleRhs (64,10) (InfixApply (Variable (QualIdent Nothing (Ident "r" 45))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Variable (QualIdent Nothing (Ident "rf'" 46))))) []))]))])
+,(TypeSig (67,1) [(Ident "listToDeq" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (68,1) (Ident "listToDeq" 0) [(Equation (68,1) (FunLhs (Ident "listToDeq" 0) [(VariablePattern (Ident "xs" 55))]) (SimpleRhs (68,16) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "check" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "xs" 55)))))) (Variable (QualIdent Nothing (Ident "xs" 55)))) (Literal (Int (Ident "_" 57) 0))) (List [])) []))])
+,(TypeSig (71,1) [(Ident "deqToList" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (72,1) (Ident "deqToList" 0) [(Equation (72,1) (FunLhs (Ident "deqToList" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "_" 59)),(VariablePattern (Ident "xs" 58)),(VariablePattern (Ident "_" 60)),(VariablePattern (Ident "ys" 58))]))]) (SimpleRhs (72,27) (InfixApply (Variable (QualIdent Nothing (Ident "xs" 58))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Variable (QualIdent Nothing (Ident "ys" 58))))) []))])
+,(TypeSig (75,1) [(Ident "deqLength" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (76,1) (Ident "deqLength" 0) [(Equation (76,1) (FunLhs (Ident "deqLength" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 62)),(VariablePattern (Ident "_" 63)),(VariablePattern (Ident "lenr" 62)),(VariablePattern (Ident "_" 64))]))]) (SimpleRhs (76,31) (InfixApply (Variable (QualIdent Nothing (Ident "lenf" 62))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "lenr" 62)))) []))])
+,(TypeSig (79,1) [(Ident "rotate" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (80,1) (Ident "rotate" 0) [(Equation (80,1) (FunLhs (Ident "rotate" 0) [(VariablePattern (Ident "q" 66))]) (SimpleRhs (80,12) (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "snoc" 0))) (Paren (Apply (Variable (QualIdent (Just "Dequeue") (Ident "deqHead" 0))) (Variable (QualIdent Nothing (Ident "q" 66)))))) (Paren (Apply (Variable (QualIdent (Just "Dequeue") (Ident "deqTail" 0))) (Variable (QualIdent Nothing (Ident "q" 66)))))) []))])
+,(TypeSig (86,1) [(Ident "matchHead" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(TupleType [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))])])])))
+,(FunctionDecl (87,1) (Ident "matchHead" 0) [(Equation (87,1) (FunLhs (Ident "matchHead" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "_" 69)),(ListPattern []),(VariablePattern (Ident "_" 70)),(ListPattern [])]))]) (SimpleRhs (87,27) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (88,1) (FunLhs (Ident "matchHead" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "_" 73)),(ListPattern []),(VariablePattern (Ident "_" 74)),(ListPattern [(VariablePattern (Ident "x" 72))])]))]) (SimpleRhs (88,28) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "x" 72))),(Variable (QualIdent (Just "Dequeue") (Ident "empty" 0)))])) [])),(Equation (89,1) (FunLhs (Ident "matchHead" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 76)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 76)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 76)))),(VariablePattern (Ident "lenr" 76)),(VariablePattern (Ident "r" 76))]))]) (SimpleRhs (90,5) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "x" 76))),(Apply (Variable (QualIdent (Just "Dequeue") (Ident "deqReverse" 0))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "check" 0))) (Variable (QualIdent Nothing (Ident "lenr" 76)))) (Variable (QualIdent Nothing (Ident "r" 76)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "lenf" 76))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 78) 1))))) (Variable (QualIdent Nothing (Ident "xs" 76))))))])) []))])
+,(TypeSig (96,1) [(Ident "matchLast" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(TupleType [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(VariableType (Ident "a" 0))])])])))
+,(FunctionDecl (97,1) (Ident "matchLast" 0) [(Equation (97,1) (FunLhs (Ident "matchLast" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "_" 80)),(ListPattern []),(VariablePattern (Ident "_" 81)),(ListPattern [])]))]) (SimpleRhs (97,27) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (98,1) (FunLhs (Ident "matchLast" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "_" 84)),(ListPattern [(VariablePattern (Ident "x" 83))]),(VariablePattern (Ident "_" 85)),(ListPattern [])]))]) (SimpleRhs (98,28) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "x" 83))),(Variable (QualIdent (Just "Dequeue") (Ident "empty" 0)))])) [])),(Equation (99,1) (FunLhs (Ident "matchLast" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Dequeue") (Ident "S" 0)) [(VariablePattern (Ident "lenf" 87)),(VariablePattern (Ident "f" 87)),(VariablePattern (Ident "lenr" 87)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 87)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 87))))]))]) (SimpleRhs (99,36) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "x" 87))),(Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "check" 0))) (Variable (QualIdent Nothing (Ident "lenf" 87)))) (Variable (QualIdent Nothing (Ident "f" 87)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "lenr" 87))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 89) 1))))) (Variable (QualIdent Nothing (Ident "xs" 87))))])) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Dequeue.efc b/src/lib/Curry/Module/.curry/Dequeue.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Dequeue.efc
@@ -0,0 +1,1 @@
+Prog "Dequeue" ["Prelude"] [Type ((Nothing,Nothing,"Dequeue","Queue")) Public [0] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) 4 Private [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]]] [Func ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),"Dequeue","empty")) 0 Public (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (Rule [] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [Lit (Intc  0),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [],Lit (Intc  0),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Dequeue","isEmpty")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Lit (Intc  0)])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TVar 0)),"Dequeue","deqHead")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"Prelude","head")) [Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TVar 0)),"Dequeue","deqLast")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"Prelude","head")) [Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)))]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))),"Dequeue","cons")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  1)],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqTail")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),"Dequeue","empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqReverse")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))]])])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))),"Dequeue","snoc")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqReverse")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Lit (Intc  1)],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqInit")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),"Dequeue","empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqReverse")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) 4 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Lit (Intc  2)])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))])] (Let [((Just (TVar 46),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 47],TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]]))),"Prelude","splitAt")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 48],TCons (Nothing,Nothing,"Prelude","[]") [TVar 48]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 48])),"Dequeue","check._#selFP3#f'")) [Var ((Just (TVar 46),8))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 49],TCons (Nothing,Nothing,"Prelude","[]") [TVar 49]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 49])),"Dequeue","check._#selFP4#rf'")) [Var ((Just (TVar 46),8))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),11),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 51) (TVar 52)) (FuncType (TVar 51) (TVar 52))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),10))]])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  3),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))],Lit (Intc  1)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),11))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),"Prelude","failed")) [])])]))))))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45])),"Dequeue","check._#selFP3#f'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]) (FuncType (TVar 48) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]),2),(Just (TVar 48),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45])),"Dequeue","check._#selFP4#rf'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 47) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]))),"Prelude","(,)")) [(Just (TVar 47),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","listToDeq")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Lit (Intc  0),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Dequeue","deqToList")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Dequeue","deqLength")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","rotate")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))),"Dequeue","snoc")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TVar 0)),"Dequeue","deqHead")) [Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqTail")) [Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Dequeue","matchHead")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]]])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]))),"Prelude","(,)")) [Var ((Just (TVar 0),6)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 15]),"Dequeue","empty")) []]])])]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]))),"Prelude","(,)")) [Var ((Just (TVar 0),8)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqReverse")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9))]]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Dequeue","matchLast")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]]])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]))),"Prelude","(,)")) [Var ((Just (TVar 0),6)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 15]),"Dequeue","empty")) []]])])]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]))),"Prelude","(,)")) [Var ((Just (TVar 0),8)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9))]]])])]))] []
diff --git a/src/lib/Curry/Module/.curry/Dequeue.fcy b/src/lib/Curry/Module/.curry/Dequeue.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Dequeue.fcy
@@ -0,0 +1,1 @@
+Prog "Dequeue" ["Prelude"] [Type ("Dequeue","Queue") Public [0] [Cons ("Dequeue","S") 4 Private [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TVar 0]]]] [Func ("Dequeue","empty") 0 Public (TCons ("Dequeue","Queue") [TVar 0]) (Rule [] (Comb ConsCall ("Dequeue","S") [Lit (Intc  0),Comb ConsCall ("Prelude","[]") [],Lit (Intc  0),Comb ConsCall ("Prelude","[]") []])),Func ("Dequeue","isEmpty") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","+") [Var 2,Var 4],Lit (Intc  0)])])),Func ("Dequeue","deqHead") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Comb FuncCall ("Prelude","head") [Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 5),Branch (Pattern ("Prelude","False") []) (Var 3)]])])),Func ("Dequeue","deqLast") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Comb FuncCall ("Prelude","head") [Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 3),Branch (Pattern ("Prelude","False") []) (Var 5)]])])),Func ("Dequeue","cons") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Dequeue","S") [3,4,5,6]) (Comb FuncCall ("Dequeue","check") [Comb FuncCall ("Prelude","+") [Var 3,Lit (Intc  1)],Comb ConsCall ("Prelude",":") [Var 1,Var 4],Var 5,Var 6])])),Func ("Dequeue","deqTail") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Dequeue","empty") []),Branch (Pattern ("Prelude",":") [6,7]) (Comb FuncCall ("Dequeue","deqReverse") [Comb FuncCall ("Dequeue","check") [Var 4,Var 5,Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  1)],Var 7]])])])),Func ("Dequeue","snoc") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Dequeue","S") [3,4,5,6]) (Comb FuncCall ("Dequeue","deqReverse") [Comb FuncCall ("Dequeue","check") [Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)],Comb ConsCall ("Prelude",":") [Var 1,Var 6],Var 3,Var 4]])])),Func ("Dequeue","deqInit") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Dequeue","empty") []),Branch (Pattern ("Prelude",":") [6,7]) (Comb FuncCall ("Dequeue","check") [Var 2,Var 3,Comb FuncCall ("Prelude","-") [Var 4,Lit (Intc  1)],Var 7])])])),Func ("Dequeue","deqReverse") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Comb ConsCall ("Dequeue","S") [Var 4,Var 5,Var 2,Var 3])])),Func ("Dequeue","check") 4 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("Prelude","+") [Var 1,Var 3])] (Let [(6,Comb FuncCall ("Prelude","div") [Var 5,Lit (Intc  2)])] (Let [(7,Comb FuncCall ("Prelude","-") [Var 5,Var 6])] (Let [(8,Comb FuncCall ("Prelude","splitAt") [Var 6,Var 2])] (Let [(9,Comb FuncCall ("Dequeue","check._#selFP3#f'") [Var 8])] (Let [(10,Comb FuncCall ("Dequeue","check._#selFP4#rf'") [Var 8])] (Let [(11,Comb FuncCall ("Prelude","++") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 10]])] (Case  Rigid (Comb FuncCall ("Prelude","<=") [Var 1,Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","*") [Lit (Intc  3),Var 3],Lit (Intc  1)]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Dequeue","S") [Var 1,Var 2,Var 3,Var 4]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Dequeue","S") [Var 6,Var 9,Var 7,Var 11]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])]))))))))),Func ("Dequeue","check._#selFP3#f'") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 45],TCons ("Prelude","[]") [TVar 45]]) (TCons ("Prelude","[]") [TVar 45])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Dequeue","check._#selFP4#rf'") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 45],TCons ("Prelude","[]") [TVar 45]]) (TCons ("Prelude","[]") [TVar 45])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Dequeue","listToDeq") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [1] (Comb FuncCall ("Dequeue","check") [Comb FuncCall ("Prelude","length") [Var 1],Var 1,Lit (Intc  0),Comb ConsCall ("Prelude","[]") []])),Func ("Dequeue","deqToList") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Comb FuncCall ("Prelude","++") [Var 3,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 5]])])),Func ("Dequeue","deqLength") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Comb FuncCall ("Prelude","+") [Var 2,Var 4])])),Func ("Dequeue","rotate") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [1] (Comb FuncCall ("Dequeue","snoc") [Comb FuncCall ("Dequeue","deqHead") [Var 1],Comb FuncCall ("Dequeue","deqTail") [Var 1]])),Func ("Dequeue","matchHead") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TCons ("Dequeue","Queue") [TVar 0]]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Case  Flex (Var 5) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 7) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","(,)") [Var 6,Comb FuncCall ("Dequeue","empty") []]])])]),Branch (Pattern ("Prelude",":") [8,9]) (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","(,)") [Var 8,Comb FuncCall ("Dequeue","deqReverse") [Comb FuncCall ("Dequeue","check") [Var 4,Var 5,Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  1)],Var 9]]]])])])),Func ("Dequeue","matchLast") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TCons ("Dequeue","Queue") [TVar 0]]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Dequeue","S") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("Prelude","[]") []) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 7) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","(,)") [Var 6,Comb FuncCall ("Dequeue","empty") []]])])]),Branch (Pattern ("Prelude",":") [8,9]) (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","(,)") [Var 8,Comb FuncCall ("Dequeue","check") [Var 2,Var 3,Comb FuncCall ("Prelude","-") [Var 4,Lit (Intc  1)],Var 9]]])])]))] []
diff --git a/src/lib/Curry/Module/.curry/Dequeue.fint b/src/lib/Curry/Module/.curry/Dequeue.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Dequeue.fint
@@ -0,0 +1,1 @@
+Prog "Dequeue" ["Prelude"] [Type ("Dequeue","Queue") Public [0] []] [Func ("Dequeue","empty") 0 Public (TCons ("Dequeue","Queue") [TVar 0]) (Rule [] (Var 0)),Func ("Dequeue","isEmpty") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Dequeue","deqHead") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TVar 0)) (Rule [] (Var 0)),Func ("Dequeue","deqLast") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TVar 0)) (Rule [] (Var 0)),Func ("Dequeue","cons") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0]))) (Rule [] (Var 0)),Func ("Dequeue","deqTail") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [] (Var 0)),Func ("Dequeue","snoc") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0]))) (Rule [] (Var 0)),Func ("Dequeue","deqInit") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [] (Var 0)),Func ("Dequeue","deqReverse") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [] (Var 0)),Func ("Dequeue","listToDeq") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [] (Var 0)),Func ("Dequeue","deqToList") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Dequeue","deqLength") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Dequeue","rotate") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Dequeue","Queue") [TVar 0])) (Rule [] (Var 0)),Func ("Dequeue","matchHead") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TCons ("Dequeue","Queue") [TVar 0]]])) (Rule [] (Var 0)),Func ("Dequeue","matchLast") 1 Public (FuncType (TCons ("Dequeue","Queue") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TCons ("Dequeue","Queue") [TVar 0]]])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Dequeue.uacy b/src/lib/Curry/Module/.curry/Dequeue.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Dequeue.uacy
@@ -0,0 +1,20 @@
+CurryProg "Dequeue"
+ ["Prelude"]
+ [CType ("Dequeue","Queue") Public [(0,"a")] [CCons ("Dequeue","S") 4 Private [CTCons ("Prelude","Int") [],CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","Int") [],CTCons ("Prelude","[]") [CTVar (0,"a")]]]]
+ [CFunc ("Dequeue","check") 4 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"lenf"),CPVar (1,"f"),CPVar (2,"lenr"),CPVar (3,"r")] [(CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"lenf"))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 3))) (CVar (2,"lenr")))) (CLit (CIntc 1))),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","S")) (CVar (0,"lenf"))) (CVar (1,"f"))) (CVar (2,"lenr"))) (CVar (3,"r"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","S")) (CVar (5,"lenf'"))) (CVar (7,"f'"))) (CVar (6,"lenr'"))) (CVar (9,"r'")))] [CLocalPat (CPVar (4,"len")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"lenf"))) (CVar (2,"lenr"))) [],CLocalPat (CPVar (5,"lenf'")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (4,"len"))) (CLit (CIntc 2))) [],CLocalPat (CPVar (6,"lenr'")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (4,"len"))) (CVar (5,"lenf'"))) [],CLocalPat (CPComb ("Prelude","(,)") [CPVar (7,"f'"),CPVar (8,"rf'")]) (CApply (CApply (CSymbol ("Prelude","splitAt")) (CVar (5,"lenf'"))) (CVar (1,"f"))) [],CLocalPat (CPVar (9,"r'")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (3,"r"))) (CApply (CSymbol ("Prelude","reverse")) (CVar (8,"rf'")))) []]]),
+  CFunc ("Dequeue","cons") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"x"),CPComb ("Dequeue","S") [CPVar (1,"lenf"),CPVar (2,"f"),CPVar (3,"lenr"),CPVar (4,"r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"lenf"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (2,"f")))) (CVar (3,"lenr"))) (CVar (4,"r")))] []]),
+  CFunc ("Dequeue","deqHead") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"lenf"),CPVar (1,"f"),CPVar (2,"_"),CPVar (3,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","head")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"lenf"))) (CLit (CIntc 0)))) (CVar (3,"r"))) (CVar (1,"f"))))] []]),
+  CFunc ("Dequeue","deqInit") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CSymbol ("Dequeue","empty"))] [],CRule [CPComb ("Dequeue","S") [CPVar (3,"lenf"),CPVar (4,"f"),CPVar (5,"lenr"),CPComb ("Prelude",":") [CPVar (6,"_"),CPVar (7,"rs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CVar (3,"lenf"))) (CVar (4,"f"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (5,"lenr"))) (CLit (CIntc 1)))) (CVar (7,"rs")))] []]),
+  CFunc ("Dequeue","deqLast") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPVar (1,"f"),CPVar (2,"lenr"),CPVar (3,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","head")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"lenr"))) (CLit (CIntc 0)))) (CVar (1,"f"))) (CVar (3,"r"))))] []]),
+  CFunc ("Dequeue","deqLength") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"_")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"lenf"),CPVar (1,"_"),CPVar (2,"lenr"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"lenf"))) (CVar (2,"lenr")))] []]),
+  CFunc ("Dequeue","deqReverse") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"lenf"),CPVar (1,"f"),CPVar (2,"lenr"),CPVar (3,"r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","S")) (CVar (2,"lenr"))) (CVar (3,"r"))) (CVar (0,"lenf"))) (CVar (1,"f")))] []]),
+  CFunc ("Dequeue","deqTail") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Dequeue","empty"))] [],CRule [CPComb ("Dequeue","S") [CPVar (3,"lenf"),CPComb ("Prelude",":") [CPVar (4,"_"),CPVar (5,"fs")],CPVar (6,"lenr"),CPVar (7,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Dequeue","deqReverse")) (CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CVar (6,"lenr"))) (CVar (7,"r"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"lenf"))) (CLit (CIntc 1)))) (CVar (5,"fs"))))] []]),
+  CFunc ("Dequeue","deqToList") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPVar (1,"xs"),CPVar (2,"_"),CPVar (3,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"xs"))) (CApply (CSymbol ("Prelude","reverse")) (CVar (3,"ys"))))] []]),
+  CFunc ("Dequeue","empty") 0 Public (CTCons ("Dequeue","Queue") [CTVar (0,"_")]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","S")) (CLit (CIntc 0))) (CSymbol ("Prelude","[]"))) (CLit (CIntc 0))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Dequeue","isEmpty") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"lenf"),CPVar (1,"_"),CPVar (2,"lenr"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"lenf"))) (CVar (2,"lenr")))) (CLit (CIntc 0)))] []]),
+  CFunc ("Dequeue","listToDeq") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CApply (CSymbol ("Prelude","length")) (CVar (0,"xs")))) (CVar (0,"xs"))) (CLit (CIntc 0))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Dequeue","matchHead") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Dequeue","Queue") [CTVar (0,"a")]]])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("Dequeue","S") [CPVar (2,"_"),CPComb ("Prelude","[]") [],CPVar (3,"_"),CPComb ("Prelude",":") [CPVar (4,"x"),CPComb ("Prelude","[]") []]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (4,"x"))) (CSymbol ("Dequeue","empty"))))] [],CRule [CPComb ("Dequeue","S") [CPVar (5,"lenf"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPVar (8,"lenr"),CPVar (9,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (6,"x"))) (CApply (CSymbol ("Dequeue","deqReverse")) (CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CVar (8,"lenr"))) (CVar (9,"r"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (5,"lenf"))) (CLit (CIntc 1)))) (CVar (7,"xs"))))))] []]),
+  CFunc ("Dequeue","matchLast") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Dequeue","Queue") [CTVar (0,"a")]]])) (CRules CFlex [CRule [CPComb ("Dequeue","S") [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("Dequeue","S") [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"x"),CPComb ("Prelude","[]") []],CPVar (4,"_"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"x"))) (CSymbol ("Dequeue","empty"))))] [],CRule [CPComb ("Dequeue","S") [CPVar (5,"lenf"),CPVar (6,"f"),CPVar (7,"lenr"),CPComb ("Prelude",":") [CPVar (8,"x"),CPVar (9,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (8,"x"))) (CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CVar (5,"lenf"))) (CVar (6,"f"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (7,"lenr"))) (CLit (CIntc 1)))) (CVar (9,"xs")))))] []]),
+  CFunc ("Dequeue","rotate") 1 Public (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"q")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Dequeue","snoc")) (CApply (CSymbol ("Dequeue","deqHead")) (CVar (0,"q")))) (CApply (CSymbol ("Dequeue","deqTail")) (CVar (0,"q"))))] []]),
+  CFunc ("Dequeue","snoc") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Dequeue","Queue") [CTVar (0,"a")]) (CTCons ("Dequeue","Queue") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"x"),CPComb ("Dequeue","S") [CPVar (1,"lenf"),CPVar (2,"f"),CPVar (3,"lenr"),CPVar (4,"r")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Dequeue","deqReverse")) (CApply (CApply (CApply (CApply (CSymbol ("Dequeue","check")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"lenr"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (4,"r")))) (CVar (1,"lenf"))) (CVar (2,"f"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Directory.acy b/src/lib/Curry/Module/.curry/Directory.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Directory.acy
@@ -0,0 +1,27 @@
+CurryProg "Directory"
+ ["Prelude","Time"]
+ []
+ [CFunc ("Directory","createDirectory") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_createDirectory"))) (CVar (0,"dir")))] []]),
+  CFunc ("Directory","doesDirectoryExist") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_doesDirectoryExist"))) (CVar (0,"dir")))] []]),
+  CFunc ("Directory","doesFileExist") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"fname")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_doesFileExist"))) (CVar (0,"fname")))] []]),
+  CFunc ("Directory","fileSize") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"fname")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_fileSize"))) (CVar (0,"fname")))] []]),
+  CFunc ("Directory","getCurrentDirectory") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CExternal "getCurrentDirectory"),
+  CFunc ("Directory","getDirectoryContents") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_getDirectoryContents"))) (CVar (0,"dir")))] []]),
+  CFunc ("Directory","getModificationTime") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Time","ClockTime") []])) (CRules CFlex [CRule [CPVar (0,"fname")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_getModificationTime"))) (CVar (0,"fname")))] []]),
+  CFunc ("Directory","prim_createDirectory") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_createDirectory"),
+  CFunc ("Directory","prim_doesDirectoryExist") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_doesDirectoryExist"),
+  CFunc ("Directory","prim_doesFileExist") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_doesFileExist"),
+  CFunc ("Directory","prim_fileSize") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []])) (CExternal "prim_fileSize"),
+  CFunc ("Directory","prim_getDirectoryContents") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CExternal "prim_getDirectoryContents"),
+  CFunc ("Directory","prim_getModificationTime") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Time","ClockTime") []])) (CExternal "prim_getModificationTime"),
+  CFunc ("Directory","prim_removeDirectory") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_removeDirectory"),
+  CFunc ("Directory","prim_removeFile") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_removeFile"),
+  CFunc ("Directory","prim_renameDirectory") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_renameDirectory"),
+  CFunc ("Directory","prim_renameFile") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_renameFile"),
+  CFunc ("Directory","prim_setCurrentDirectory") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_setCurrentDirectory"),
+  CFunc ("Directory","removeDirectory") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_removeDirectory"))) (CVar (0,"dir")))] []]),
+  CFunc ("Directory","removeFile") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_removeFile"))) (CVar (0,"file")))] []]),
+  CFunc ("Directory","renameDirectory") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"dir1"),CPVar (1,"dir2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_renameDirectory"))) (CVar (0,"dir1")))) (CVar (1,"dir2")))] []]),
+  CFunc ("Directory","renameFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"file1"),CPVar (1,"file2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_renameFile"))) (CVar (0,"file1")))) (CVar (1,"file2")))] []]),
+  CFunc ("Directory","setCurrentDirectory") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_setCurrentDirectory"))) (CVar (0,"dir")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Directory.cy b/src/lib/Curry/Module/.curry/Directory.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Directory.cy
@@ -0,0 +1,51 @@
+Module "Directory"
+(Just (Exporting (7,17) [(Export (QualIdent Nothing (Ident "doesFileExist" 0))),(Export (QualIdent Nothing (Ident "doesDirectoryExist" 0))),(Export (QualIdent Nothing (Ident "fileSize" 0))),(Export (QualIdent Nothing (Ident "getModificationTime" 0))),(Export (QualIdent Nothing (Ident "getCurrentDirectory" 0))),(Export (QualIdent Nothing (Ident "setCurrentDirectory" 0))),(Export (QualIdent Nothing (Ident "getDirectoryContents" 0))),(Export (QualIdent Nothing (Ident "createDirectory" 0))),(Export (QualIdent Nothing (Ident "removeFile" 0))),(Export (QualIdent Nothing (Ident "removeDirectory" 0))),(Export (QualIdent Nothing (Ident "renameFile" 0))),(Export (QualIdent Nothing (Ident "renameDirectory" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (13,1) "Time" False Nothing (Just (Importing (13,12) [(Import (Ident "ClockTime" 0))])))
+,(TypeSig (17,1) [(Ident "doesFileExist" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FunctionDecl (18,1) (Ident "doesFileExist" 0) [(Equation (18,1) (FunLhs (Ident "doesFileExist" 0) [(VariablePattern (Ident "fname" 2))]) (SimpleRhs (18,23) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_doesFileExist" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "fname" 2)))) []))])
+,(TypeSig (20,1) [(Ident "prim_doesFileExist" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FlatExternalDecl (21,1) [(Ident "prim_doesFileExist" 0)])
+,(TypeSig (24,1) [(Ident "doesDirectoryExist" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FunctionDecl (25,1) (Ident "doesDirectoryExist" 0) [(Equation (25,1) (FunLhs (Ident "doesDirectoryExist" 0) [(VariablePattern (Ident "dir" 4))]) (SimpleRhs (25,26) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_doesDirectoryExist" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "dir" 4)))) []))])
+,(TypeSig (27,1) [(Ident "prim_doesDirectoryExist" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FlatExternalDecl (28,1) [(Ident "prim_doesDirectoryExist" 0)])
+,(TypeSig (31,1) [(Ident "fileSize" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])))
+,(FunctionDecl (32,1) (Ident "fileSize" 0) [(Equation (32,1) (FunLhs (Ident "fileSize" 0) [(VariablePattern (Ident "fname" 6))]) (SimpleRhs (32,18) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_fileSize" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "fname" 6)))) []))])
+,(TypeSig (34,1) [(Ident "prim_fileSize" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])))
+,(FlatExternalDecl (35,1) [(Ident "prim_fileSize" 0)])
+,(TypeSig (38,1) [(Ident "getModificationTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) [])])))
+,(FunctionDecl (39,1) (Ident "getModificationTime" 0) [(Equation (39,1) (FunLhs (Ident "getModificationTime" 0) [(VariablePattern (Ident "fname" 8))]) (SimpleRhs (39,29) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_getModificationTime" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "fname" 8)))) []))])
+,(TypeSig (41,1) [(Ident "prim_getModificationTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) [])])))
+,(FlatExternalDecl (42,1) [(Ident "prim_getModificationTime" 0)])
+,(TypeSig (45,1) [(Ident "getCurrentDirectory" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))
+,(FlatExternalDecl (46,1) [(Ident "getCurrentDirectory" 0)])
+,(TypeSig (49,1) [(Ident "setCurrentDirectory" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (50,1) (Ident "setCurrentDirectory" 0) [(Equation (50,1) (FunLhs (Ident "setCurrentDirectory" 0) [(VariablePattern (Ident "dir" 10))]) (SimpleRhs (50,27) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_setCurrentDirectory" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "dir" 10)))) []))])
+,(TypeSig (52,1) [(Ident "prim_setCurrentDirectory" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (53,1) [(Ident "prim_setCurrentDirectory" 0)])
+,(TypeSig (56,1) [(Ident "getDirectoryContents" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))])))
+,(FunctionDecl (57,1) (Ident "getDirectoryContents" 0) [(Equation (57,1) (FunLhs (Ident "getDirectoryContents" 0) [(VariablePattern (Ident "dir" 12))]) (SimpleRhs (57,28) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_getDirectoryContents" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "dir" 12)))) []))])
+,(TypeSig (59,1) [(Ident "prim_getDirectoryContents" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))])))
+,(FlatExternalDecl (60,1) [(Ident "prim_getDirectoryContents" 0)])
+,(TypeSig (63,1) [(Ident "createDirectory" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (64,1) (Ident "createDirectory" 0) [(Equation (64,1) (FunLhs (Ident "createDirectory" 0) [(VariablePattern (Ident "dir" 14))]) (SimpleRhs (64,23) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_createDirectory" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "dir" 14)))) []))])
+,(TypeSig (66,1) [(Ident "prim_createDirectory" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (67,1) [(Ident "prim_createDirectory" 0)])
+,(TypeSig (70,1) [(Ident "removeFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (71,1) (Ident "removeFile" 0) [(Equation (71,1) (FunLhs (Ident "removeFile" 0) [(VariablePattern (Ident "file" 16))]) (SimpleRhs (71,19) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_removeFile" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "file" 16)))) []))])
+,(TypeSig (73,1) [(Ident "prim_removeFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (74,1) [(Ident "prim_removeFile" 0)])
+,(TypeSig (77,1) [(Ident "removeDirectory" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (78,1) (Ident "removeDirectory" 0) [(Equation (78,1) (FunLhs (Ident "removeDirectory" 0) [(VariablePattern (Ident "dir" 18))]) (SimpleRhs (78,23) (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_removeDirectory" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "dir" 18)))) []))])
+,(TypeSig (80,1) [(Ident "prim_removeDirectory" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (81,1) [(Ident "prim_removeDirectory" 0)])
+,(TypeSig (84,1) [(Ident "renameFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (85,1) (Ident "renameFile" 0) [(Equation (85,1) (FunLhs (Ident "renameFile" 0) [(VariablePattern (Ident "file1" 20)),(VariablePattern (Ident "file2" 20))]) (SimpleRhs (85,26) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_renameFile" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "file1" 20))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "file2" 20)))) []))])
+,(TypeSig (87,1) [(Ident "prim_renameFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (88,1) [(Ident "prim_renameFile" 0)])
+,(TypeSig (91,1) [(Ident "renameDirectory" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (92,1) (Ident "renameDirectory" 0) [(Equation (92,1) (FunLhs (Ident "renameDirectory" 0) [(VariablePattern (Ident "dir1" 22)),(VariablePattern (Ident "dir2" 22))]) (SimpleRhs (92,29) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Directory") (Ident "prim_renameDirectory" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "dir1" 22))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "dir2" 22)))) []))])
+,(TypeSig (94,1) [(Ident "prim_renameDirectory" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (95,1) [(Ident "prim_renameDirectory" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/Directory.efc b/src/lib/Curry/Module/.curry/Directory.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Directory.efc
@@ -0,0 +1,1 @@
+Prog "Directory" ["Prelude","Time"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Directory","doesFileExist")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Directory","prim_doesFileExist")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Directory","prim_doesFileExist")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (External "Directory.prim_doesFileExist"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Directory","doesDirectoryExist")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Directory","prim_doesDirectoryExist")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Directory","prim_doesDirectoryExist")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (External "Directory.prim_doesDirectoryExist"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Directory","fileSize")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Directory","prim_fileSize")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Directory","prim_fileSize")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (External "Directory.prim_fileSize"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []])),"Directory","getModificationTime")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Time","ClockTime")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []])),"Directory","prim_getModificationTime")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []])),"Directory","prim_getModificationTime")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Time","ClockTime")) []])) (External "Directory.prim_getModificationTime"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Directory","getCurrentDirectory")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (External "Directory.getCurrentDirectory"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","setCurrentDirectory")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","prim_setCurrentDirectory")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","prim_setCurrentDirectory")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "Directory.prim_setCurrentDirectory"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Directory","getDirectoryContents")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Directory","prim_getDirectoryContents")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Directory","prim_getDirectoryContents")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (External "Directory.prim_getDirectoryContents"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","createDirectory")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","prim_createDirectory")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","prim_createDirectory")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "Directory.prim_createDirectory"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","removeFile")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","prim_removeFile")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","prim_removeFile")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "Directory.prim_removeFile"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","removeDirectory")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","prim_removeDirectory")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Directory","prim_removeDirectory")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "Directory.prim_removeDirectory"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Directory","renameFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Directory","prim_renameFile")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Directory","prim_renameFile")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "Directory.prim_renameFile"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Directory","renameDirectory")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Directory","prim_renameDirectory")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Directory","prim_renameDirectory")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "Directory.prim_renameDirectory")] []
diff --git a/src/lib/Curry/Module/.curry/Directory.fcy b/src/lib/Curry/Module/.curry/Directory.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Directory.fcy
@@ -0,0 +1,1 @@
+Prog "Directory" ["Prelude","Time"] [] [Func ("Directory","doesFileExist") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_doesFileExist") [],Var 1])),Func ("Directory","prim_doesFileExist") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (External "Directory.prim_doesFileExist"),Func ("Directory","doesDirectoryExist") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_doesDirectoryExist") [],Var 1])),Func ("Directory","prim_doesDirectoryExist") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (External "Directory.prim_doesDirectoryExist"),Func ("Directory","fileSize") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_fileSize") [],Var 1])),Func ("Directory","prim_fileSize") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])) (External "Directory.prim_fileSize"),Func ("Directory","getModificationTime") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Time","ClockTime") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_getModificationTime") [],Var 1])),Func ("Directory","prim_getModificationTime") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Time","ClockTime") []])) (External "Directory.prim_getModificationTime"),Func ("Directory","getCurrentDirectory") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (External "Directory.getCurrentDirectory"),Func ("Directory","setCurrentDirectory") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_setCurrentDirectory") [],Var 1])),Func ("Directory","prim_setCurrentDirectory") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "Directory.prim_setCurrentDirectory"),Func ("Directory","getDirectoryContents") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_getDirectoryContents") [],Var 1])),Func ("Directory","prim_getDirectoryContents") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (External "Directory.prim_getDirectoryContents"),Func ("Directory","createDirectory") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_createDirectory") [],Var 1])),Func ("Directory","prim_createDirectory") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "Directory.prim_createDirectory"),Func ("Directory","removeFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_removeFile") [],Var 1])),Func ("Directory","prim_removeFile") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "Directory.prim_removeFile"),Func ("Directory","removeDirectory") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Directory","prim_removeDirectory") [],Var 1])),Func ("Directory","prim_removeDirectory") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "Directory.prim_removeDirectory"),Func ("Directory","renameFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("Directory","prim_renameFile") [],Var 1],Var 2])),Func ("Directory","prim_renameFile") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "Directory.prim_renameFile"),Func ("Directory","renameDirectory") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("Directory","prim_renameDirectory") [],Var 1],Var 2])),Func ("Directory","prim_renameDirectory") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "Directory.prim_renameDirectory")] []
diff --git a/src/lib/Curry/Module/.curry/Directory.fint b/src/lib/Curry/Module/.curry/Directory.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Directory.fint
@@ -0,0 +1,1 @@
+Prog "Directory" ["Prelude","Time"] [] [Func ("Directory","doesFileExist") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [] (Var 0)),Func ("Directory","doesDirectoryExist") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [] (Var 0)),Func ("Directory","fileSize") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("Directory","getModificationTime") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Time","ClockTime") []])) (Rule [] (Var 0)),Func ("Directory","getCurrentDirectory") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (External "Directory.getCurrentDirectory"),Func ("Directory","setCurrentDirectory") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Directory","getDirectoryContents") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [] (Var 0)),Func ("Directory","createDirectory") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Directory","removeFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Directory","removeDirectory") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Directory","renameFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("Directory","renameDirectory") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Directory.uacy b/src/lib/Curry/Module/.curry/Directory.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Directory.uacy
@@ -0,0 +1,27 @@
+CurryProg "Directory"
+ ["Prelude","Time"]
+ []
+ [CFunc ("Directory","createDirectory") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_createDirectory"))) (CVar (0,"dir")))] []]),
+  CFunc ("Directory","doesDirectoryExist") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_doesDirectoryExist"))) (CVar (0,"dir")))] []]),
+  CFunc ("Directory","doesFileExist") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"fname")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_doesFileExist"))) (CVar (0,"fname")))] []]),
+  CFunc ("Directory","fileSize") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"fname")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_fileSize"))) (CVar (0,"fname")))] []]),
+  CFunc ("Directory","getCurrentDirectory") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []]) (CExternal "getCurrentDirectory"),
+  CFunc ("Directory","getDirectoryContents") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_getDirectoryContents"))) (CVar (0,"dir")))] []]),
+  CFunc ("Directory","getModificationTime") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Time","ClockTime") []])) (CRules CFlex [CRule [CPVar (0,"fname")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_getModificationTime"))) (CVar (0,"fname")))] []]),
+  CFunc ("Directory","prim_createDirectory") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_createDirectory"),
+  CFunc ("Directory","prim_doesDirectoryExist") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_doesDirectoryExist"),
+  CFunc ("Directory","prim_doesFileExist") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_doesFileExist"),
+  CFunc ("Directory","prim_fileSize") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []])) (CExternal "prim_fileSize"),
+  CFunc ("Directory","prim_getDirectoryContents") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]])) (CExternal "prim_getDirectoryContents"),
+  CFunc ("Directory","prim_getModificationTime") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Time","ClockTime") []])) (CExternal "prim_getModificationTime"),
+  CFunc ("Directory","prim_removeDirectory") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_removeDirectory"),
+  CFunc ("Directory","prim_removeFile") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_removeFile"),
+  CFunc ("Directory","prim_renameDirectory") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_renameDirectory"),
+  CFunc ("Directory","prim_renameFile") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_renameFile"),
+  CFunc ("Directory","prim_setCurrentDirectory") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_setCurrentDirectory"),
+  CFunc ("Directory","removeDirectory") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_removeDirectory"))) (CVar (0,"dir")))] []]),
+  CFunc ("Directory","removeFile") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_removeFile"))) (CVar (0,"file")))] []]),
+  CFunc ("Directory","renameDirectory") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"dir1"),CPVar (1,"dir2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_renameDirectory"))) (CVar (0,"dir1")))) (CVar (1,"dir2")))] []]),
+  CFunc ("Directory","renameFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"file1"),CPVar (1,"file2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_renameFile"))) (CVar (0,"file1")))) (CVar (1,"file2")))] []]),
+  CFunc ("Directory","setCurrentDirectory") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"dir")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Directory","prim_setCurrentDirectory"))) (CVar (0,"dir")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/EasyCheck.acy b/src/lib/Curry/Module/.curry/EasyCheck.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/EasyCheck.acy
@@ -0,0 +1,79 @@
+CurryProg "EasyCheck"
+ ["Prelude","List","Sort","Meta","Integer","Read","RandomExternal"]
+ [CType ("EasyCheck","Test") Private [] [CCons ("EasyCheck","Test") 3 Private [CTCons ("EasyCheck","Result") [],CTCons ("Prelude","[]") [CTCons ("Prelude","String") []],CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]],
+  CType ("EasyCheck","Result") Public [] [CCons ("EasyCheck","Undef") 0 Public [],CCons ("EasyCheck","Ok") 0 Public [],CCons ("EasyCheck","Falsified") 1 Public [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]],CCons ("EasyCheck","Ambigious") 2 Public [CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []],CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]],
+  CTypeSyn ("EasyCheck","Prop") Public [] (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]),
+  CType ("EasyCheck","Config") Private [] [CCons ("EasyCheck","Config") 3 Private [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","String") []))]]]
+ [CFunc ("EasyCheck","#") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"n"))) (CVar (2,"x0"))))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","length"))) (CSymbol ("List","nub")))))] []]),
+  CFunc ("EasyCheck","-=-") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","is")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"x"))) (CVar (1,"y")))) (CApply (CSymbol ("Prelude","uncurry")) (CSymbol ("Prelude","=="))))] []]),
+  CFunc ("EasyCheck","<~") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("EasyCheck","isSubsetOf")) (CVar (2,"x0"))) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (1,"y"))))))] []]),
+  CFunc ("EasyCheck","<~>") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CApply (CSymbol ("EasyCheck","isSameSet")) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (1,"y")))))] []]),
+  CFunc ("EasyCheck","==>") 2 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPComb ("Prelude","True") [],CPVar (0,"p")] [(CSymbol ("Prelude","success"),CVar (0,"p"))] [],CRule [CPComb ("Prelude","False") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("EasyCheck","notest"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("EasyCheck","always") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("EasyCheck","isAlways")) (CVar (0,"x0"))) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","args") 1 Private (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPComb ("EasyCheck","Test") [CPVar (0,"_"),CPVar (1,"a"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"a"))] []]),
+  CFunc ("EasyCheck","check") 2 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"config"),CPVar (1,"p")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"isOrBased")) (CSymbol ("EasyCheck","evalModeIsOrBased")),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (2,"isOrBased"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("EasyCheck","tests")) (CVar (0,"config"))) (CVar (1,"p"))) (CLit (CIntc 0))) (CLit (CIntc 0))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStrLn"))) (CApply (CSymbol ("Prelude","unlines")) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'P'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\''))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\''))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\''))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '='))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'B'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\''))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '~'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '/'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CSymbol ("Prelude","[]"))))))))))))))])] []]),
+  CFunc ("EasyCheck","classify") 2 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])))) (CRules CFlex [CRule [CPComb ("Prelude","True") [],CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","label")) (CVar (0,"name")))] [],CRule [CPComb ("Prelude","False") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","id"))] []]),
+  CFunc ("EasyCheck","collect") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","label"))) (CSymbol ("Prelude","show")))] []]),
+  CFunc ("EasyCheck","collectAs") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])))) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","label"))) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))) (CVar (1,"x0"))))) (CSymbol ("Prelude","show"))))] []]),
+  CFunc ("EasyCheck","deterministic") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","is")) (CVar (0,"x"))) (CApply (CSymbol ("Prelude","const")) (CSymbol ("Prelude","True"))))] []]),
+  CFunc ("EasyCheck","diagonal") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","concat"))) (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("EasyCheck","diags"))) (CSymbol ("Prelude","[]"))))] [CLocalFunc (CFunc ("EasyCheck","diags") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("EasyCheck","merge")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []])),CLocalFunc (CFunc ("EasyCheck","merge") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPAs (3,"xs") (CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")]),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (4,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x0"))) (CSymbol ("Prelude","[]"))))) (CVar (3,"xs")))] [],CRule [CPComb ("Prelude",":") [CPVar (5,"x"),CPVar (6,"xs")],CPComb ("Prelude",":") [CPVar (7,"y"),CPVar (8,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x"))) (CVar (7,"y")))) (CApply (CApply (CSymbol ("EasyCheck","merge")) (CVar (6,"xs"))) (CVar (8,"ys"))))] []]))]]),
+  CFunc ("EasyCheck","done") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"mesg"),CPVar (1,"ntest"),CPVar (2,"stamps")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStr"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"mesg"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (1,"ntest")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (1,"ntest"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]")))) (CVar (3,"table"))))))))])] [CLocalPat (CPVar (3,"table")) (CApply (CApply (CSymbol ("Prelude","$")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","display"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("EasyCheck","entry")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","reverse"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Sort","mergeSort")) (CApply (CApply (CSymbol ("EasyCheck","leqPair")) (CSymbol ("Prelude","<="))) (CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqString")))))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("EasyCheck","pairLength")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("List","group"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Sort","mergeSort")) (CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqString"))))) (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CSymbol ("Prelude","null")))))))))))) (CVar (2,"stamps"))) [],CLocalFunc (CFunc ("EasyCheck","display") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))] [],CRule [CPComb ("Prelude",":") [CPVar (4,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"x"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))] [],CRule [CPAs (8,"xs") (CPComb ("Prelude",":") [CPVar (5,"_"),CPComb ("Prelude",":") [CPVar (6,"_"),CPVar (7,"_")]])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","unlines")) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (9,"x0")] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (9,"x0"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))))) (CVar (8,"xs")))))] []])),CLocalFunc (CFunc ("EasyCheck","pairLength") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")])) (CRules CFlex [CRule [CPAs (6,"xss") (CPComb ("Prelude",":") [CPVar (4,"xs"),CPVar (5,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","length")) (CVar (6,"xss")))) (CVar (4,"xs")))] []])),CLocalFunc (CFunc ("EasyCheck","entry") 1 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (4,"n"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("EasyCheck","percentage")) (CVar (4,"n"))) (CVar (1,"ntest")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CSymbol ("List","intersperse")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))) (CVar (5,"xs"))))))] []])),CLocalFunc (CFunc ("EasyCheck","percentage") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [CPVar (4,"n"),CPVar (5,"m")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (6,"s")) (CApply (CSymbol ("Prelude","show")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 100))) (CVar (4,"n")))) (CVar (5,"m")))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","replicate")) (CApply (CApply (CSymbol ("Prelude","-")) (CLit (CIntc 3))) (CApply (CSymbol ("Prelude","length")) (CVar (6,"s"))))) (CLit (CCharc ' ')))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (6,"s"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '%'))) (CSymbol ("Prelude","[]"))))))] []]))]]),
+  CFunc ("EasyCheck","easy") 0 Private (CTCons ("EasyCheck","Config") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Config")) (CLit (CIntc 100))) (CLit (CIntc 1000))) (CLambda [CPVar (0,"n"),CPVar (1,"_")] (CLetDecl [CLocalPat (CPVar (2,"s")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CSymbol ("Prelude","show")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"n"))) (CLit (CIntc 1))))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"s"))) (CListComp (CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 8))) [CSPat (CPVar (3,"_")) (CVar (2,"s"))])))))] []]),
+  CFunc ("EasyCheck","easyCheck") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","check")) (CSymbol ("EasyCheck","easy")))] []]),
+  CFunc ("EasyCheck","easyCheck1") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","easyCheck2") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id")))))] []]),
+  CFunc ("EasyCheck","easyCheck3") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))))] []]),
+  CFunc ("EasyCheck","easyCheck4") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CFuncType (CTVar (3,"d")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id")))))))] []]),
+  CFunc ("EasyCheck","easyCheck5") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CFuncType (CTVar (3,"d")) (CFuncType (CTVar (4,"e")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])))))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))))))] []]),
+  CFunc ("EasyCheck","evalModeIsOrBased") 0 Private (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CSymbol ("Prelude","getSearchTree")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","unknown"))))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x0"))) (CApply (CSymbol ("Prelude","Value")) (CSymbol ("Prelude","()")))))))] []]),
+  CFunc ("EasyCheck","eventually") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("EasyCheck","isEventually")) (CVar (0,"x0"))) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","every") 1 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])))) (CRules CFlex [CRule [CPComb ("EasyCheck","Config") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"f")]] [(CSymbol ("Prelude","success"),CVar (2,"f"))] []]),
+  CFunc ("EasyCheck","failing") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CSymbol ("Prelude","null")))] []]),
+  CFunc ("EasyCheck","flat") 1 Private (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPVar (0,"t")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"t")) [CBranch (CPComb ("Prelude","Value") [CPVar (1,"_")]) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"t"))) (CSymbol ("Prelude","[]"))),CBranch (CPComb ("Prelude","Choice") [CPVar (2,"ts")]) (CVar (2,"ts")),CBranch (CPVar (3,"_")) (CSymbol ("Prelude","[]"))])] []]),
+  CFunc ("EasyCheck","flatRep") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"ts")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)),CVar (1,"ts")),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("EasyCheck","flatRep")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (0,"n"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("EasyCheck","flat"))) (CVar (1,"ts"))))] []]),
+  CFunc ("EasyCheck","for") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","forAll")) (CSymbol ("Prelude","id")))] []]),
+  CFunc ("EasyCheck","forAll") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CFuncType (CTVar (1,"b")) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (0,"a"))) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"x"),CPVar (2,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","forAllValues")) (CVar (0,"c"))) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (1,"x")))) (CVar (2,"f")))] []]),
+  CFunc ("EasyCheck","forAllValues") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (0,"a"))) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"xs"),CPVar (2,"f")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","diagonal")) (CListComp (CListComp (CApply (CApply (CSymbol ("EasyCheck","updArgs")) (CLambda [CPVar (5,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("Prelude","show")) (CVar (3,"y")))) (CVar (5,"x0"))))) (CVar (4,"t"))) [CSPat (CPVar (4,"t")) (CApply (CVar (0,"c")) (CApply (CVar (2,"f")) (CVar (3,"y"))))]) [CSPat (CPVar (3,"y")) (CVar (1,"xs"))]))] []]),
+  CFunc ("EasyCheck","forValues") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","forAllValues")) (CSymbol ("Prelude","id")))] []]),
+  CFunc ("EasyCheck","is") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CLambda [CPVar (2,"xs")] (CCase (CVar (2,"xs")) [CBranch (CPComb ("Prelude",":") [CPVar (3,"y"),CPComb ("Prelude","[]") []]) (CApply (CVar (1,"f")) (CVar (3,"y"))),CBranch (CPVar (4,"_")) (CSymbol ("Prelude","False"))])))] []]),
+  CFunc ("EasyCheck","isAlways") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x")))) (CSymbol ("Prelude","all")))] []]),
+  CFunc ("EasyCheck","isEventually") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x")))) (CSymbol ("Prelude","any")))] []]),
+  CFunc ("EasyCheck","isSameSet") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("EasyCheck","subset")) (CVar (2,"xs'"))) (CVar (3,"ys'")))) (CApply (CApply (CSymbol ("EasyCheck","subset")) (CVar (3,"ys'"))) (CVar (2,"xs'"))))] [CLocalPat (CPVar (2,"xs'")) (CApply (CSymbol ("List","nub")) (CVar (0,"xs"))) [],CLocalPat (CPVar (3,"ys'")) (CApply (CSymbol ("List","nub")) (CVar (1,"ys"))) []]]),
+  CFunc ("EasyCheck","isSubsetOf") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","subset")) (CApply (CSymbol ("List","nub")) (CVar (0,"xs")))) (CVar (1,"ys")))] []]),
+  CFunc ("EasyCheck","label") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","map"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","updStamp"))) (CSymbol ("Prelude",":"))))] []]),
+  CFunc ("EasyCheck","leList") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPVar (4,"_"),CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPVar (7,"le"),CPComb ("Prelude",":") [CPVar (8,"x"),CPVar (9,"xs")],CPComb ("Prelude",":") [CPVar (10,"y"),CPVar (11,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CVar (7,"le")) (CVar (8,"x"))) (CVar (10,"y")))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"x"))) (CVar (10,"y")))) (CApply (CApply (CApply (CSymbol ("EasyCheck","leList")) (CVar (7,"le"))) (CVar (9,"xs"))) (CVar (11,"ys")))))] []]),
+  CFunc ("EasyCheck","leqPair") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))))) (CRules CFlex [CRule [CPVar (0,"leqa"),CPVar (1,"leqb"),CPComb ("Prelude","(,)") [CPVar (2,"x1"),CPVar (3,"y1")],CPComb ("Prelude","(,)") [CPVar (4,"x2"),CPVar (5,"y2")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"x1"))) (CVar (4,"x2")),CApply (CApply (CVar (1,"leqb")) (CVar (3,"y1"))) (CVar (5,"y2"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (0,"leqa")) (CVar (2,"x1"))) (CVar (4,"x2")))] []]),
+  CFunc ("EasyCheck","maxFail") 1 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("EasyCheck","Config") [CPVar (0,"_"),CPVar (1,"n"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"n"))] []]),
+  CFunc ("EasyCheck","maxTest") 1 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("EasyCheck","Config") [CPVar (0,"n"),CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] []]),
+  CFunc ("EasyCheck","notest") 0 Private (CTCons ("EasyCheck","Test") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Test")) (CSymbol ("EasyCheck","Undef"))) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("EasyCheck","nth") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"n")) [CBranch (CPLit (CIntc 1)) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]"))))))),CBranch (CPLit (CIntc 2)) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]")))))))),CBranch (CPLit (CIntc 3)) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))),CBranch (CPVar (1,"_")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CSymbol ("Prelude","[]")))))])] []]),
+  CFunc ("EasyCheck","prop") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("EasyCheck","uniquely"))] []]),
+  CFunc ("EasyCheck","result") 1 Public (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("EasyCheck","Result") [])) (CRules CFlex [CRule [CPComb ("EasyCheck","Test") [CPVar (0,"r"),CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"r"))] []]),
+  CFunc ("EasyCheck","rndLevelDiag") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"rnd"),CPVar (1,"t")] [(CSymbol ("Prelude","success"),CListComp (CVar (2,"x")) [CSPat (CPComb ("Prelude","Value") [CPVar (2,"x")]) (CApply (CSymbol ("EasyCheck","diagonal")) (CApply (CApply (CSymbol ("EasyCheck","rndLevels")) (CVar (0,"rnd"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"t"))) (CSymbol ("Prelude","[]")))))])] []]),
+  CFunc ("EasyCheck","rndLevelDiagFlat") 3 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"d"),CPVar (1,"rnd"),CPVar (2,"t")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","concat"))) (CApply (CSymbol ("EasyCheck","transpose")) (CApply (CApply (CApply (CSymbol ("Prelude","zipWith")) (CSymbol ("EasyCheck","rndLevelDiag"))) (CVar (3,"rs"))) (CApply (CApply (CSymbol ("EasyCheck","flatRep")) (CVar (0,"d"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"t"))) (CSymbol ("Prelude","[]")))))))] [CLocalPat (CPVar (3,"rs")) (CApply (CSymbol ("RandomExternal","split")) (CVar (1,"rnd"))) []]]),
+  CFunc ("EasyCheck","rndLevels") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]]))) (CRules CFlex [CRule [CPVar (0,"rnd"),CPVar (1,"ts")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (1,"ts")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"ts"))) (CApply (CApply (CSymbol ("EasyCheck","rndLevels")) (CVar (2,"r"))) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CApply (CSymbol ("Prelude","zipWith")) (CSymbol ("EasyCheck","shuffle"))) (CVar (3,"rs"))) (CListComp (CVar (4,"us")) [CSPat (CPComb ("Prelude","Choice") [CPVar (4,"us")]) (CVar (1,"ts"))]))))))] [CLocalPat (CPComb ("Prelude",":") [CPVar (2,"r"),CPVar (3,"rs")]) (CApply (CSymbol ("RandomExternal","split")) (CVar (0,"rnd"))) []]]),
+  CFunc ("EasyCheck","setEvery") 2 Private (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("EasyCheck","Config") []) (CTCons ("EasyCheck","Config") []))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("EasyCheck","Config") [CPVar (1,"n"),CPVar (2,"m"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Config")) (CVar (1,"n"))) (CVar (2,"m"))) (CVar (0,"f")))] []]),
+  CFunc ("EasyCheck","setResult") 2 Private (CFuncType (CTCons ("EasyCheck","Result") []) (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("EasyCheck","Test") []))) (CRules CFlex [CRule [CPVar (0,"res"),CPComb ("EasyCheck","Test") [CPVar (1,"_"),CPVar (2,"s"),CPVar (3,"a")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Test")) (CVar (0,"res"))) (CVar (3,"a"))) (CVar (2,"s")))] []]),
+  CFunc ("EasyCheck","shuffle") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"rnd"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","shuffleWithLen")) (CApply (CSymbol ("RandomExternal","nextInt")) (CVar (0,"rnd")))) (CApply (CSymbol ("Prelude","length")) (CVar (1,"l")))) (CVar (1,"l")))] []]),
+  CFunc ("EasyCheck","shuffleWithLen") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"r"),CPVar (1,"rs")],CPVar (2,"len"),CPVar (3,"xs")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"len"))) (CLit (CIntc 0)),CSymbol ("Prelude","[]")),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"z"))) (CApply (CApply (CApply (CSymbol ("EasyCheck","shuffleWithLen")) (CVar (1,"rs"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (2,"len"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"ys"))) (CVar (6,"zs")))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ys"),CPComb ("Prelude",":") [CPVar (5,"z"),CPVar (6,"zs")]]) (CApply (CApply (CSymbol ("Prelude","splitAt")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CSymbol ("Integer","abs")) (CVar (0,"r")))) (CVar (2,"len")))) (CVar (3,"xs"))) []]]),
+  CFunc ("EasyCheck","stamp") 1 Private (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPComb ("EasyCheck","Test") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"s")]] [(CSymbol ("Prelude","success"),CVar (2,"s"))] []]),
+  CFunc ("EasyCheck","subset") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (0,"xs"))) (CVar (1,"ys"))))] []]),
+  CFunc ("EasyCheck","suc") 1 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (0,"a"))) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","forAll")) (CVar (0,"n"))) (CSymbol ("Prelude","unknown")))] []]),
+  CFunc ("EasyCheck","successful") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CSymbol ("Prelude","null"))))] []]),
+  CFunc ("EasyCheck","test") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("EasyCheck","setResult")) (CVar (3,"res"))) (CSymbol ("EasyCheck","notest")))) (CSymbol ("Prelude","[]")))] [CLocalPat (CPVar (2,"xs")) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (0,"x"))) [],CLocalPat (CPVar (3,"res")) (CCase (CApply (CSymbol ("EasyCheck","valuesOf")) (CApply (CVar (1,"f")) (CVar (2,"xs")))) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","True") [],CPComb ("Prelude","[]") []]) (CSymbol ("EasyCheck","Ok")),CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","False") [],CPComb ("Prelude","[]") []]) (CApply (CSymbol ("EasyCheck","Falsified")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","show"))) (CVar (2,"xs")))),CBranch (CPVar (4,"bs")) (CApply (CApply (CSymbol ("EasyCheck","Ambigious")) (CVar (4,"bs"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","show"))) (CVar (2,"xs"))))]) []]]),
+  CFunc ("EasyCheck","tests") 5 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"ntest"),CPVar (2,"_"),CPVar (3,"stamps")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","done")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'P'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))))) (CVar (1,"ntest"))) (CVar (3,"stamps")))] [],CRule [CPVar (4,"config"),CPComb ("Prelude",":") [CPVar (5,"t"),CPVar (6,"ts")],CPVar (7,"ntest"),CPVar (8,"nfail"),CPVar (9,"stamps")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"ntest"))) (CApply (CSymbol ("EasyCheck","maxTest")) (CVar (4,"config"))),CApply (CApply (CApply (CSymbol ("EasyCheck","done")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))))))))) (CVar (7,"ntest"))) (CVar (9,"stamps"))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"nfail"))) (CApply (CSymbol ("EasyCheck","maxFail")) (CVar (4,"config"))),CApply (CApply (CApply (CSymbol ("EasyCheck","done")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CVar (7,"ntest"))) (CVar (9,"stamps"))),(CSymbol ("Prelude","otherwise"),CDoExpr [CSExpr (CApply (CSymbol ("Prelude","putStr")) (CApply (CApply (CApply (CSymbol ("EasyCheck","every")) (CVar (4,"config"))) (CVar (7,"ntest"))) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))),CSExpr (CCase (CApply (CSymbol ("EasyCheck","result")) (CVar (5,"t"))) [CBranch (CPComb ("EasyCheck","Undef") []) (CApply (CApply (CApply (CApply (CApply (CSymbol ("EasyCheck","tests")) (CVar (4,"config"))) (CVar (6,"ts"))) (CVar (7,"ntest"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (8,"nfail"))) (CLit (CIntc 1)))) (CVar (9,"stamps"))),CBranch (CPComb ("EasyCheck","Ok") []) (CApply (CApply (CApply (CApply (CApply (CSymbol ("EasyCheck","tests")) (CVar (4,"config"))) (CVar (6,"ts"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (7,"ntest"))) (CLit (CIntc 1)))) (CVar (8,"nfail"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("EasyCheck","stamp")) (CVar (5,"t")))) (CVar (9,"stamps")))),CBranch (CPComb ("EasyCheck","Falsified") [CPVar (10,"results")]) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStr"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("EasyCheck","nth")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (7,"ntest"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","unlines")) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (10,"results")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CApply (CSymbol ("Prelude","unlines")) (CVar (10,"results")))))))))))),CBranch (CPComb ("EasyCheck","Ambigious") [CPVar (11,"bs"),CPVar (12,"results")]) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStr"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (11,"bs")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("EasyCheck","nth")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (7,"ntest"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","unlines")) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (12,"results")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CApply (CSymbol ("Prelude","unlines")) (CVar (12,"results"))))))))))))))])])] []]),
+  CFunc ("EasyCheck","transpose") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","[]") [],CPVar (0,"xss")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","transpose")) (CVar (0,"xss")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"xss")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CListComp (CVar (4,"h")) [CSPat (CPComb ("Prelude",":") [CPVar (4,"h"),CPVar (5,"_")]) (CVar (3,"xss"))]))) (CApply (CSymbol ("EasyCheck","transpose")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"xs"))) (CListComp (CVar (7,"t")) [CSPat (CPComb ("Prelude",":") [CPVar (6,"_"),CPVar (7,"t")]) (CVar (3,"xss"))]))))] []]),
+  CFunc ("EasyCheck","trivial") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("EasyCheck","classify")) (CVar (0,"x0"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CSymbol ("Prelude","[]")))))))))))] []]),
+  CFunc ("EasyCheck","uniquely") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("EasyCheck","is")) (CVar (0,"x0"))) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","updArgs") 2 Private (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("EasyCheck","Test") []))) (CRules CFlex [CRule [CPVar (0,"upd"),CPComb ("EasyCheck","Test") [CPVar (1,"r"),CPVar (2,"a"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Test")) (CVar (1,"r"))) (CApply (CVar (0,"upd")) (CVar (2,"a")))) (CVar (3,"s")))] []]),
+  CFunc ("EasyCheck","updStamp") 2 Private (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("EasyCheck","Test") []))) (CRules CFlex [CRule [CPVar (0,"upd"),CPComb ("EasyCheck","Test") [CPVar (1,"r"),CPVar (2,"a"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Test")) (CVar (1,"r"))) (CVar (2,"a"))) (CApply (CVar (0,"upd")) (CVar (3,"s"))))] []]),
+  CFunc ("EasyCheck","valuesOf") 0 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CApply (CSymbol ("EasyCheck","rndLevelDiagFlat")) (CLit (CIntc 3))) (CLit (CIntc 2008)))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Meta","searchTree"))) (CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","id"))) (CVar (0,"x0"))))))] []]),
+  CFunc ("EasyCheck","verbose") 0 Private (CTCons ("EasyCheck","Config") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","setEvery")) (CLambda [CPVar (0,"n"),CPVar (1,"xs")] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","unlines")) (CVar (1,"xs"))))))) (CSymbol ("EasyCheck","easy")))] []]),
+  CFunc ("EasyCheck","verboseCheck") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","check")) (CSymbol ("EasyCheck","verbose")))] []]),
+  CFunc ("EasyCheck","verboseCheck1") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","verboseCheck2") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id")))))] []]),
+  CFunc ("EasyCheck","verboseCheck3") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))))] []]),
+  CFunc ("EasyCheck","verboseCheck4") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CFuncType (CTVar (3,"d")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id")))))))] []]),
+  CFunc ("EasyCheck","verboseCheck5") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CFuncType (CTVar (3,"d")) (CFuncType (CTVar (4,"e")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []])))))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))))))] []]),
+  CFunc ("EasyCheck","~>") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CApply (CSymbol ("EasyCheck","isSubsetOf")) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (1,"y")))))] []])]
+ [COp ("EasyCheck","isSubsetOf") CInfixOp 4,COp ("EasyCheck","isSameSet") CInfixOp 4,COp ("EasyCheck","trivial") CInfixOp 1,COp ("EasyCheck","<~") CInfixOp 1,COp ("EasyCheck","~>") CInfixOp 1,COp ("EasyCheck","<~>") CInfixOp 1,COp ("EasyCheck","#") CInfixOp 1,COp ("EasyCheck","-=-") CInfixOp 1,COp ("EasyCheck","isEventually") CInfixOp 1,COp ("EasyCheck","isAlways") CInfixOp 1,COp ("EasyCheck","is") CInfixOp 1,COp ("EasyCheck","==>") CInfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/EasyCheck.cy b/src/lib/Curry/Module/.curry/EasyCheck.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/EasyCheck.cy
@@ -0,0 +1,146 @@
+Module "EasyCheck"
+(Just (Exporting (11,18) [(Export (QualIdent Nothing (Ident "Prop" 0))),(Export (QualIdent Nothing (Ident "==>" 0))),(Export (QualIdent Nothing (Ident "for" 0))),(Export (QualIdent Nothing (Ident "forValues" 0))),(Export (QualIdent Nothing (Ident "test" 0))),(Export (QualIdent Nothing (Ident "is" 0))),(Export (QualIdent Nothing (Ident "isAlways" 0))),(Export (QualIdent Nothing (Ident "isEventually" 0))),(Export (QualIdent Nothing (Ident "prop" 0))),(Export (QualIdent Nothing (Ident "uniquely" 0))),(Export (QualIdent Nothing (Ident "always" 0))),(Export (QualIdent Nothing (Ident "eventually" 0))),(Export (QualIdent Nothing (Ident "failing" 0))),(Export (QualIdent Nothing (Ident "successful" 0))),(Export (QualIdent Nothing (Ident "deterministic" 0))),(Export (QualIdent Nothing (Ident "-=-" 0))),(Export (QualIdent Nothing (Ident "#" 0))),(Export (QualIdent Nothing (Ident "<~>" 0))),(Export (QualIdent Nothing (Ident "~>" 0))),(Export (QualIdent Nothing (Ident "<~" 0))),(Export (QualIdent Nothing (Ident "isSameSet" 0))),(Export (QualIdent Nothing (Ident "isSubsetOf" 0))),(Export (QualIdent Nothing (Ident "label" 0))),(Export (QualIdent Nothing (Ident "trivial" 0))),(Export (QualIdent Nothing (Ident "classify" 0))),(Export (QualIdent Nothing (Ident "collect" 0))),(Export (QualIdent Nothing (Ident "collectAs" 0))),(Export (QualIdent Nothing (Ident "easyCheck" 0))),(Export (QualIdent Nothing (Ident "easyCheck1" 0))),(Export (QualIdent Nothing (Ident "easyCheck2" 0))),(Export (QualIdent Nothing (Ident "easyCheck3" 0))),(Export (QualIdent Nothing (Ident "easyCheck4" 0))),(Export (QualIdent Nothing (Ident "easyCheck5" 0))),(Export (QualIdent Nothing (Ident "verboseCheck" 0))),(Export (QualIdent Nothing (Ident "verboseCheck1" 0))),(Export (QualIdent Nothing (Ident "verboseCheck2" 0))),(Export (QualIdent Nothing (Ident "verboseCheck3" 0))),(Export (QualIdent Nothing (Ident "verboseCheck4" 0))),(Export (QualIdent Nothing (Ident "verboseCheck5" 0))),(Export (QualIdent Nothing (Ident "valuesOf" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Result" 0))),(Export (QualIdent Nothing (Ident "result" 0))),(Export (QualIdent Nothing (Ident "diagonal" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (37,1) "List" False Nothing (Just (Importing (37,25) [(Import (Ident "nub" 0)),(Import (Ident "group" 0)),(Import (Ident "intersperse" 0)),(Import (Ident "\\\\" 0))])))
+,(ImportDecl (38,1) "Sort" False Nothing (Just (Importing (38,25) [(Import (Ident "leqList" 0)),(Import (Ident "leqString" 0)),(Import (Ident "mergeSort" 0))])))
+,(ImportDecl (39,1) "Meta" False Nothing (Just (Importing (39,25) [(Import (Ident "searchTree" 0))])))
+,(ImportDecl (40,1) "Integer" False Nothing (Just (Importing (40,25) [(Import (Ident "abs" 0))])))
+,(ImportDecl (41,1) "Read" False Nothing (Just (Importing (41,25) [(Import (Ident "readNat" 0))])))
+,(ImportDecl (42,1) "RandomExternal" False Nothing (Just (Importing (42,25) [(Import (Ident "split" 0)),(Import (Ident "nextInt" 0))])))
+,(DataDecl (49,1) (Ident "Test" 0) [] [(ConstrDecl (49,13) [] (Ident "Test" 0) [(ConstructorType (QualIdent Nothing (Ident "Result" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])),(ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))])])
+,(DataDecl (51,1) (Ident "Result" 0) [] [(ConstrDecl (51,15) [] (Ident "Undef" 0) []),(ConstrDecl (51,23) [] (Ident "Ok" 0) []),(ConstrDecl (51,28) [] (Ident "Falsified" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))]),(ConstrDecl (51,49) [] (Ident "Ambigious" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])),(ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))])])
+,(TypeDecl (53,1) (Ident "Prop" 0) [] (ListType (ConstructorType (QualIdent Nothing (Ident "Test" 0)) [])))
+,(DataDecl (169,1) (Ident "Config" 0) [] [(ConstrDecl (169,15) [] (Ident "Config" 0) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))])])
+,(InfixDecl (44,1) Infix 4 [(Ident "isSameSet" 0),(Ident "isSubsetOf" 0)])
+,(InfixDecl (45,1) Infix 1 [(Ident "is" 0),(Ident "isAlways" 0),(Ident "isEventually" 0),(Ident "-=-" 0),(Ident "#" 0),(Ident "<~>" 0),(Ident "~>" 0),(Ident "<~" 0),(Ident "trivial" 0)])
+,(InfixDecl (46,1) InfixR 0 [(Ident "==>" 0)])
+,(TypeSig (55,1) [(Ident "notest" 0)] (ConstructorType (QualIdent Nothing (Ident "Test" 0)) []))
+,(FunctionDecl (56,1) (Ident "notest" 0) [(Equation (56,1) (FunLhs (Ident "notest" 0) []) (SimpleRhs (56,10) (Apply (Apply (Apply (Constructor (QualIdent (Just "EasyCheck") (Ident "Test" 0))) (Constructor (QualIdent (Just "EasyCheck") (Ident "Undef" 0)))) (List [])) (List [])) []))])
+,(TypeSig (58,1) [(Ident "result" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Test" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Result" 0)) [])))
+,(FunctionDecl (59,1) (Ident "result" 0) [(Equation (59,1) (FunLhs (Ident "result" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Test" 0)) [(VariablePattern (Ident "r" 4)),(VariablePattern (Ident "_" 5)),(VariablePattern (Ident "_" 6))]))]) (SimpleRhs (59,23) (Variable (QualIdent Nothing (Ident "r" 4))) []))])
+,(TypeSig (61,1) [(Ident "setResult" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Result" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Test" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Test" 0)) []))))
+,(FunctionDecl (62,1) (Ident "setResult" 0) [(Equation (62,1) (FunLhs (Ident "setResult" 0) [(VariablePattern (Ident "res" 8)),(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Test" 0)) [(VariablePattern (Ident "_" 9)),(VariablePattern (Ident "s" 8)),(VariablePattern (Ident "a" 8))]))]) (SimpleRhs (62,30) (Apply (Apply (Apply (Constructor (QualIdent (Just "EasyCheck") (Ident "Test" 0))) (Variable (QualIdent Nothing (Ident "res" 8)))) (Variable (QualIdent Nothing (Ident "a" 8)))) (Variable (QualIdent Nothing (Ident "s" 8)))) []))])
+,(TypeSig (64,1) [(Ident "args" 0),(Ident "stamp" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Test" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(FunctionDecl (65,1) (Ident "args" 0) [(Equation (65,1) (FunLhs (Ident "args" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Test" 0)) [(VariablePattern (Ident "_" 12)),(VariablePattern (Ident "a" 11)),(VariablePattern (Ident "_" 13))]))]) (SimpleRhs (65,22) (Variable (QualIdent Nothing (Ident "a" 11))) []))])
+,(FunctionDecl (66,1) (Ident "stamp" 0) [(Equation (66,1) (FunLhs (Ident "stamp" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Test" 0)) [(VariablePattern (Ident "_" 16)),(VariablePattern (Ident "_" 17)),(VariablePattern (Ident "s" 15))]))]) (SimpleRhs (66,22) (Variable (QualIdent Nothing (Ident "s" 15))) []))])
+,(TypeSig (68,1) [(Ident "updArgs" 0),(Ident "updStamp" 0)] (ArrowType (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Test" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Test" 0)) []))))
+,(FunctionDecl (69,1) (Ident "updArgs" 0) [(Equation (69,1) (FunLhs (Ident "updArgs" 0) [(VariablePattern (Ident "upd" 19)),(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Test" 0)) [(VariablePattern (Ident "r" 19)),(VariablePattern (Ident "a" 19)),(VariablePattern (Ident "s" 19))]))]) (SimpleRhs (69,29) (Apply (Apply (Apply (Constructor (QualIdent (Just "EasyCheck") (Ident "Test" 0))) (Variable (QualIdent Nothing (Ident "r" 19)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "upd" 19))) (Variable (QualIdent Nothing (Ident "a" 19)))))) (Variable (QualIdent Nothing (Ident "s" 19)))) []))])
+,(FunctionDecl (70,1) (Ident "updStamp" 0) [(Equation (70,1) (FunLhs (Ident "updStamp" 0) [(VariablePattern (Ident "upd" 21)),(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Test" 0)) [(VariablePattern (Ident "r" 21)),(VariablePattern (Ident "a" 21)),(VariablePattern (Ident "s" 21))]))]) (SimpleRhs (70,29) (Apply (Apply (Apply (Constructor (QualIdent (Just "EasyCheck") (Ident "Test" 0))) (Variable (QualIdent Nothing (Ident "r" 21)))) (Variable (QualIdent Nothing (Ident "a" 21)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "upd" 21))) (Variable (QualIdent Nothing (Ident "s" 21)))))) []))])
+,(TypeSig (75,1) [(Ident "test" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (76,1) (Ident "test" 0) [(Equation (76,1) (FunLhs (Ident "test" 0) [(VariablePattern (Ident "x" 23)),(VariablePattern (Ident "f" 23))]) (SimpleRhs (76,12) (List [(Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "setResult" 0))) (Variable (QualIdent Nothing (Ident "res" 24)))) (Variable (QualIdent (Just "EasyCheck") (Ident "notest" 0))))]) [(PatternDecl (78,3) (VariablePattern (Ident "xs" 24)) (SimpleRhs (78,9) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "valuesOf" 0))) (Variable (QualIdent Nothing (Ident "x" 23)))) [])),(PatternDecl (79,3) (VariablePattern (Ident "res" 24)) (SimpleRhs (79,9) (Case (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "valuesOf" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 23))) (Variable (QualIdent Nothing (Ident "xs" 24)))))) [(Alt (80,11) (ListPattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "True" 0)) [])]) (SimpleRhs (80,22) (Constructor (QualIdent (Just "EasyCheck") (Ident "Ok" 0))) [])),(Alt (81,11) (ListPattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "False" 0)) [])]) (SimpleRhs (81,22) (Apply (Constructor (QualIdent (Just "EasyCheck") (Ident "Falsified" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "show" 0)))) (Variable (QualIdent Nothing (Ident "xs" 24)))))) [])),(Alt (82,11) (VariablePattern (Ident "bs" 31)) (SimpleRhs (82,22) (Apply (Apply (Constructor (QualIdent (Just "EasyCheck") (Ident "Ambigious" 0))) (Variable (QualIdent Nothing (Ident "bs" 31)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "show" 0)))) (Variable (QualIdent Nothing (Ident "xs" 24)))))) []))]) []))]))])
+,(TypeSig (86,1) [(Ident "is" 0),(Ident "isAlways" 0),(Ident "isEventually" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (87,1) (Ident "is" 0) [(Equation (87,1) (FunLhs (Ident "is" 0) [(VariablePattern (Ident "x" 33)),(VariablePattern (Ident "f" 33))]) (SimpleRhs (87,10) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 33)))) (Paren (Lambda [(VariablePattern (Ident "xs" 35))] (Case (Variable (QualIdent Nothing (Ident "xs" 35))) [(Alt (87,36) (ListPattern [(VariablePattern (Ident "y" 36))]) (SimpleRhs (87,43) (Apply (Variable (QualIdent Nothing (Ident "f" 33))) (Variable (QualIdent Nothing (Ident "y" 36)))) [])),(Alt (87,48) (VariablePattern (Ident "_" 39)) (SimpleRhs (87,53) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])))) []))])
+,(FunctionDecl (88,1) (Ident "isAlways" 0) [(Equation (88,1) (FunLhs (Ident "isAlways" 0) [(VariablePattern (Ident "x" 41))]) (SimpleRhs (88,15) (InfixApply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 41)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "all" 0)))) []))])
+,(FunctionDecl (89,1) (Ident "isEventually" 0) [(Equation (89,1) (FunLhs (Ident "isEventually" 0) [(VariablePattern (Ident "x" 43))]) (SimpleRhs (89,18) (InfixApply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 43)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "any" 0)))) []))])
+,(TypeSig (92,1) [(Ident "prop" 0),(Ident "uniquely" 0),(Ident "always" 0),(Ident "eventually" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))
+,(FunctionDecl (93,1) (Ident "prop" 0) [(Equation (93,1) (FunLhs (Ident "prop" 0) []) (SimpleRhs (93,14) (Variable (QualIdent (Just "EasyCheck") (Ident "uniquely" 0))) []))])
+,(FunctionDecl (94,1) (Ident "uniquely" 0) [(Equation (94,1) (FunLhs (Ident "uniquely" 0) []) (SimpleRhs (94,14) (RightSection (InfixOp (QualIdent (Just "EasyCheck") (Ident "is" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0)))) []))])
+,(FunctionDecl (95,1) (Ident "always" 0) [(Equation (95,1) (FunLhs (Ident "always" 0) []) (SimpleRhs (95,14) (RightSection (InfixOp (QualIdent (Just "EasyCheck") (Ident "isAlways" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0)))) []))])
+,(FunctionDecl (96,1) (Ident "eventually" 0) [(Equation (96,1) (FunLhs (Ident "eventually" 0) []) (SimpleRhs (96,14) (RightSection (InfixOp (QualIdent (Just "EasyCheck") (Ident "isEventually" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0)))) []))])
+,(TypeSig (99,1) [(Ident "failing" 0),(Ident "successful" 0),(Ident "deterministic" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))
+,(FunctionDecl (100,1) (Ident "failing" 0) [(Equation (100,1) (FunLhs (Ident "failing" 0) [(VariablePattern (Ident "x" 53))]) (SimpleRhs (100,13) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 53)))) (Variable (QualIdent (Just "Prelude") (Ident "null" 0)))) []))])
+,(FunctionDecl (101,1) (Ident "successful" 0) [(Equation (101,1) (FunLhs (Ident "successful" 0) [(VariablePattern (Ident "x" 55))]) (SimpleRhs (101,16) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 55)))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "null" 0)))))) []))])
+,(FunctionDecl (102,1) (Ident "deterministic" 0) [(Equation (102,1) (FunLhs (Ident "deterministic" 0) [(VariablePattern (Ident "x" 57))]) (SimpleRhs (102,19) (InfixApply (Variable (QualIdent Nothing (Ident "x" 57))) (InfixOp (QualIdent (Just "EasyCheck") (Ident "is" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))))) []))])
+,(TypeSig (105,1) [(Ident "#" 0)] (ArrowType (VariableType (Ident "_" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (106,1) (Ident "#" 0) [(Equation (106,1) (OpLhs (VariablePattern (Ident "x" 59)) (Ident "#" 0) (VariablePattern (Ident "n" 59))) (SimpleRhs (106,9) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 59)))) (Paren (InfixApply (LeftSection (Variable (QualIdent Nothing (Ident "n" 59))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "List") (Ident "nub" 0))))))) []))])
+,(TypeSig (110,1) [(Ident "-=-" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (111,1) (Ident "-=-" 0) [(Equation (111,1) (OpLhs (VariablePattern (Ident "x" 61)) (Ident "-=-" 0) (VariablePattern (Ident "y" 61))) (SimpleRhs (111,11) (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "x" 61))),(Variable (QualIdent Nothing (Ident "y" 61)))]) (InfixOp (QualIdent (Just "EasyCheck") (Ident "is" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "uncurry" 0))) (Variable (QualIdent (Just "Prelude") (Ident "==" 0))))) []))])
+,(TypeSig (114,1) [(Ident "<~>" 0),(Ident "~>" 0),(Ident "<~" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (115,1) (Ident "<~>" 0) [(Equation (115,1) (OpLhs (VariablePattern (Ident "x" 63)) (Ident "<~>" 0) (VariablePattern (Ident "y" 63))) (SimpleRhs (115,11) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 63)))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "isSameSet" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "valuesOf" 0))) (Variable (QualIdent Nothing (Ident "y" 63)))))))) []))])
+,(FunctionDecl (116,1) (Ident "~>" 0) [(Equation (116,1) (OpLhs (VariablePattern (Ident "x" 65)) (Ident "~>" 0) (VariablePattern (Ident "y" 65))) (SimpleRhs (116,11) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 65)))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "isSubsetOf" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "valuesOf" 0))) (Variable (QualIdent Nothing (Ident "y" 65)))))))) []))])
+,(FunctionDecl (117,1) (Ident "<~" 0) [(Equation (117,1) (OpLhs (VariablePattern (Ident "x" 67)) (Ident "<~" 0) (VariablePattern (Ident "y" 67))) (SimpleRhs (117,11) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "test" 0))) (Variable (QualIdent Nothing (Ident "x" 67)))) (RightSection (InfixOp (QualIdent (Just "EasyCheck") (Ident "isSubsetOf" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "valuesOf" 0))) (Variable (QualIdent Nothing (Ident "y" 67))))))) []))])
+,(TypeSig (119,1) [(Ident "isSameSet" 0),(Ident "isSubsetOf" 0),(Ident "subset" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (120,1) (Ident "isSameSet" 0) [(Equation (120,1) (OpLhs (VariablePattern (Ident "xs" 69)) (Ident "isSameSet" 0) (VariablePattern (Ident "ys" 69))) (SimpleRhs (120,21) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "xs'" 70))) (InfixOp (QualIdent (Just "EasyCheck") (Ident "subset" 0))) (Variable (QualIdent Nothing (Ident "ys'" 70)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "ys'" 70))) (InfixOp (QualIdent (Just "EasyCheck") (Ident "subset" 0))) (Variable (QualIdent Nothing (Ident "xs'" 70))))) [(PatternDecl (121,8) (VariablePattern (Ident "xs'" 70)) (SimpleRhs (121,14) (Apply (Variable (QualIdent (Just "List") (Ident "nub" 0))) (Variable (QualIdent Nothing (Ident "xs" 69)))) [])),(PatternDecl (121,22) (VariablePattern (Ident "ys'" 70)) (SimpleRhs (121,28) (Apply (Variable (QualIdent (Just "List") (Ident "nub" 0))) (Variable (QualIdent Nothing (Ident "ys" 69)))) []))]))])
+,(FunctionDecl (122,1) (Ident "isSubsetOf" 0) [(Equation (122,1) (OpLhs (VariablePattern (Ident "xs" 73)) (Ident "isSubsetOf" 0) (VariablePattern (Ident "ys" 73))) (SimpleRhs (122,22) (InfixApply (Apply (Variable (QualIdent (Just "List") (Ident "nub" 0))) (Variable (QualIdent Nothing (Ident "xs" 73)))) (InfixOp (QualIdent (Just "EasyCheck") (Ident "subset" 0))) (Variable (QualIdent Nothing (Ident "ys" 73)))) []))])
+,(FunctionDecl (123,1) (Ident "subset" 0) [(Equation (123,1) (OpLhs (VariablePattern (Ident "xs" 75)) (Ident "subset" 0) (VariablePattern (Ident "ys" 75))) (SimpleRhs (123,18) (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "xs" 75))) (InfixOp (QualIdent (Just "List") (Ident "\\\\" 0))) (Variable (QualIdent Nothing (Ident "ys" 75)))))) []))])
+,(TypeSig (126,1) [(Ident "==>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (127,1) (Ident "==>" 0) [(Equation (127,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "True" 0)) []) (Ident "==>" 0) (VariablePattern (Ident "p" 77))) (SimpleRhs (127,15) (Variable (QualIdent Nothing (Ident "p" 77))) [])),(Equation (128,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "False" 0)) []) (Ident "==>" 0) (VariablePattern (Ident "_" 80))) (SimpleRhs (128,15) (List [(Variable (QualIdent (Just "EasyCheck") (Ident "notest" 0)))]) []))])
+,(TypeSig (130,1) [(Ident "forAll" 0)] (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))))
+,(FunctionDecl (131,1) (Ident "forAll" 0) [(Equation (131,1) (FunLhs (Ident "forAll" 0) [(VariablePattern (Ident "c" 82)),(VariablePattern (Ident "x" 82)),(VariablePattern (Ident "f" 82))]) (SimpleRhs (131,16) (Apply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "forAllValues" 0))) (Variable (QualIdent Nothing (Ident "c" 82)))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "valuesOf" 0))) (Variable (QualIdent Nothing (Ident "x" 82)))))) (Variable (QualIdent Nothing (Ident "f" 82)))) []))])
+,(TypeSig (133,1) [(Ident "forAllValues" 0)] (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))))
+,(FunctionDecl (134,1) (Ident "forAllValues" 0) [(Equation (134,1) (FunLhs (Ident "forAllValues" 0) [(VariablePattern (Ident "c" 84)),(VariablePattern (Ident "xs" 84)),(VariablePattern (Ident "f" 84))]) (SimpleRhs (135,5) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "diagonal" 0))) (ListCompr (ListCompr (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "updArgs" 0))) (LeftSection (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "y" 86)))) (InfixConstr (QualIdent Nothing (Ident ":" 0))))) (Variable (QualIdent Nothing (Ident "t" 87)))) [(StmtBind (VariablePattern (Ident "t" 87)) (Apply (Variable (QualIdent Nothing (Ident "c" 84))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 84))) (Variable (QualIdent Nothing (Ident "y" 86)))))))]) [(StmtBind (VariablePattern (Ident "y" 86)) (Variable (QualIdent Nothing (Ident "xs" 84))))])) []))])
+,(TypeSig (138,1) [(Ident "for" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (139,1) (Ident "for" 0) [(Equation (139,1) (FunLhs (Ident "for" 0) []) (SimpleRhs (139,7) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "forAll" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0)))) []))])
+,(TypeSig (141,1) [(Ident "forValues" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (142,1) (Ident "forValues" 0) [(Equation (142,1) (FunLhs (Ident "forValues" 0) []) (SimpleRhs (142,13) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "forAllValues" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0)))) []))])
+,(TypeSig (147,1) [(Ident "label" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (148,1) (Ident "label" 0) [(Equation (148,1) (FunLhs (Ident "label" 0) []) (SimpleRhs (148,9) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "updStamp" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent Nothing (Ident ":" 0))))) []))])
+,(TypeSig (151,1) [(Ident "classify" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))))
+,(FunctionDecl (152,1) (Ident "classify" 0) [(Equation (152,1) (FunLhs (Ident "classify" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "True" 0)) []),(VariablePattern (Ident "name" 94))]) (SimpleRhs (152,23) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "label" 0))) (Variable (QualIdent Nothing (Ident "name" 94)))) [])),(Equation (153,1) (FunLhs (Ident "classify" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "False" 0)) []),(VariablePattern (Ident "_" 97))]) (SimpleRhs (153,23) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))) []))])
+,(TypeSig (156,1) [(Ident "trivial" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (157,1) (Ident "trivial" 0) [(Equation (157,1) (FunLhs (Ident "trivial" 0) []) (SimpleRhs (157,11) (RightSection (InfixOp (QualIdent (Just "EasyCheck") (Ident "classify" 0))) (Literal (String "trivial"))) []))])
+,(TypeSig (160,1) [(Ident "collect" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (161,1) (Ident "collect" 0) [(Equation (161,1) (FunLhs (Ident "collect" 0) []) (SimpleRhs (161,11) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "label" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "show" 0)))) []))])
+,(TypeSig (164,1) [(Ident "collectAs" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))))
+,(FunctionDecl (165,1) (Ident "collectAs" 0) [(Equation (165,1) (FunLhs (Ident "collectAs" 0) [(VariablePattern (Ident "name" 103))]) (SimpleRhs (165,18) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "label" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (LeftSection (Paren (InfixApply (Variable (QualIdent Nothing (Ident "name" 103))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ": ")))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "show" 0))))) []))])
+,(TypeSig (171,1) [(Ident "maxTest" 0),(Ident "maxFail" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Config" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (172,1) (Ident "maxTest" 0) [(Equation (172,1) (FunLhs (Ident "maxTest" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Config" 0)) [(VariablePattern (Ident "n" 105)),(VariablePattern (Ident "_" 106)),(VariablePattern (Ident "_" 107))]))]) (SimpleRhs (172,26) (Variable (QualIdent Nothing (Ident "n" 105))) []))])
+,(FunctionDecl (173,1) (Ident "maxFail" 0) [(Equation (173,1) (FunLhs (Ident "maxFail" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Config" 0)) [(VariablePattern (Ident "_" 110)),(VariablePattern (Ident "n" 109)),(VariablePattern (Ident "_" 111))]))]) (SimpleRhs (173,26) (Variable (QualIdent Nothing (Ident "n" 109))) []))])
+,(TypeSig (175,1) [(Ident "every" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Config" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))))
+,(FunctionDecl (176,1) (Ident "every" 0) [(Equation (176,1) (FunLhs (Ident "every" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Config" 0)) [(VariablePattern (Ident "_" 114)),(VariablePattern (Ident "_" 115)),(VariablePattern (Ident "f" 113))]))]) (SimpleRhs (176,24) (Variable (QualIdent Nothing (Ident "f" 113))) []))])
+,(TypeSig (178,1) [(Ident "setEvery" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Config" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Config" 0)) []))))
+,(FunctionDecl (179,1) (Ident "setEvery" 0) [(Equation (179,1) (FunLhs (Ident "setEvery" 0) [(VariablePattern (Ident "f" 117)),(ParenPattern (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Config" 0)) [(VariablePattern (Ident "n" 117)),(VariablePattern (Ident "m" 117)),(VariablePattern (Ident "_" 118))]))]) (SimpleRhs (179,29) (Apply (Apply (Apply (Constructor (QualIdent (Just "EasyCheck") (Ident "Config" 0))) (Variable (QualIdent Nothing (Ident "n" 117)))) (Variable (QualIdent Nothing (Ident "m" 117)))) (Variable (QualIdent Nothing (Ident "f" 117)))) []))])
+,(TypeSig (181,1) [(Ident "easy" 0)] (ConstructorType (QualIdent Nothing (Ident "Config" 0)) []))
+,(FunctionDecl (182,1) (Ident "easy" 0) [(Equation (182,1) (FunLhs (Ident "easy" 0) []) (SimpleRhs (182,8) (Apply (Apply (Apply (Constructor (QualIdent (Just "EasyCheck") (Ident "Config" 0))) (Literal (Int (Ident "_" 122) 100))) (Literal (Int (Ident "_" 123) 1000))) (Paren (Lambda [(VariablePattern (Ident "n" 124)),(VariablePattern (Ident "_" 125))] (Let [(PatternDecl (183,22) (VariablePattern (Ident "s" 126)) (SimpleRhs (183,26) (InfixApply (Literal (Char ' ')) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 124))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 128) 1)))))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "s" 126))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (ListCompr (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 131) 8))) [(StmtBind (VariablePattern (Ident "_" 130)) (Variable (QualIdent Nothing (Ident "s" 126))))])))))) []))])
+,(TypeSig (185,1) [(Ident "verbose" 0)] (ConstructorType (QualIdent Nothing (Ident "Config" 0)) []))
+,(FunctionDecl (186,1) (Ident "verbose" 0) [(Equation (186,1) (FunLhs (Ident "verbose" 0) []) (SimpleRhs (186,11) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "setEvery" 0))) (Paren (Lambda [(VariablePattern (Ident "n" 134)),(VariablePattern (Ident "xs" 134))] (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "n" 134)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ":\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (Variable (QualIdent Nothing (Ident "xs" 134))))))))) (Variable (QualIdent (Just "EasyCheck") (Ident "easy" 0)))) []))])
+,(TypeSig (189,1) [(Ident "easyCheck" 0),(Ident "verboseCheck" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (190,1) (Ident "easyCheck" 0) [(Equation (190,1) (FunLhs (Ident "easyCheck" 0) []) (SimpleRhs (190,16) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "check" 0))) (Variable (QualIdent (Just "EasyCheck") (Ident "easy" 0)))) []))])
+,(FunctionDecl (191,1) (Ident "verboseCheck" 0) [(Equation (191,1) (FunLhs (Ident "verboseCheck" 0) []) (SimpleRhs (191,16) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "check" 0))) (Variable (QualIdent (Just "EasyCheck") (Ident "verbose" 0)))) []))])
+,(TypeSig (193,1) [(Ident "suc" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))
+,(FunctionDecl (194,1) (Ident "suc" 0) [(Equation (194,1) (FunLhs (Ident "suc" 0) [(VariablePattern (Ident "n" 139))]) (SimpleRhs (194,9) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "forAll" 0))) (Variable (QualIdent Nothing (Ident "n" 139)))) (Variable (QualIdent (Just "Prelude") (Ident "unknown" 0)))) []))])
+,(TypeSig (196,1) [(Ident "easyCheck1" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (197,1) (Ident "easyCheck1" 0) [(Equation (197,1) (FunLhs (Ident "easyCheck1" 0) []) (SimpleRhs (197,14) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "easyCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))) []))])
+,(TypeSig (199,1) [(Ident "easyCheck2" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (200,1) (Ident "easyCheck2" 0) [(Equation (200,1) (FunLhs (Ident "easyCheck2" 0) []) (SimpleRhs (200,14) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "easyCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))))) []))])
+,(TypeSig (202,1) [(Ident "easyCheck3" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (203,1) (Ident "easyCheck3" 0) [(Equation (203,1) (FunLhs (Ident "easyCheck3" 0) []) (SimpleRhs (203,14) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "easyCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))))))) []))])
+,(TypeSig (205,1) [(Ident "easyCheck4" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (206,1) (Ident "easyCheck4" 0) [(Equation (206,1) (FunLhs (Ident "easyCheck4" 0) []) (SimpleRhs (206,14) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "easyCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))))))))) []))])
+,(TypeSig (208,1) [(Ident "easyCheck5" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (209,1) (Ident "easyCheck5" 0) [(Equation (209,1) (FunLhs (Ident "easyCheck5" 0) []) (SimpleRhs (209,14) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "easyCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))))))))))) []))])
+,(TypeSig (211,1) [(Ident "verboseCheck1" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (212,1) (Ident "verboseCheck1" 0) [(Equation (212,1) (FunLhs (Ident "verboseCheck1" 0) []) (SimpleRhs (212,17) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "verboseCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))) []))])
+,(TypeSig (214,1) [(Ident "verboseCheck2" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (215,1) (Ident "verboseCheck2" 0) [(Equation (215,1) (FunLhs (Ident "verboseCheck2" 0) []) (SimpleRhs (215,17) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "verboseCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))))) []))])
+,(TypeSig (217,1) [(Ident "verboseCheck3" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (218,1) (Ident "verboseCheck3" 0) [(Equation (218,1) (FunLhs (Ident "verboseCheck3" 0) []) (SimpleRhs (218,17) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "verboseCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))))))) []))])
+,(TypeSig (220,1) [(Ident "verboseCheck4" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []))))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (221,1) (Ident "verboseCheck4" 0) [(Equation (221,1) (FunLhs (Ident "verboseCheck4" 0) []) (SimpleRhs (221,17) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "verboseCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))))))))) []))])
+,(TypeSig (223,1) [(Ident "verboseCheck5" 0)] (ArrowType (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) [])))))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (224,1) (Ident "verboseCheck5" 0) [(Equation (224,1) (FunLhs (Ident "verboseCheck5" 0) []) (SimpleRhs (224,17) (InfixApply (Variable (QualIdent (Just "EasyCheck") (Ident "verboseCheck" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "suc" 0))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0))))))))))))) []))])
+,(TypeSig (227,1) [(Ident "check" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Config" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Prop" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (228,1) (Ident "check" 0) [(Equation (228,1) (FunLhs (Ident "check" 0) [(VariablePattern (Ident "config" 161)),(VariablePattern (Ident "p" 161))]) (SimpleRhs (228,18) (Do [(StmtBind (VariablePattern (Ident "isOrBased" 163)) (Variable (QualIdent (Just "EasyCheck") (Ident "evalModeIsOrBased" 0))))] (IfThenElse (Variable (QualIdent Nothing (Ident "isOrBased" 163))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "tests" 0))) (Variable (QualIdent Nothing (Ident "config" 161)))) (Variable (QualIdent Nothing (Ident "p" 161)))) (Literal (Int (Ident "_" 164) 0))) (Literal (Int (Ident "_" 165) 0))) (List [])) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (List [(Literal (String "")),(Literal (String "EasyCheck must be run without suspending computations.")),(Literal (String "")),(Literal (String "Please")),(Literal (String "")),(Literal (String " - type ':set or' at the command prompt in kicsi or")),(Literal (String " - put 'ChoiceMode=OrBased' in your ~/.kicsrc file")),(Literal (String "")),(Literal (String "to enable this mode for this session or for all sessions respectively."))]))))) []))])
+,(TypeSig (238,1) [(Ident "tests" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Config" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Test" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))))))
+,(FunctionDecl (239,1) (Ident "tests" 0) [(Equation (239,1) (FunLhs (Ident "tests" 0) [(VariablePattern (Ident "_" 167)),(ListPattern []),(VariablePattern (Ident "ntest" 166)),(VariablePattern (Ident "_" 168)),(VariablePattern (Ident "stamps" 166))]) (SimpleRhs (239,29) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "done" 0))) (Literal (String "Passed"))) (Variable (QualIdent Nothing (Ident "ntest" 166)))) (Variable (QualIdent Nothing (Ident "stamps" 166)))) [])),(Equation (240,1) (FunLhs (Ident "tests" 0) [(VariablePattern (Ident "config" 170)),(ParenPattern (InfixPattern (VariablePattern (Ident "t" 170)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ts" 170)))),(VariablePattern (Ident "ntest" 170)),(VariablePattern (Ident "nfail" 170)),(VariablePattern (Ident "stamps" 170))]) (GuardedRhs [(CondExpr (241,3) (InfixApply (Variable (QualIdent Nothing (Ident "ntest" 170))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "maxTest" 0))) (Variable (QualIdent Nothing (Ident "config" 170))))) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "done" 0))) (Literal (String "OK, passed"))) (Variable (QualIdent Nothing (Ident "ntest" 170)))) (Variable (QualIdent Nothing (Ident "stamps" 170))))),(CondExpr (242,3) (InfixApply (Variable (QualIdent Nothing (Ident "nfail" 170))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "maxFail" 0))) (Variable (QualIdent Nothing (Ident "config" 170))))) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "done" 0))) (Literal (String "Arguments exhausted after"))) (Variable (QualIdent Nothing (Ident "ntest" 170)))) (Variable (QualIdent Nothing (Ident "stamps" 170))))),(CondExpr (243,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Do [(StmtExpr (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "every" 0))) (Variable (QualIdent Nothing (Ident "config" 170)))) (Variable (QualIdent Nothing (Ident "ntest" 170)))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "args" 0))) (Variable (QualIdent Nothing (Ident "t" 170)))))))))] (Case (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "result" 0))) (Variable (QualIdent Nothing (Ident "t" 170)))) [(Alt (246,9) (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Undef" 0)) []) (SimpleRhs (246,18) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "tests" 0))) (Variable (QualIdent Nothing (Ident "config" 170)))) (Variable (QualIdent Nothing (Ident "ts" 170)))) (Variable (QualIdent Nothing (Ident "ntest" 170)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "nfail" 170))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 174) 1))))) (Variable (QualIdent Nothing (Ident "stamps" 170)))) [])),(Alt (247,9) (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Ok" 0)) []) (SimpleRhs (247,18) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "tests" 0))) (Variable (QualIdent Nothing (Ident "config" 170)))) (Variable (QualIdent Nothing (Ident "ts" 170)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ntest" 170))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 177) 1))))) (Variable (QualIdent Nothing (Ident "nfail" 170)))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "stamp" 0))) (Variable (QualIdent Nothing (Ident "t" 170)))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "stamps" 170)))))) [])),(Alt (248,9) (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Falsified" 0)) [(VariablePattern (Ident "results" 178))]) (SimpleRhs (248,30) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (Literal (String "Falsified by ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "nth" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ntest" 170))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 180) 1))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " test")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Paren (IfThenElse (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "args" 0))) (Variable (QualIdent Nothing (Ident "t" 170)))))) (Literal (String ".")) (Literal (String ".\nArguments:")))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "args" 0))) (Variable (QualIdent Nothing (Ident "t" 170)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (IfThenElse (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "results" 178)))) (Literal (String "no result\n")) (InfixApply (Literal (String "Results:\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (Variable (QualIdent Nothing (Ident "results" 178))))))))))))) [])),(Alt (254,9) (ConstructorPattern (QualIdent (Just "EasyCheck") (Ident "Ambigious" 0)) [(VariablePattern (Ident "bs" 181)),(VariablePattern (Ident "results" 181))]) (SimpleRhs (254,33) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (Literal (String "Ambigious property yields ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "bs" 181)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " for ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "nth" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ntest" 170))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 183) 1))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " test")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Paren (IfThenElse (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "args" 0))) (Variable (QualIdent Nothing (Ident "t" 170)))))) (Literal (String ".")) (Literal (String ".\nArguments:")))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (Paren (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "args" 0))) (Variable (QualIdent Nothing (Ident "t" 170)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (IfThenElse (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "results" 181)))) (Literal (String "no result\n")) (InfixApply (Literal (String "Results:\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (Variable (QualIdent Nothing (Ident "results" 181))))))))))))))) []))])))] []))])
+,(TypeSig (262,1) [(Ident "nth" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (263,1) (Ident "nth" 0) [(Equation (263,1) (FunLhs (Ident "nth" 0) [(VariablePattern (Ident "n" 184))]) (SimpleRhs (263,9) (Case (Variable (QualIdent Nothing (Ident "n" 184))) [(Alt (263,19) (LiteralPattern (Int (Ident "_" 187) 1)) (SimpleRhs (263,24) (Literal (String "first")) [])),(Alt (263,33) (LiteralPattern (Int (Ident "_" 190) 2)) (SimpleRhs (263,38) (Literal (String "second")) [])),(Alt (263,48) (LiteralPattern (Int (Ident "_" 193) 3)) (SimpleRhs (263,53) (Literal (String "third")) [])),(Alt (263,62) (VariablePattern (Ident "_" 196)) (SimpleRhs (263,67) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "n" 184)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "th"))) []))]) []))])
+,(TypeSig (265,1) [(Ident "done" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))))
+,(FunctionDecl (266,1) (Ident "done" 0) [(Equation (266,1) (FunLhs (Ident "done" 0) [(VariablePattern (Ident "mesg" 198)),(VariablePattern (Ident "ntest" 198)),(VariablePattern (Ident "stamps" 198))]) (SimpleRhs (266,26) (Do [] (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "mesg" 198))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "ntest" 198)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " test")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Paren (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "ntest" 198))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Literal (Int (Ident "_" 221) 2))) (Literal (String "s")) (Literal (String "")))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "table" 199)))))))))) [(PatternDecl (270,3) (VariablePattern (Ident "table" 199)) (SimpleRhs (270,11) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "display" 199))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "entry" 199)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Sort") (Ident "mergeSort" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "leqPair" 0))) (Variable (QualIdent (Just "Prelude") (Ident "<=" 0)))) (Paren (Apply (Variable (QualIdent (Just "Sort") (Ident "leqList" 0))) (Variable (QualIdent (Just "Sort") (Ident "leqString" 0)))))))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "pairLength" 199)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Variable (QualIdent (Just "List") (Ident "group" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Sort") (Ident "mergeSort" 0))) (Paren (Apply (Variable (QualIdent (Just "Sort") (Ident "leqList" 0))) (Variable (QualIdent (Just "Sort") (Ident "leqString" 0)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "null" 0))))))))))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Variable (QualIdent Nothing (Ident "stamps" 198)))) [])),(FunctionDecl (280,3) (Ident "display" 199) [(Equation (280,3) (FunLhs (Ident "display" 199) [(ListPattern [])]) (SimpleRhs (280,24) (Literal (String ".\n")) [])),(Equation (281,3) (FunLhs (Ident "display" 199) [(ListPattern [(VariablePattern (Ident "x" 203))])]) (SimpleRhs (281,24) (InfixApply (Literal (String " - ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 203))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".\n")))) [])),(Equation (282,3) (FunLhs (Ident "display" 199) [(AsPattern (Ident "xs" 205) (ParenPattern (InfixPattern (VariablePattern (Ident "_" 206)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "_" 207)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 208))))))]) (SimpleRhs (282,24) (InfixApply (Literal (String ".\n")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".")))) (Variable (QualIdent Nothing (Ident "xs" 205))))))) []))]),(FunctionDecl (284,3) (Ident "pairLength" 199) [(Equation (284,3) (FunLhs (Ident "pairLength" 199) [(AsPattern (Ident "xss" 210) (ParenPattern (InfixPattern (VariablePattern (Ident "xs" 210)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 211)))))]) (SimpleRhs (284,27) (Tuple [(Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "xss" 210)))),(Variable (QualIdent Nothing (Ident "xs" 210)))]) []))]),(FunctionDecl (286,3) (Ident "entry" 199) [(Equation (286,3) (FunLhs (Ident "entry" 199) [(TuplePattern [(VariablePattern (Ident "n" 213)),(VariablePattern (Ident "xs" 213))])]) (SimpleRhs (286,18) (InfixApply (Apply (Apply (Variable (QualIdent Nothing (Ident "percentage" 199))) (Variable (QualIdent Nothing (Ident "n" 213)))) (Variable (QualIdent Nothing (Ident "ntest" 198)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "concat" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "List") (Ident "intersperse" 0))) (Literal (String ", "))) (Variable (QualIdent Nothing (Ident "xs" 213)))))))) []))]),(FunctionDecl (288,3) (Ident "percentage" 199) [(Equation (288,3) (FunLhs (Ident "percentage" 199) [(VariablePattern (Ident "n" 215)),(VariablePattern (Ident "m" 215))]) (SimpleRhs (288,20) (Let [(PatternDecl (288,24) (VariablePattern (Ident "s" 217)) (SimpleRhs (288,28) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Paren (InfixApply (Paren (InfixApply (Literal (Int (Ident "_" 219) 100)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "n" 215))))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Variable (QualIdent Nothing (Ident "m" 215)))))) []))] (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "replicate" 0))) (Paren (InfixApply (Literal (Int (Ident "_" 220) 3)) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "s" 217))))))) (Literal (Char ' '))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "s" 217))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "%"))))) []))])]))])
+,(TypeSig (293,1) [(Ident "leqPair" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))))
+,(FunctionDecl (294,1) (Ident "leqPair" 0) [(Equation (294,1) (FunLhs (Ident "leqPair" 0) [(VariablePattern (Ident "leqa" 222)),(VariablePattern (Ident "leqb" 222)),(TuplePattern [(VariablePattern (Ident "x1" 222)),(VariablePattern (Ident "y1" 222))]),(TuplePattern [(VariablePattern (Ident "x2" 222)),(VariablePattern (Ident "y2" 222))])]) (GuardedRhs [(CondExpr (295,3) (InfixApply (Variable (QualIdent Nothing (Ident "x1" 222))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "x2" 222)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "leqb" 222))) (Variable (QualIdent Nothing (Ident "y1" 222)))) (Variable (QualIdent Nothing (Ident "y2" 222))))),(CondExpr (296,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "leqa" 222))) (Variable (QualIdent Nothing (Ident "x1" 222)))) (Variable (QualIdent Nothing (Ident "x2" 222)))))] []))])
+,(TypeSig (298,1) [(Ident "leList" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))))
+,(FunctionDecl (299,1) (Ident "leList" 0) [(Equation (299,1) (FunLhs (Ident "leList" 0) [(VariablePattern (Ident "_" 225)),(ListPattern []),(ListPattern [])]) (SimpleRhs (299,27) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (300,1) (FunLhs (Ident "leList" 0) [(VariablePattern (Ident "_" 228)),(ListPattern []),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 229)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 230))))]) (SimpleRhs (300,27) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (301,1) (FunLhs (Ident "leList" 0) [(VariablePattern (Ident "_" 233)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 234)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 235)))),(ListPattern [])]) (SimpleRhs (301,27) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (302,1) (FunLhs (Ident "leList" 0) [(VariablePattern (Ident "le" 237)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 237)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 237)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 237)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 237))))]) (SimpleRhs (302,27) (InfixApply (Apply (Apply (Variable (QualIdent Nothing (Ident "le" 237))) (Variable (QualIdent Nothing (Ident "x" 237)))) (Variable (QualIdent Nothing (Ident "y" 237)))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "x" 237))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "y" 237)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "leList" 0))) (Variable (QualIdent Nothing (Ident "le" 237)))) (Variable (QualIdent Nothing (Ident "xs" 237)))) (Variable (QualIdent Nothing (Ident "ys" 237)))))) []))])
+,(TypeSig (304,1) [(Ident "valuesOf" 0)] (ArrowType (VariableType (Ident "a" 0)) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (305,1) (Ident "valuesOf" 0) [(Equation (305,1) (FunLhs (Ident "valuesOf" 0) []) (SimpleRhs (306,3) (InfixApply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "rndLevelDiagFlat" 0))) (Literal (Int (Ident "_" 241) 3))) (Literal (Int (Ident "_" 242) 2008))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Variable (QualIdent (Just "Meta") (Ident "searchTree" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (LeftSection (Variable (QualIdent (Just "Prelude") (Ident "id" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0)))))) []))])
+,(TypeSig (315,1) [(Ident "rndLevelDiag" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (316,1) (Ident "rndLevelDiag" 0) [(Equation (316,1) (FunLhs (Ident "rndLevelDiag" 0) [(VariablePattern (Ident "rnd" 243)),(VariablePattern (Ident "t" 243))]) (SimpleRhs (317,3) (ListCompr (Variable (QualIdent Nothing (Ident "x" 245))) [(StmtBind (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Value" 0)) [(VariablePattern (Ident "x" 245))]) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "diagonal" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "rndLevels" 0))) (Variable (QualIdent Nothing (Ident "rnd" 243)))) (List [(Variable (QualIdent Nothing (Ident "t" 243)))])))))]) []))])
+,(TypeSig (319,1) [(Ident "rndLevels" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))])) (ListType (ListType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]))))))
+,(FunctionDecl (320,1) (Ident "rndLevels" 0) [(Equation (320,1) (FunLhs (Ident "rndLevels" 0) [(VariablePattern (Ident "rnd" 246)),(VariablePattern (Ident "ts" 246))]) (SimpleRhs (321,3) (IfThenElse (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "ts" 246)))) (List []) (InfixApply (Variable (QualIdent Nothing (Ident "ts" 246))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "rndLevels" 0))) (Variable (QualIdent Nothing (Ident "r" 247)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "concat" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "zipWith" 0))) (Variable (QualIdent (Just "EasyCheck") (Ident "shuffle" 0)))) (Variable (QualIdent Nothing (Ident "rs" 247)))) (ListCompr (Variable (QualIdent Nothing (Ident "us" 249))) [(StmtBind (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Choice" 0)) [(VariablePattern (Ident "us" 249))]) (Variable (QualIdent Nothing (Ident "ts" 246))))])))))))) [(PatternDecl (324,3) (InfixPattern (VariablePattern (Ident "r" 247)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "rs" 247))) (SimpleRhs (324,10) (Apply (Variable (QualIdent (Just "RandomExternal") (Ident "split" 0))) (Variable (QualIdent Nothing (Ident "rnd" 246)))) []))]))])
+,(TypeSig (328,1) [(Ident "rndLevelDiagFlat" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))))
+,(FunctionDecl (329,1) (Ident "rndLevelDiagFlat" 0) [(Equation (329,1) (FunLhs (Ident "rndLevelDiagFlat" 0) [(VariablePattern (Ident "d" 250)),(VariablePattern (Ident "rnd" 250)),(VariablePattern (Ident "t" 250))]) (SimpleRhs (330,3) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "concat" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "transpose" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "zipWith" 0))) (Variable (QualIdent (Just "EasyCheck") (Ident "rndLevelDiag" 0)))) (Variable (QualIdent Nothing (Ident "rs" 251)))) (Paren (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "flatRep" 0))) (Variable (QualIdent Nothing (Ident "d" 250)))) (List [(Variable (QualIdent Nothing (Ident "t" 250)))]))))))) [(PatternDecl (332,3) (VariablePattern (Ident "rs" 251)) (SimpleRhs (332,8) (Apply (Variable (QualIdent (Just "RandomExternal") (Ident "split" 0))) (Variable (QualIdent Nothing (Ident "rnd" 250)))) []))]))])
+,(TypeSig (334,1) [(Ident "flat" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (335,1) (Ident "flat" 0) [(Equation (335,1) (FunLhs (Ident "flat" 0) [(VariablePattern (Ident "t" 253))]) (SimpleRhs (335,10) (Case (Variable (QualIdent Nothing (Ident "t" 253))) [(Alt (336,12) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Value" 0)) [(VariablePattern (Ident "_" 256))]) (SimpleRhs (336,23) (List [(Variable (QualIdent Nothing (Ident "t" 253)))]) [])),(Alt (337,12) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Choice" 0)) [(VariablePattern (Ident "ts" 258))]) (SimpleRhs (337,25) (Variable (QualIdent Nothing (Ident "ts" 258))) [])),(Alt (338,12) (VariablePattern (Ident "_" 261)) (SimpleRhs (338,17) (List []) []))]) []))])
+,(TypeSig (340,1) [(Ident "flatRep" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))])) (ListType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (341,1) (Ident "flatRep" 0) [(Equation (341,1) (FunLhs (Ident "flatRep" 0) [(VariablePattern (Ident "n" 263)),(VariablePattern (Ident "ts" 263))]) (GuardedRhs [(CondExpr (341,14) (InfixApply (Variable (QualIdent Nothing (Ident "n" 263))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 265) 0))) (Variable (QualIdent Nothing (Ident "ts" 263)))),(CondExpr (342,14) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "flatRep" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 263))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 266) 1))))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "concatMap" 0))) (Variable (QualIdent (Just "EasyCheck") (Ident "flat" 0)))) (Variable (QualIdent Nothing (Ident "ts" 263)))))))] []))])
+,(TypeSig (352,1) [(Ident "diagonal" 0)] (ArrowType (ListType (ListType (VariableType (Ident "a" 0)))) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (353,1) (Ident "diagonal" 0) [(Equation (353,1) (FunLhs (Ident "diagonal" 0) []) (SimpleRhs (353,12) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "concat" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent Nothing (Ident "diags" 268)))) (List []))) [(FunctionDecl (355,3) (Ident "diags" 268) [(Equation (355,3) (FunLhs (Ident "diags" 268) [(ListPattern []),(VariablePattern (Ident "ys" 269))]) (SimpleRhs (355,21) (Variable (QualIdent Nothing (Ident "ys" 269))) [])),(Equation (356,3) (FunLhs (Ident "diags" 268) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 271)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 271)))),(VariablePattern (Ident "ys" 271))]) (SimpleRhs (356,21) (InfixApply (List [(Variable (QualIdent Nothing (Ident "x" 271)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "merge" 268))) (Variable (QualIdent Nothing (Ident "xs" 271)))) (Variable (QualIdent Nothing (Ident "ys" 271))))) []))]),(FunctionDecl (358,3) (Ident "merge" 268) [(Equation (358,3) (FunLhs (Ident "merge" 268) [(ListPattern []),(VariablePattern (Ident "ys" 273))]) (SimpleRhs (358,27) (Variable (QualIdent Nothing (Ident "ys" 273))) [])),(Equation (359,3) (FunLhs (Ident "merge" 268) [(AsPattern (Ident "xs" 275) (ParenPattern (InfixPattern (VariablePattern (Ident "_" 276)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 277))))),(ListPattern [])]) (SimpleRhs (359,27) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (RightSection (InfixConstr (QualIdent Nothing (Ident ":" 0))) (List []))) (Variable (QualIdent Nothing (Ident "xs" 275)))) [])),(Equation (360,3) (FunLhs (Ident "merge" 268) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 279)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 279)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 279)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 279))))]) (SimpleRhs (360,27) (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 279))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "y" 279))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "merge" 268))) (Variable (QualIdent Nothing (Ident "xs" 279)))) (Variable (QualIdent Nothing (Ident "ys" 279))))) []))])]))])
+,(TypeSig (369,1) [(Ident "shuffle" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (370,1) (Ident "shuffle" 0) [(Equation (370,1) (FunLhs (Ident "shuffle" 0) [(VariablePattern (Ident "rnd" 281)),(VariablePattern (Ident "l" 281))]) (SimpleRhs (370,17) (Apply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "shuffleWithLen" 0))) (Paren (Apply (Variable (QualIdent (Just "RandomExternal") (Ident "nextInt" 0))) (Variable (QualIdent Nothing (Ident "rnd" 281)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "l" 281)))))) (Variable (QualIdent Nothing (Ident "l" 281)))) []))])
+,(TypeSig (372,1) [(Ident "shuffleWithLen" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))))
+,(FunctionDecl (373,1) (Ident "shuffleWithLen" 0) [(Equation (373,1) (FunLhs (Ident "shuffleWithLen" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "r" 283)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "rs" 283)))),(VariablePattern (Ident "len" 283)),(VariablePattern (Ident "xs" 283))]) (GuardedRhs [(CondExpr (374,3) (InfixApply (Variable (QualIdent Nothing (Ident "len" 283))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 286) 0))) (List [])),(CondExpr (375,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "z" 284))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "shuffleWithLen" 0))) (Variable (QualIdent Nothing (Ident "rs" 283)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "len" 283))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 287) 1))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ys" 284))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "zs" 284))))))))] [(PatternDecl (377,3) (TuplePattern [(VariablePattern (Ident "ys" 284)),(InfixPattern (VariablePattern (Ident "z" 284)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "zs" 284)))]) (SimpleRhs (377,15) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "splitAt" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Integer") (Ident "abs" 0))) (Variable (QualIdent Nothing (Ident "r" 283)))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Variable (QualIdent Nothing (Ident "len" 283)))))) (Variable (QualIdent Nothing (Ident "xs" 283)))) []))]))])
+,(TypeSig (380,1) [(Ident "transpose" 0)] (ArrowType (ListType (ListType (VariableType (Ident "a" 0)))) (ListType (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (381,1) (Ident "transpose" 0) [(Equation (381,1) (FunLhs (Ident "transpose" 0) [(ListPattern [])]) (SimpleRhs (381,16) (List []) [])),(Equation (382,1) (FunLhs (Ident "transpose" 0) [(ParenPattern (InfixPattern (ListPattern []) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xss" 290))))]) (SimpleRhs (382,24) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "transpose" 0))) (Variable (QualIdent Nothing (Ident "xss" 290)))) [])),(Equation (383,1) (FunLhs (Ident "transpose" 0) [(ParenPattern (InfixPattern (ParenPattern (InfixPattern (VariablePattern (Ident "x" 292)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 292)))) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xss" 292))))]) (SimpleRhs (384,5) (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 292))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (ListCompr (Variable (QualIdent Nothing (Ident "h" 294))) [(StmtBind (ParenPattern (InfixPattern (VariablePattern (Ident "h" 294)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 295)))) (Variable (QualIdent Nothing (Ident "xss" 292))))]))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "EasyCheck") (Ident "transpose" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "xs" 292))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (ListCompr (Variable (QualIdent Nothing (Ident "t" 296))) [(StmtBind (ParenPattern (InfixPattern (VariablePattern (Ident "_" 297)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "t" 296)))) (Variable (QualIdent Nothing (Ident "xss" 292))))]))))) []))])
+,(TypeSig (386,1) [(Ident "evalModeIsOrBased" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]))
+,(FunctionDecl (387,1) (Ident "evalModeIsOrBased" 0) [(Equation (387,1) (FunLhs (Ident "evalModeIsOrBased" 0) []) (SimpleRhs (387,21) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "getSearchTree" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "id" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent (Just "Prelude") (Ident "unknown" 0)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Value" 0))) (Tuple []))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/EasyCheck.efc b/src/lib/Curry/Module/.curry/EasyCheck.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/EasyCheck.efc
@@ -0,0 +1,1 @@
+Prog "EasyCheck" ["Integer","List","Meta","Prelude","RandomExternal","Sort","Read"] [TypeSyn ((Nothing,Nothing,"EasyCheck","Prop")) Public [] (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]),Type ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) Private [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) 3 Private [TCons ((Nothing,Nothing,"EasyCheck","Result")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]],Type ((Nothing,Nothing,"EasyCheck","Result")) Public [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),"EasyCheck","Undef")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),"EasyCheck","Ok")) 0 Public [],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Result") [])),"EasyCheck","Falsified")) 1 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Result") []))),"EasyCheck","Ambigious")) 2 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]],Type ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (TCons (Nothing,Nothing,"EasyCheck","Config") [])))),"EasyCheck","Config")) Private [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (TCons (Nothing,Nothing,"EasyCheck","Config") [])))),"EasyCheck","Config")) 3 Private [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))]]] [Func ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),"EasyCheck","notest")) 0 Private (TCons ((Nothing,Nothing,"EasyCheck","Test")) []) (Rule [] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),"EasyCheck","Undef")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Result") [])),"EasyCheck","result")) 1 Public (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Test")) []) (TCons ((Nothing,Nothing,"EasyCheck","Result")) [])) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [(Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)]) (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))),"EasyCheck","setResult")) 2 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Result")) []) (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Test")) []) (TCons ((Nothing,Nothing,"EasyCheck","Test")) []))) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),1),(Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [(Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"EasyCheck","args")) 1 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Test")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [(Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"EasyCheck","stamp")) 1 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Test")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [(Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))),"EasyCheck","updArgs")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Test")) []) (TCons ((Nothing,Nothing,"EasyCheck","Test")) []))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),1),(Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [(Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5))])])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))),"EasyCheck","updStamp")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Test")) []) (TCons ((Nothing,Nothing,"EasyCheck","Test")) []))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),1),(Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [(Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Test") [])))),"EasyCheck","Test")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5))]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) 2 Public (FuncType (TVar 0) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 194]),3),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 208) (TVar 209)) (FuncType (TVar 208) (TVar 209))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 207) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 207])),"EasyCheck","valuesOf")) [],Var ((Just (TVar 0),1))])] (Let [((Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),4),Let [((Just (TVar 195),5),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 213) (TVar 214)) (FuncType (TVar 213) (TVar 214))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 210) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 210])),"EasyCheck","valuesOf")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 211) (TVar 212)) (FuncType (TVar 211) (TVar 212))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 194]),3))]])] (Case  Rigid (Var ((Just (TVar 195),5))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 232) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 232]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 232]))),"Prelude",":")) [(Just (TVar 196),6),(Just (TVar 197),7)]) (Case  Rigid (Var ((Just (TVar 196),6))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Var ((Just (TVar 197),7))) [Branch (Pattern ((Nothing,Just (TVar 218),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),"EasyCheck","Ok")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 219) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 219]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 219]))),"Prelude",":")) [(Just (TVar 199),8),(Just (TVar 200),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Result") []))),"EasyCheck","Ambigious")) [Var ((Just (TVar 195),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 216) (TVar 217)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 216]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 217]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 215) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 194]),3))]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Var ((Just (TVar 197),7))) [Branch (Pattern ((Nothing,Just (TVar 226),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Result") [])),"EasyCheck","Falsified")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 221) (TVar 222)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 221]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 222]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 220) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 194]),3))]]),Branch (Pattern ((Nothing,Just (FuncType (TVar 227) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 227]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 227]))),"Prelude",":")) [(Just (TVar 202),10),(Just (TVar 203),11)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Result") []))),"EasyCheck","Ambigious")) [Var ((Just (TVar 195),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 224) (TVar 225)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 224]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 225]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 223) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 194]),3))]])])]),Branch (Pattern ((Nothing,Just (TVar 233),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Result") []))),"EasyCheck","Ambigious")) [Comb ConsCall ((Nothing,Just (TVar 228),"Prelude","[]")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 230) (TVar 231)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 230]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 231]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 229) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 194]),3))]])]))] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Result") []) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))),"EasyCheck","setResult")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),4)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),"EasyCheck","notest")) []],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),"Prelude","[]")) []])))),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","is")) 2 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1),(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","is._#lambda3")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 220) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","is._#lambda3")) 2 Private (FuncType (FuncType (TVar 220) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 220]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (FuncType (TVar 220) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 220) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]))),"Prelude",":")) [(Just (TVar 220),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]),4)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 220) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 220) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 220) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 220),3))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 220) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]))),"Prelude",":")) [(Just (TVar 220),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]),6)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 220]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","isAlways")) 1 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","all")) []])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","isEventually")) 1 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","any")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","prop")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","uniquely")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","uniquely")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","is")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","id")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","always")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"Prelude","flip")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","isAlways")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","id")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","eventually")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"Prelude","flip")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","isEventually")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","id")) []])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","failing")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) []])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","successful")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) []]])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","deterministic")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","is")) [Var ((Just (TVar 0),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","const")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","#")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"List","nub")) []]]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","-=-")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 5,TVar 5]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 5,TVar 5]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","is")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 5,TVar 5]))),"Prelude","(,)")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 0),2))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 5) (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 5,TVar 5]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","uncurry")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 5) (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) []]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","<~>")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","isSameSet")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"EasyCheck","valuesOf")) [],Var ((Just (TVar 0),2))]]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","~>")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","isSubsetOf")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"EasyCheck","valuesOf")) [],Var ((Just (TVar 0),2))]]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","<~")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TVar 0),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","test")) [Var ((Just (TVar 0),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","isSubsetOf")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"EasyCheck","valuesOf")) [],Var ((Just (TVar 0),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","isSameSet")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 293]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 293])),"List","nub")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 294]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 294])),"List","nub")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","subset")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","subset")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 292]),3))]])))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","isSubsetOf")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","subset")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"List","nub")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","subset")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","\\\\")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","==>")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),"EasyCheck","notest")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),"Prelude","[]")) []])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TVar 1) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","forAll")) 3 Private (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (FuncType (TVar 1) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),1),(Just (TVar 1),2),(Just (FuncType (TVar 1) (TVar 0)),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","forAllValues")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])),"EasyCheck","valuesOf")) [],Var ((Just (TVar 1),2))],Var ((Just (FuncType (TVar 1) (TVar 0)),3))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","forAllValues")) 3 Private (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),2),(Just (FuncType (TVar 1) (TVar 0)),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"EasyCheck","diagonal")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (TVar 0)) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","forAllValues._#lambda5")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),1)),Var ((Just (FuncType (TVar 1) (TVar 0)),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 330) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 327) (TVar 330)) (FuncType (TVar 327) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","forAllValues._#lambda5")) 3 Private (FuncType (FuncType (TVar 330) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (FuncType (FuncType (TVar 327) (TVar 330)) (FuncType (TVar 327) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))) (Rule [(Just (FuncType (TVar 330) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),1),(Just (FuncType (TVar 327) (TVar 330)),2),(Just (TVar 327),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))),"EasyCheck","forAllValues._#lambda5._#lambda6")) [Var ((Just (TVar 327),3))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 330) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TVar 330) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"Prelude","apply")) [Var ((Just (FuncType (TVar 330) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 327) (TVar 330)) (FuncType (TVar 327) (TVar 330))),"Prelude","apply")) [Var ((Just (FuncType (TVar 327) (TVar 330)),2)),Var ((Just (TVar 327),3))]]])),Func ((Nothing,Just (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))),"EasyCheck","forAllValues._#lambda5._#lambda6")) 2 Private (FuncType (TVar 327) (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Test")) []) (TCons ((Nothing,Nothing,"EasyCheck","Test")) []))) (Rule [(Just (TVar 327),1),(Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))),"EasyCheck","updArgs")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 327) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 327),1))]],Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),2))])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","for")) 0 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","forAll")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","forValues")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","forAllValues")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","label")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))),"Prelude",".")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"Prelude","map")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))))),"Prelude",".")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Test") []))),"EasyCheck","updStamp")) [],Comb (ConsPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","classify")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","label")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","trivial")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","classify")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","collect")) 0 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","label")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","collectAs")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","label")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"EasyCheck","maxTest")) 1 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (TCons (Nothing,Nothing,"EasyCheck","Config") [])))),"EasyCheck","Config")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"EasyCheck","maxFail")) 1 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (TCons (Nothing,Nothing,"EasyCheck","Config") [])))),"EasyCheck","Config")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"EasyCheck","every")) 1 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (TCons (Nothing,Nothing,"EasyCheck","Config") [])))),"EasyCheck","Config")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),4)]) (Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),4)))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (TCons (Nothing,Nothing,"EasyCheck","Config") []))),"EasyCheck","setEvery")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (TCons ((Nothing,Nothing,"EasyCheck","Config")) []))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1),(Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (TCons (Nothing,Nothing,"EasyCheck","Config") [])))),"EasyCheck","Config")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (TCons (Nothing,Nothing,"EasyCheck","Config") [])))),"EasyCheck","Config")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1))])])),Func ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),"EasyCheck","easy")) 0 Private (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (Rule [] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (TCons (Nothing,Nothing,"EasyCheck","Config") [])))),"EasyCheck","Config")) [Lit (Intc  100),Lit (Intc  1000),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"EasyCheck","easy._#lambda7")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"EasyCheck","easy._#lambda7")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),Comb ConsCall ((Nothing,Just (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]))),"Prelude",":")) [Lit (Charc  ' '),Comb FuncCall ((Nothing,Just (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)]]])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Char") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"EasyCheck","easy._#lambda7._#lambda8")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"EasyCheck","easy._#lambda7._#lambda8")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Char")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  8)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),"EasyCheck","verbose")) 0 Private (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (TCons (Nothing,Nothing,"EasyCheck","Config") []))),"EasyCheck","setEvery")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"EasyCheck","verbose._#lambda9")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),"EasyCheck","easy")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"EasyCheck","verbose._#lambda9")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EasyCheck","check")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),"EasyCheck","easy")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EasyCheck","check")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),"EasyCheck","verbose")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) 1 Private (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (TVar 1) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))),"EasyCheck","forAll")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),1)),Comb FuncCall ((Nothing,Just (TVar 1),"Prelude","unknown")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck1")) 0 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck2")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck3")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck4")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]]]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck5")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","easyCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]]]]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck1")) 0 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck2")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck3")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck4")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]))))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]]]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck5")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []])))))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EasyCheck","verboseCheck")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (FuncType (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","suc")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []])),"Prelude","id")) []]]]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EasyCheck","check")) 2 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]),"EasyCheck","evalModeIsOrBased")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EasyCheck","check._#lambda10")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EasyCheck","check._#lambda10")) 3 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EasyCheck","tests")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),2)),Lit (Intc  0),Lit (Intc  0),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStrLn")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'k'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'P'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '-'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\''),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\''),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'k'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '-'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\''),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'C'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '='),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'B'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\''),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '~'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '/'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'k'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []]]]]]]]]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EasyCheck","tests")) 5 Private (FuncType (TCons ((Nothing,Nothing,"EasyCheck","Config")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"EasyCheck","Test")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))))) (Rule [(Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),5)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EasyCheck","done")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'P'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),5))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),7)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"EasyCheck","maxTest")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EasyCheck","done")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'K'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"EasyCheck","maxFail")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EasyCheck","done")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"EasyCheck","every")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"EasyCheck","args")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),6))]]],Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"EasyCheck","Result") [])),"EasyCheck","result")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),"EasyCheck","Undef")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EasyCheck","tests")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EasyCheck","Result") []),"EasyCheck","Ok")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Config") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EasyCheck","tests")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Config") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]),7)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"EasyCheck","stamp")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),5))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Result") [])),"EasyCheck","Falsified")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),8)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"EasyCheck","nth")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  1)]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"EasyCheck","args")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),6))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]])],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"EasyCheck","args")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),6))]],Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),8))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),8))]])]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"EasyCheck","Result") []))),"EasyCheck","Ambigious")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]),9),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),10)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]),9))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"EasyCheck","nth")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  1)]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"EasyCheck","args")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),6))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]])],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EasyCheck","Test") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"EasyCheck","args")) [Var ((Just (TCons (Nothing,Nothing,"EasyCheck","Test") []),6))]],Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),10))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),10))]])]]]]]]]]]])]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"EasyCheck","nth")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  3)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EasyCheck","done")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),3)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 46) (TVar 47)) (FuncType (TVar 46) (TVar 47))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 43) (TVar 44)) (FuncType (FuncType (TVar 45) (TVar 43)) (FuncType (TVar 45) (TVar 44)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"EasyCheck","done.display.199")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 40) (TVar 41)) (FuncType (FuncType (TVar 42) (TVar 40)) (FuncType (TVar 42) (TVar 41)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 7) (TVar 8)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"EasyCheck","done.entry.199")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 37) (TVar 38)) (FuncType (FuncType (TVar 39) (TVar 37)) (FuncType (TVar 39) (TVar 38)))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 9]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 9])),"Prelude","reverse")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 34) (TVar 35)) (FuncType (FuncType (TVar 36) (TVar 34)) (FuncType (TVar 36) (TVar 35)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 13) (FuncType (TVar 13) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 13]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 13]))),"Sort","mergeSort")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 11) (FuncType (TVar 11) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 12) (FuncType (TVar 12) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 11,TVar 12]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 11,TVar 12]) (TCons (Nothing,Nothing,"Prelude","Bool") []))))),"EasyCheck","leqPair")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 10) (FuncType (TVar 10) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Sort","leqList")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqString")) []]]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 31) (TVar 32)) (FuncType (FuncType (TVar 33) (TVar 31)) (FuncType (TVar 33) (TVar 32)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 15) (TVar 16)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 16]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 14]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 14])),"EasyCheck","done.pairLength.199")) []],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 28) (TVar 29)) (FuncType (FuncType (TVar 30) (TVar 28)) (FuncType (TVar 30) (TVar 29)))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 17]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 17]])),"List","group")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 25) (TVar 26)) (FuncType (FuncType (TVar 27) (TVar 25)) (FuncType (TVar 27) (TVar 26)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 19) (FuncType (TVar 19) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 19]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 19]))),"Sort","mergeSort")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 18) (FuncType (TVar 18) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Sort","leqList")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqString")) []]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 24) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 24]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 24]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 21) (TVar 22)) (FuncType (FuncType (TVar 23) (TVar 21)) (FuncType (TVar 23) (TVar 22)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 20]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) []]]]]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),3))])] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) [])],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]]]]]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"EasyCheck","done.display.199")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '-'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])),"EasyCheck","done.pairLength.199")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))],Var ((Just (TVar 0),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"EasyCheck","done.percentage.199")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),Comb FuncCall ((Nothing,Just (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  100),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","replicate")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Lit (Intc  3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]],Lit (Charc  ' ')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '%'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"EasyCheck","done.entry.199")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"EasyCheck","done.percentage.199")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","concat")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"List","intersperse")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4))]]]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))))),"EasyCheck","leqPair")) 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),3),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [(Just (TVar 0),5),(Just (TVar 1),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [(Just (TVar 0),7),(Just (TVar 1),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),5)),Var ((Just (TVar 0),7))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 1),6))],Var ((Just (TVar 1),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),5))],Var ((Just (TVar 0),7))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"EasyCheck","leList")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) [])]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),6))],Var ((Just (TVar 0),8))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),6)),Var ((Just (TVar 0),8))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"EasyCheck","leList")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9))]]])])])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"EasyCheck","valuesOf")) 0 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"EasyCheck","rndLevelDiagFlat")) [Lit (Intc  3),Lit (Intc  2008)],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Meta","searchTree")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TVar 0)),"Prelude","id")) []]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"EasyCheck","rndLevelDiag")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"EasyCheck","rndLevelDiag._#lambda15")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])),"EasyCheck","diagonal")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))),"EasyCheck","rndLevels")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),"Prelude","[]")) []]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]))),"EasyCheck","rndLevelDiag._#lambda15")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 119]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 119]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 119]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 119) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119])),"Prelude","Value")) [(Just (TVar 119),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 119) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]))),"Prelude",":")) [Var ((Just (TVar 119),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119]),"Prelude","Fail")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119]]) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119])),"Prelude","Choice")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119]]),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 119]),"Prelude","Suspend")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))),"EasyCheck","rndLevels")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),2)] (Let [((Just (TVar 69),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","split")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"EasyCheck","rndLevels._#selFP3#r")) [Var ((Just (TVar 69),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"EasyCheck","rndLevels._#selFP4#rs")) [Var ((Just (TVar 69),3))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))),"EasyCheck","rndLevels")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])),"Prelude","concat")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]])))),"Prelude","zipWith")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"EasyCheck","shuffle")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))),"EasyCheck","rndLevels._#lambda19")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),2))]]]]])]))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"EasyCheck","rndLevels._#selFP3#r")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"EasyCheck","rndLevels._#selFP4#rs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]))),"EasyCheck","rndLevels._#lambda19")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 68]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 68]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 68]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68])),"Prelude","Choice")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]),"Prelude","Fail")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 68) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68])),"Prelude","Value")) [(Just (TVar 68),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]),"Prelude","Suspend")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 68]]]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"EasyCheck","rndLevelDiagFlat")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),3)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","split")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","$")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","concat")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"EasyCheck","transpose")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])))),"Prelude","zipWith")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"EasyCheck","rndLevelDiag")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"EasyCheck","flatRep")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),"Prelude","[]")) []]]]]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])),"EasyCheck","flat")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Value")) [(Just (TVar 0),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Choice")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Fail")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Suspend")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),"Prelude","[]")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"EasyCheck","flatRep")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"EasyCheck","flatRep")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude","concatMap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])),"EasyCheck","flat")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),2))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),"Prelude","failed")) [])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"EasyCheck","diagonal")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","concat")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"EasyCheck","diagonal.diags.268")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"EasyCheck","diagonal.merge.268")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","flip")) [Comb (ConsPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"EasyCheck","diagonal.merge.268")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),6))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"EasyCheck","diagonal.diags.268")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"EasyCheck","diagonal.merge.268")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"EasyCheck","shuffle")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"EasyCheck","shuffleWithLen")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","nextInt")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"EasyCheck","shuffleWithLen")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)]) (Let [((Just (TVar 42),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 44]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 44],TCons (Nothing,Nothing,"Prelude","[]") [TVar 44]]))),"Prelude","splitAt")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","abs")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45])),"EasyCheck","shuffleWithLen._#selFP6#ys")) [Var ((Just (TVar 42),6))])] (Let [((Just (TVar 0),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 46],TCons (Nothing,Nothing,"Prelude","[]") [TVar 46]]) (TVar 46)),"EasyCheck","shuffleWithLen._#selFP7#z")) [Var ((Just (TVar 42),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 47],TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47])),"EasyCheck","shuffleWithLen._#selFP8#zs")) [Var ((Just (TVar 42),6))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),8)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"EasyCheck","shuffleWithLen")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  1)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","failed")) [])])])))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39])),"EasyCheck","shuffleWithLen._#selFP6#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 39],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 39]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 39])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 43) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]))),"Prelude",":")) [(Just (TVar 43),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]),5)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),2)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]) (TVar 39)),"EasyCheck","shuffleWithLen._#selFP7#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 39],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 39]]) (TVar 39)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 41) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]))),"Prelude","(,)")) [(Just (TVar 41),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 39) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]))),"Prelude",":")) [(Just (TVar 39),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),5)]) (Var ((Just (TVar 39),4)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39])),"EasyCheck","shuffleWithLen._#selFP8#zs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 39],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 39]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 39])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 41) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 39],TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]]))),"Prelude","(,)")) [(Just (TVar 41),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 39) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]))),"Prelude",":")) [(Just (TVar 39),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),5)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]),5)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"EasyCheck","transpose")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"EasyCheck","transpose")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),3))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"EasyCheck","transpose._#lambda24")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),3))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"EasyCheck","transpose")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"EasyCheck","transpose._#lambda28")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),3))]]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]))),"EasyCheck","transpose._#lambda24")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 151]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 151]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 151]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 151) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]))),"Prelude",":")) [(Just (TVar 151),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 151) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]))),"Prelude",":")) [Var ((Just (TVar 151),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]]))),"EasyCheck","transpose._#lambda28")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 151]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 151]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 151]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]]),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 151) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]))),"Prelude",":")) [(Just (TVar 151),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 151]]),2)))])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]),"EasyCheck","evalModeIsOrBased")) 0 Private (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]])),"Prelude","getSearchTree")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 4) (TVar 4)) (FuncType (TVar 4) (TVar 4))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 4) (TVar 4)),"Prelude","id")) [],Comb FuncCall ((Nothing,Just (TVar 4),"Prelude","unknown")) []]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Prelude","return")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Comb ConsCall ((Nothing,Just (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 4])),"Prelude","Value")) [Comb ConsCall ((Nothing,Just (TVar 4),"Prelude","()")) []]]]]))] [Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","isSameSet")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"EasyCheck","isSubsetOf")) InfixOp 4,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","is")) InfixOp 1,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","isAlways")) InfixOp 1,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","isEventually")) InfixOp 1,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","-=-")) InfixOp 1,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","#")) InfixOp 1,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","<~>")) InfixOp 1,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","~>")) InfixOp 1,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","<~")) InfixOp 1,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","trivial")) InfixOp 1,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"EasyCheck","Test") []]))),"EasyCheck","==>")) InfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/EasyCheck.fcy b/src/lib/Curry/Module/.curry/EasyCheck.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/EasyCheck.fcy
@@ -0,0 +1,1 @@
+Prog "EasyCheck" ["Integer","List","Meta","Prelude","RandomExternal","Sort","Read"] [TypeSyn ("EasyCheck","Prop") Public [] (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]),Type ("EasyCheck","Test") Private [] [Cons ("EasyCheck","Test") 3 Private [TCons ("EasyCheck","Result") [],TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]],Type ("EasyCheck","Result") Public [] [Cons ("EasyCheck","Undef") 0 Public [],Cons ("EasyCheck","Ok") 0 Public [],Cons ("EasyCheck","Falsified") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]],Cons ("EasyCheck","Ambigious") 2 Public [TCons ("Prelude","[]") [TCons ("Prelude","Bool") []],TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]],Type ("EasyCheck","Config") Private [] [Cons ("EasyCheck","Config") 3 Private [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))]]] [Func ("EasyCheck","notest") 0 Private (TCons ("EasyCheck","Test") []) (Rule [] (Comb ConsCall ("EasyCheck","Test") [Comb ConsCall ("EasyCheck","Undef") [],Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []])),Func ("EasyCheck","result") 1 Public (FuncType (TCons ("EasyCheck","Test") []) (TCons ("EasyCheck","Result") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("EasyCheck","Test") [2,3,4]) (Var 2)])),Func ("EasyCheck","setResult") 2 Private (FuncType (TCons ("EasyCheck","Result") []) (FuncType (TCons ("EasyCheck","Test") []) (TCons ("EasyCheck","Test") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("EasyCheck","Test") [3,4,5]) (Comb ConsCall ("EasyCheck","Test") [Var 1,Var 5,Var 4])])),Func ("EasyCheck","args") 1 Private (FuncType (TCons ("EasyCheck","Test") []) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("EasyCheck","Test") [2,3,4]) (Var 3)])),Func ("EasyCheck","stamp") 1 Private (FuncType (TCons ("EasyCheck","Test") []) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("EasyCheck","Test") [2,3,4]) (Var 4)])),Func ("EasyCheck","updArgs") 2 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (FuncType (TCons ("EasyCheck","Test") []) (TCons ("EasyCheck","Test") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("EasyCheck","Test") [3,4,5]) (Comb ConsCall ("EasyCheck","Test") [Var 3,Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Var 5])])),Func ("EasyCheck","updStamp") 2 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (FuncType (TCons ("EasyCheck","Test") []) (TCons ("EasyCheck","Test") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("EasyCheck","Test") [3,4,5]) (Comb ConsCall ("EasyCheck","Test") [Var 3,Var 4,Comb FuncCall ("Prelude","apply") [Var 1,Var 5]])])),Func ("EasyCheck","test") 2 Public (FuncType (TVar 0) (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") [])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","valuesOf") [],Var 1])] (Let [(4,Let [(5,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","valuesOf") [],Comb FuncCall ("Prelude","apply") [Var 2,Var 3]])] (Case  Rigid (Var 5) [Branch (Pattern ("Prelude",":") [6,7]) (Case  Rigid (Var 6) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Var 7) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("EasyCheck","Ok") []),Branch (Pattern ("Prelude",":") [8,9]) (Comb ConsCall ("EasyCheck","Ambigious") [Var 5,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","show") [],Var 3]])]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Var 7) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("EasyCheck","Falsified") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","show") [],Var 3]]),Branch (Pattern ("Prelude",":") [10,11]) (Comb ConsCall ("EasyCheck","Ambigious") [Var 5,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","show") [],Var 3]])])]),Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("EasyCheck","Ambigious") [Comb ConsCall ("Prelude","[]") [],Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","show") [],Var 3]])]))] (Comb ConsCall ("Prelude",":") [Comb FuncCall ("EasyCheck","setResult") [Var 4,Comb FuncCall ("EasyCheck","notest") []],Comb ConsCall ("Prelude","[]") []])))),Func ("EasyCheck","is") 2 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1,2] (Comb FuncCall ("EasyCheck","test") [Var 1,Comb (FuncPartCall 1) ("EasyCheck","is._#lambda3") [Var 2]])),Func ("EasyCheck","is._#lambda3") 2 Private (FuncType (FuncType (TVar 220) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 220]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","apply") [Var 1,Var 3]),Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude","False") [])]),Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") [])])),Func ("EasyCheck","isAlways") 1 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("EasyCheck","test") [Var 1],Comb (FuncPartCall 1) ("Prelude","all") []])),Func ("EasyCheck","isEventually") 1 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("EasyCheck","test") [Var 1],Comb (FuncPartCall 1) ("Prelude","any") []])),Func ("EasyCheck","prop") 0 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Comb FuncCall ("EasyCheck","uniquely") [])),Func ("EasyCheck","uniquely") 0 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("EasyCheck","is") [],Comb (FuncPartCall 1) ("Prelude","id") []])),Func ("EasyCheck","always") 0 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 1) ("EasyCheck","isAlways") [],Comb (FuncPartCall 1) ("Prelude","id") []])),Func ("EasyCheck","eventually") 0 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 1) ("EasyCheck","isEventually") [],Comb (FuncPartCall 1) ("Prelude","id") []])),Func ("EasyCheck","failing") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [1] (Comb FuncCall ("EasyCheck","test") [Var 1,Comb (FuncPartCall 1) ("Prelude","null") []])),Func ("EasyCheck","successful") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [1] (Comb FuncCall ("EasyCheck","test") [Var 1,Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Comb (FuncPartCall 1) ("Prelude","null") []]])),Func ("EasyCheck","deterministic") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [1] (Comb FuncCall ("EasyCheck","is") [Var 1,Comb (FuncPartCall 1) ("Prelude","const") [Comb ConsCall ("Prelude","True") []]])),Func ("EasyCheck","#") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1,2] (Comb FuncCall ("EasyCheck","test") [Var 1,Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","==") [Var 2],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","length") [],Comb (FuncPartCall 1) ("List","nub") []]]])),Func ("EasyCheck","-=-") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1,2] (Comb FuncCall ("EasyCheck","is") [Comb ConsCall ("Prelude","(,)") [Var 1,Var 2],Comb (FuncPartCall 1) ("Prelude","uncurry") [Comb (FuncPartCall 2) ("Prelude","==") []]])),Func ("EasyCheck","<~>") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1,2] (Comb FuncCall ("EasyCheck","test") [Var 1,Comb (FuncPartCall 1) ("EasyCheck","isSameSet") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","valuesOf") [],Var 2]]])),Func ("EasyCheck","~>") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1,2] (Comb FuncCall ("EasyCheck","test") [Var 1,Comb (FuncPartCall 1) ("EasyCheck","isSubsetOf") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","valuesOf") [],Var 2]]])),Func ("EasyCheck","<~") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1,2] (Comb FuncCall ("EasyCheck","test") [Var 1,Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("EasyCheck","isSubsetOf") [],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","valuesOf") [],Var 2]]])),Func ("EasyCheck","isSameSet") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Let [(3,Comb FuncCall ("List","nub") [Var 1])] (Let [(4,Comb FuncCall ("List","nub") [Var 2])] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("EasyCheck","subset") [Var 3,Var 4],Comb FuncCall ("EasyCheck","subset") [Var 4,Var 3]])))),Func ("EasyCheck","isSubsetOf") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("EasyCheck","subset") [Comb FuncCall ("List","nub") [Var 1],Var 2])),Func ("EasyCheck","subset") 2 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","null") [Comb FuncCall ("List","\\\\") [Var 1,Var 2]])),Func ("EasyCheck","==>") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("EasyCheck","notest") [],Comb ConsCall ("Prelude","[]") []])])),Func ("EasyCheck","forAll") 3 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (FuncType (TVar 1) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (Rule [1,2,3] (Comb FuncCall ("EasyCheck","forAllValues") [Var 1,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","valuesOf") [],Var 2],Var 3])),Func ("EasyCheck","forAllValues") 3 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (FuncType (TCons ("Prelude","[]") [TVar 1]) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","diagonal") [],Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("EasyCheck","forAllValues._#lambda5") [Var 1,Var 3],Var 2]])),Func ("EasyCheck","forAllValues._#lambda5") 3 Private (FuncType (FuncType (TVar 330) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (FuncType (FuncType (TVar 327) (TVar 330)) (FuncType (TVar 327) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("EasyCheck","forAllValues._#lambda5._#lambda6") [Var 3],Comb FuncCall ("Prelude","apply") [Var 1,Comb FuncCall ("Prelude","apply") [Var 2,Var 3]]])),Func ("EasyCheck","forAllValues._#lambda5._#lambda6") 2 Private (FuncType (TVar 327) (FuncType (TCons ("EasyCheck","Test") []) (TCons ("EasyCheck","Test") []))) (Rule [1,2] (Comb FuncCall ("EasyCheck","updArgs") [Comb (ConsPartCall 1) ("Prelude",":") [Comb FuncCall ("Prelude","show") [Var 1]],Var 2])),Func ("EasyCheck","for") 0 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Comb (FuncPartCall 2) ("EasyCheck","forAll") [Comb (FuncPartCall 1) ("Prelude","id") []])),Func ("EasyCheck","forValues") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Comb (FuncPartCall 2) ("EasyCheck","forAllValues") [Comb (FuncPartCall 1) ("Prelude","id") []])),Func ("EasyCheck","label") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Prelude","map") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("EasyCheck","updStamp") [],Comb (ConsPartCall 2) ("Prelude",":") []]])),Func ("EasyCheck","classify") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","label") [],Var 2]),Branch (Pattern ("Prelude","False") []) (Comb (FuncPartCall 1) ("Prelude","id") [])])),Func ("EasyCheck","trivial") 0 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("EasyCheck","classify") [],Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]]]]])),Func ("EasyCheck","collect") 0 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","label") [],Comb (FuncPartCall 1) ("Prelude","show") []])),Func ("EasyCheck","collectAs") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","label") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","++") [Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]],Comb (FuncPartCall 1) ("Prelude","show") []]])),Func ("EasyCheck","maxTest") 1 Private (FuncType (TCons ("EasyCheck","Config") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("EasyCheck","Config") [2,3,4]) (Var 2)])),Func ("EasyCheck","maxFail") 1 Private (FuncType (TCons ("EasyCheck","Config") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("EasyCheck","Config") [2,3,4]) (Var 3)])),Func ("EasyCheck","every") 1 Private (FuncType (TCons ("EasyCheck","Config") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("EasyCheck","Config") [2,3,4]) (Var 4)])),Func ("EasyCheck","setEvery") 2 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("EasyCheck","Config") []) (TCons ("EasyCheck","Config") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("EasyCheck","Config") [3,4,5]) (Comb ConsCall ("EasyCheck","Config") [Var 3,Var 4,Var 1])])),Func ("EasyCheck","easy") 0 Private (TCons ("EasyCheck","Config") []) (Rule [] (Comb ConsCall ("EasyCheck","Config") [Lit (Intc  100),Lit (Intc  1000),Comb (FuncPartCall 2) ("EasyCheck","easy._#lambda7") []])),Func ("EasyCheck","easy._#lambda7") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Let [(3,Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb FuncCall ("Prelude","show") [Comb FuncCall ("Prelude","+") [Var 1,Lit (Intc  1)]]])] (Comb FuncCall ("Prelude","++") [Var 3,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("EasyCheck","easy._#lambda7._#lambda8") [],Var 3]]))),Func ("EasyCheck","easy._#lambda7._#lambda8") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Char") [])) (Rule [1] (Comb FuncCall ("Prelude","chr") [Lit (Intc  8)])),Func ("EasyCheck","verbose") 0 Private (TCons ("EasyCheck","Config") []) (Rule [] (Comb FuncCall ("EasyCheck","setEvery") [Comb (FuncPartCall 2) ("EasyCheck","verbose._#lambda9") [],Comb FuncCall ("EasyCheck","easy") []])),Func ("EasyCheck","verbose._#lambda9") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 1],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Prelude","unlines") [Var 2]]])),Func ("EasyCheck","easyCheck") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb (FuncPartCall 1) ("EasyCheck","check") [Comb FuncCall ("EasyCheck","easy") []])),Func ("EasyCheck","verboseCheck") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb (FuncPartCall 1) ("EasyCheck","check") [Comb FuncCall ("EasyCheck","verbose") []])),Func ("EasyCheck","suc") 1 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (FuncType (FuncType (TVar 1) (TVar 0)) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [1] (Comb (FuncPartCall 1) ("EasyCheck","forAll") [Var 1,Comb FuncCall ("Prelude","unknown") []])),Func ("EasyCheck","easyCheck1") 0 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","easyCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]])),Func ("EasyCheck","easyCheck2") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","easyCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]]])),Func ("EasyCheck","easyCheck3") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","easyCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]]]])),Func ("EasyCheck","easyCheck4") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","easyCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]]]]])),Func ("EasyCheck","easyCheck5") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","easyCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]]]]]])),Func ("EasyCheck","verboseCheck1") 0 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","verboseCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]])),Func ("EasyCheck","verboseCheck2") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","verboseCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]]])),Func ("EasyCheck","verboseCheck3") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","verboseCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]]]])),Func ("EasyCheck","verboseCheck4") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","verboseCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]]]]])),Func ("EasyCheck","verboseCheck5") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("EasyCheck","verboseCheck") [],Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb FuncCall ("EasyCheck","suc") [Comb (FuncPartCall 1) ("Prelude","id") []]]]]]])),Func ("EasyCheck","check") 2 Private (FuncType (TCons ("EasyCheck","Config") []) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("EasyCheck","evalModeIsOrBased") [],Comb (FuncPartCall 1) ("EasyCheck","check._#lambda10") [Var 1,Var 2]])),Func ("EasyCheck","check._#lambda10") 3 Private (FuncType (TCons ("EasyCheck","Config") []) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("EasyCheck","tests") [Var 1,Var 2,Lit (Intc  0),Lit (Intc  0),Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","putStrLn") [],Comb FuncCall ("Prelude","unlines") [Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'k'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),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  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'P'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\''),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),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  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'k'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '\''),Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  '='),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'B'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  'k'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),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 ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude",":") [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  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),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  '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  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),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  ' '),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  's'),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  ' '),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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude","[]") []]]]]]]]]]]])])),Func ("EasyCheck","tests") 5 Private (FuncType (TCons ("EasyCheck","Config") []) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("EasyCheck","done") [Comb ConsCall ("Prelude",":") [Lit (Charc  'P'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]],Var 3,Var 5]),Branch (Pattern ("Prelude",":") [6,7]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Comb FuncCall ("EasyCheck","maxTest") [Var 1]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("EasyCheck","done") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'K'),Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]],Var 3,Var 5]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Comb FuncCall ("EasyCheck","maxFail") [Var 1]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("EasyCheck","done") [Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]],Var 3,Var 5]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStr") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","every") [Var 1],Var 3],Comb FuncCall ("EasyCheck","args") [Var 6]]],Case  Rigid (Comb FuncCall ("EasyCheck","result") [Var 6]) [Branch (Pattern ("EasyCheck","Undef") []) (Comb FuncCall ("EasyCheck","tests") [Var 1,Var 7,Var 3,Comb FuncCall ("Prelude","+") [Var 4,Lit (Intc  1)],Var 5]),Branch (Pattern ("EasyCheck","Ok") []) (Comb FuncCall ("EasyCheck","tests") [Var 1,Var 7,Comb FuncCall ("Prelude","+") [Var 3,Lit (Intc  1)],Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("EasyCheck","stamp") [Var 6],Var 5]]),Branch (Pattern ("EasyCheck","Falsified") [8]) (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","putStr") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("EasyCheck","nth") [Comb FuncCall ("Prelude","+") [Var 3,Lit (Intc  1)]],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Prelude","++") [Case  Rigid (Comb FuncCall ("Prelude","null") [Comb FuncCall ("EasyCheck","args") [Var 6]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]])],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","unlines") [Comb FuncCall ("EasyCheck","args") [Var 6]],Case  Rigid (Comb FuncCall ("Prelude","null") [Var 8]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb FuncCall ("Prelude","unlines") [Var 8]])]]]]]]]]),Branch (Pattern ("EasyCheck","Ambigious") [9,10]) (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","putStr") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),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  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 9],Comb FuncCall ("Prelude","++") [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  ' '),Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("EasyCheck","nth") [Comb FuncCall ("Prelude","+") [Var 3,Lit (Intc  1)]],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Prelude","++") [Case  Rigid (Comb FuncCall ("Prelude","null") [Comb FuncCall ("EasyCheck","args") [Var 6]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]])],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","unlines") [Comb FuncCall ("EasyCheck","args") [Var 6]],Case  Rigid (Comb FuncCall ("Prelude","null") [Var 10]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","++") [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",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb FuncCall ("Prelude","unlines") [Var 10]])]]]]]]]]]])]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("EasyCheck","nth") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  1)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  2)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  3)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 1],Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude","[]") []]]])])])])),Func ("EasyCheck","done") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("EasyCheck","done.display.199") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("EasyCheck","done.entry.199") [Var 2]],Comb FuncCall ("Prelude",".") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Sort","mergeSort") [Comb (FuncPartCall 2) ("EasyCheck","leqPair") [Comb (FuncPartCall 2) ("Prelude","<=") [],Comb (FuncPartCall 2) ("Sort","leqList") [Comb FuncCall ("Sort","leqString") []]]],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("EasyCheck","done.pairLength.199") []],Comb FuncCall ("Prelude",".") [Comb FuncCall ("List","group") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Sort","mergeSort") [Comb (FuncPartCall 2) ("Sort","leqList") [Comb FuncCall ("Sort","leqString") []]],Comb (FuncPartCall 1) ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Comb (FuncPartCall 1) ("Prelude","null") []]]]]]]]]],Var 3])] (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","putStr") [],Comb FuncCall ("Prelude","++") [Var 1,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 2],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Prelude","++") [Case  Rigid (Comb FuncCall ("Prelude",">=") [Var 2,Lit (Intc  2)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","[]") [])],Var 4]]]]]]))),Func ("EasyCheck","done.display.199") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]),Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]],Comb FuncCall ("Prelude","++") [Var 2,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Prelude","unlines") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","++") [],Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []]],Var 1]]])])])),Func ("EasyCheck","done.pairLength.199") 1 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","length") [Var 1],Var 2])])),Func ("EasyCheck","done.percentage.199") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","show") [Comb FuncCall ("Prelude","div") [Comb FuncCall ("Prelude","*") [Lit (Intc  100),Var 1],Var 2]])] (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","replicate") [Comb FuncCall ("Prelude","-") [Lit (Intc  3),Comb FuncCall ("Prelude","length") [Var 3]],Lit (Charc  ' ')],Comb FuncCall ("Prelude","++") [Var 3,Comb ConsCall ("Prelude",":") [Lit (Charc  '%'),Comb ConsCall ("Prelude","[]") []]]]))),Func ("EasyCheck","done.entry.199") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb FuncCall ("Prelude","++") [Comb FuncCall ("EasyCheck","done.percentage.199") [Var 3,Var 1],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","concat") [Comb FuncCall ("List","intersperse") [Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]],Var 4]]]])])),Func ("EasyCheck","leqPair") 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))))) (Rule [1,2,3,4] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","(,)") [7,8]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 5,Var 7]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 6],Var 8]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 5],Var 7]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("EasyCheck","leList") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude",":") [4,5]) (Comb ConsCall ("Prelude","True") [])]),Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude",":") [8,9]) (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 6],Var 8],Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 6,Var 8],Comb FuncCall ("EasyCheck","leList") [Var 1,Var 7,Var 9]]])])])),Func ("EasyCheck","valuesOf") 0 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("EasyCheck","rndLevelDiagFlat") [Lit (Intc  3),Lit (Intc  2008)],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Meta","searchTree") [],Comb (FuncPartCall 1) ("Prelude","$##") [Comb (FuncPartCall 1) ("Prelude","id") []]]])),Func ("EasyCheck","rndLevelDiag") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("EasyCheck","rndLevelDiag._#lambda15") [],Comb ConsCall ("Prelude","[]") [],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("EasyCheck","diagonal") [],Comb FuncCall ("EasyCheck","rndLevels") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]])),Func ("EasyCheck","rndLevelDiag._#lambda15") 2 Private (FuncType (TCons ("Prelude","SearchTree") [TVar 119]) (FuncType (TCons ("Prelude","[]") [TVar 119]) (TCons ("Prelude","[]") [TVar 119]))) (Rule [1,2] (Case  Rigid (Var 1) [Branch (Pattern ("Prelude","Value") [3]) (Comb ConsCall ("Prelude",":") [Var 3,Var 2]),Branch (Pattern ("Prelude","Fail") []) (Var 2),Branch (Pattern ("Prelude","Choice") [4]) (Var 2),Branch (Pattern ("Prelude","Suspend") []) (Var 2)])),Func ("EasyCheck","rndLevels") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]]))) (Rule [1,2] (Let [(3,Comb FuncCall ("RandomExternal","split") [Var 1])] (Let [(4,Comb FuncCall ("EasyCheck","rndLevels._#selFP3#r") [Var 3])] (Let [(5,Comb FuncCall ("EasyCheck","rndLevels._#selFP4#rs") [Var 3])] (Case  Rigid (Comb FuncCall ("Prelude","null") [Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 2,Comb FuncCall ("EasyCheck","rndLevels") [Var 4,Comb FuncCall ("Prelude","concat") [Comb FuncCall ("Prelude","zipWith") [Comb (FuncPartCall 2) ("EasyCheck","shuffle") [],Var 5,Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("EasyCheck","rndLevels._#lambda19") [],Comb ConsCall ("Prelude","[]") [],Var 2]]]]])]))))),Func ("EasyCheck","rndLevels._#selFP3#r") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Var 2)])),Func ("EasyCheck","rndLevels._#selFP4#rs") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Var 3)])),Func ("EasyCheck","rndLevels._#lambda19") 2 Private (FuncType (TCons ("Prelude","SearchTree") [TVar 68]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 68]]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 68]]]))) (Rule [1,2] (Case  Rigid (Var 1) [Branch (Pattern ("Prelude","Choice") [3]) (Comb ConsCall ("Prelude",":") [Var 3,Var 2]),Branch (Pattern ("Prelude","Fail") []) (Var 2),Branch (Pattern ("Prelude","Value") [4]) (Var 2),Branch (Pattern ("Prelude","Suspend") []) (Var 2)])),Func ("EasyCheck","rndLevelDiagFlat") 3 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("RandomExternal","split") [Var 2])] (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","concat") [],Comb FuncCall ("EasyCheck","transpose") [Comb FuncCall ("Prelude","zipWith") [Comb (FuncPartCall 2) ("EasyCheck","rndLevelDiag") [],Var 4,Comb FuncCall ("EasyCheck","flatRep") [Var 1,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []]]]]]))),Func ("EasyCheck","flat") 1 Private (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]])) (Rule [1] (Case  Rigid (Var 1) [Branch (Pattern ("Prelude","Value") [2]) (Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","Choice") [3]) (Var 3),Branch (Pattern ("Prelude","Fail") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","Suspend") []) (Comb ConsCall ("Prelude","[]") [])])),Func ("EasyCheck","flatRep") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]) (TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]))) (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 ("EasyCheck","flatRep") [Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("EasyCheck","flat") []],Var 2]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])),Func ("EasyCheck","diagonal") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","concat") [],Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("EasyCheck","diagonal.diags.268") [],Comb ConsCall ("Prelude","[]") []]])),Func ("EasyCheck","diagonal.merge.268") 2 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (ConsPartCall 2) ("Prelude",":") [],Comb ConsCall ("Prelude","[]") []],Var 1]),Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 3,Var 5],Comb FuncCall ("EasyCheck","diagonal.merge.268") [Var 4,Var 6]])])])),Func ("EasyCheck","diagonal.diags.268") 2 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("EasyCheck","diagonal.merge.268") [Var 4,Var 2]])])),Func ("EasyCheck","shuffle") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("EasyCheck","shuffleWithLen") [Comb FuncCall ("RandomExternal","nextInt") [Var 1],Comb FuncCall ("Prelude","length") [Var 2],Var 2])),Func ("EasyCheck","shuffleWithLen") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [4,5]) (Let [(6,Comb FuncCall ("Prelude","splitAt") [Comb FuncCall ("Prelude","mod") [Comb FuncCall ("Integer","abs") [Var 4],Var 2],Var 3])] (Let [(7,Comb FuncCall ("EasyCheck","shuffleWithLen._#selFP6#ys") [Var 6])] (Let [(8,Comb FuncCall ("EasyCheck","shuffleWithLen._#selFP7#z") [Var 6])] (Let [(9,Comb FuncCall ("EasyCheck","shuffleWithLen._#selFP8#zs") [Var 6])] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 8,Comb FuncCall ("EasyCheck","shuffleWithLen") [Var 5,Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  1)],Comb FuncCall ("Prelude","++") [Var 7,Var 9]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])))))])),Func ("EasyCheck","shuffleWithLen._#selFP6#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 39],TCons ("Prelude","[]") [TVar 39]]) (TCons ("Prelude","[]") [TVar 39])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude",":") [4,5]) (Var 2)])])),Func ("EasyCheck","shuffleWithLen._#selFP7#z") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 39],TCons ("Prelude","[]") [TVar 39]]) (TVar 39)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude",":") [4,5]) (Var 4)])])),Func ("EasyCheck","shuffleWithLen._#selFP8#zs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 39],TCons ("Prelude","[]") [TVar 39]]) (TCons ("Prelude","[]") [TVar 39])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude",":") [4,5]) (Var 5)])])),Func ("EasyCheck","transpose") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("EasyCheck","transpose") [Var 3]),Branch (Pattern ("Prelude",":") [4,5]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("EasyCheck","transpose._#lambda24") [],Comb ConsCall ("Prelude","[]") [],Var 3]],Comb FuncCall ("EasyCheck","transpose") [Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("EasyCheck","transpose._#lambda28") [],Comb ConsCall ("Prelude","[]") [],Var 3]]]])])])),Func ("EasyCheck","transpose._#lambda24") 2 Private (FuncType (TCons ("Prelude","[]") [TVar 151]) (FuncType (TCons ("Prelude","[]") [TVar 151]) (TCons ("Prelude","[]") [TVar 151]))) (Rule [1,2] (Case  Rigid (Var 1) [Branch (Pattern ("Prelude",":") [3,4]) (Comb ConsCall ("Prelude",":") [Var 3,Var 2]),Branch (Pattern ("Prelude","[]") []) (Var 2)])),Func ("EasyCheck","transpose._#lambda28") 2 Private (FuncType (TCons ("Prelude","[]") [TVar 151]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 151]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 151]]))) (Rule [1,2] (Case  Rigid (Var 1) [Branch (Pattern ("Prelude",":") [3,4]) (Comb ConsCall ("Prelude",":") [Var 4,Var 2]),Branch (Pattern ("Prelude","[]") []) (Var 2)])),Func ("EasyCheck","evalModeIsOrBased") 0 Private (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]) (Rule [] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","getSearchTree") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Prelude","id") [],Comb FuncCall ("Prelude","unknown") []]],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Comb ConsCall ("Prelude","Value") [Comb ConsCall ("Prelude","()") []]]]]))] [Op ("EasyCheck","isSameSet") InfixOp 4,Op ("EasyCheck","isSubsetOf") InfixOp 4,Op ("EasyCheck","is") InfixOp 1,Op ("EasyCheck","isAlways") InfixOp 1,Op ("EasyCheck","isEventually") InfixOp 1,Op ("EasyCheck","-=-") InfixOp 1,Op ("EasyCheck","#") InfixOp 1,Op ("EasyCheck","<~>") InfixOp 1,Op ("EasyCheck","~>") InfixOp 1,Op ("EasyCheck","<~") InfixOp 1,Op ("EasyCheck","trivial") InfixOp 1,Op ("EasyCheck","==>") InfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/EasyCheck.fint b/src/lib/Curry/Module/.curry/EasyCheck.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/EasyCheck.fint
@@ -0,0 +1,1 @@
+Prog "EasyCheck" ["Integer","List","Meta","Prelude","RandomExternal","Sort","Read"] [TypeSyn ("EasyCheck","Prop") Public [] (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]),Type ("EasyCheck","Result") Public [] [Cons ("EasyCheck","Undef") 0 Public [],Cons ("EasyCheck","Ok") 0 Public [],Cons ("EasyCheck","Falsified") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]],Cons ("EasyCheck","Ambigious") 2 Public [TCons ("Prelude","[]") [TCons ("Prelude","Bool") []],TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]]] [Func ("EasyCheck","result") 1 Public (FuncType (TCons ("EasyCheck","Test") []) (TCons ("EasyCheck","Result") [])) (Rule [] (Var 0)),Func ("EasyCheck","test") 2 Public (FuncType (TVar 0) (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") [])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","is") 2 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","isAlways") 1 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","isEventually") 1 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","prop") 0 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Var 0)),Func ("EasyCheck","uniquely") 0 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Var 0)),Func ("EasyCheck","always") 0 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Var 0)),Func ("EasyCheck","eventually") 0 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Var 0)),Func ("EasyCheck","failing") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Var 0)),Func ("EasyCheck","successful") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Var 0)),Func ("EasyCheck","deterministic") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (Rule [] (Var 0)),Func ("EasyCheck","#") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","-=-") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","<~>") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","~>") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","<~") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","isSameSet") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("EasyCheck","isSubsetOf") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("EasyCheck","==>") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","for") 0 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","forValues") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","label") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","classify") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (Rule [] (Var 0)),Func ("EasyCheck","trivial") 0 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","collect") 0 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (Rule [] (Var 0)),Func ("EasyCheck","collectAs") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (Rule [] (Var 0)),Func ("EasyCheck","easyCheck") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","verboseCheck") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","easyCheck1") 0 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","easyCheck2") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","easyCheck3") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","easyCheck4") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","easyCheck5") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","verboseCheck1") 0 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","verboseCheck2") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","verboseCheck3") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","verboseCheck4") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []]))))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","verboseCheck5") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (FuncType (TVar 4) (TCons ("Prelude","[]") [TCons ("EasyCheck","Test") []])))))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EasyCheck","valuesOf") 0 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("EasyCheck","diagonal") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0))] [Op ("EasyCheck","isSameSet") InfixOp 4,Op ("EasyCheck","isSubsetOf") InfixOp 4,Op ("EasyCheck","is") InfixOp 1,Op ("EasyCheck","isAlways") InfixOp 1,Op ("EasyCheck","isEventually") InfixOp 1,Op ("EasyCheck","-=-") InfixOp 1,Op ("EasyCheck","#") InfixOp 1,Op ("EasyCheck","<~>") InfixOp 1,Op ("EasyCheck","~>") InfixOp 1,Op ("EasyCheck","<~") InfixOp 1,Op ("EasyCheck","trivial") InfixOp 1,Op ("EasyCheck","==>") InfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/EasyCheck.uacy b/src/lib/Curry/Module/.curry/EasyCheck.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/EasyCheck.uacy
@@ -0,0 +1,79 @@
+CurryProg "EasyCheck"
+ ["Prelude","List","Sort","Meta","Integer","Read","RandomExternal"]
+ [CType ("EasyCheck","Test") Private [] [CCons ("EasyCheck","Test") 3 Private [CTCons ("EasyCheck","Result") [],CTCons ("Prelude","[]") [CTCons ("Prelude","String") []],CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]],
+  CType ("EasyCheck","Result") Public [] [CCons ("EasyCheck","Undef") 0 Public [],CCons ("EasyCheck","Ok") 0 Public [],CCons ("EasyCheck","Falsified") 1 Public [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]],CCons ("EasyCheck","Ambigious") 2 Public [CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []],CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]],
+  CTypeSyn ("EasyCheck","Prop") Public [] (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]),
+  CType ("EasyCheck","Config") Private [] [CCons ("EasyCheck","Config") 3 Private [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","String") []))]]]
+ [CFunc ("EasyCheck","#") 2 Public (CFuncType (CTVar (0,"_")) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"n"))) (CVar (2,"x0"))))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","length"))) (CSymbol ("List","nub")))))] []]),
+  CFunc ("EasyCheck","-=-") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","is")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"x"))) (CVar (1,"y")))) (CApply (CSymbol ("Prelude","uncurry")) (CSymbol ("Prelude","=="))))] []]),
+  CFunc ("EasyCheck","<~") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("EasyCheck","isSubsetOf")) (CVar (2,"x0"))) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (1,"y"))))))] []]),
+  CFunc ("EasyCheck","<~>") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CApply (CSymbol ("EasyCheck","isSameSet")) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (1,"y")))))] []]),
+  CFunc ("EasyCheck","==>") 2 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPComb ("Prelude","True") [],CPVar (0,"p")] [(CSymbol ("Prelude","success"),CVar (0,"p"))] [],CRule [CPComb ("Prelude","False") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("EasyCheck","notest"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("EasyCheck","always") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("EasyCheck","Prop") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("EasyCheck","isAlways")) (CVar (0,"x0"))) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","args") 1 Private (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPComb ("EasyCheck","Test") [CPVar (0,"_"),CPVar (1,"a"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"a"))] []]),
+  CFunc ("EasyCheck","check") 2 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"config"),CPVar (1,"p")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"isOrBased")) (CSymbol ("EasyCheck","evalModeIsOrBased")),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (2,"isOrBased"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("EasyCheck","tests")) (CVar (0,"config"))) (CVar (1,"p"))) (CLit (CIntc 0))) (CLit (CIntc 0))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStrLn"))) (CApply (CSymbol ("Prelude","unlines")) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'P'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\''))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\''))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\''))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'C'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '='))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'B'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\''))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '~'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '/'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CSymbol ("Prelude","[]"))))))))))))))])] []]),
+  CFunc ("EasyCheck","classify") 2 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("EasyCheck","Prop") [])))) (CRules CFlex [CRule [CPComb ("Prelude","True") [],CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","label")) (CVar (0,"name")))] [],CRule [CPComb ("Prelude","False") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","id"))] []]),
+  CFunc ("EasyCheck","collect") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","label"))) (CSymbol ("Prelude","show")))] []]),
+  CFunc ("EasyCheck","collectAs") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("EasyCheck","Prop") [])))) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","label"))) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"name"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))) (CVar (1,"x0"))))) (CSymbol ("Prelude","show"))))] []]),
+  CFunc ("EasyCheck","deterministic") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","is")) (CVar (0,"x"))) (CApply (CSymbol ("Prelude","const")) (CSymbol ("Prelude","True"))))] []]),
+  CFunc ("EasyCheck","diagonal") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","concat"))) (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("EasyCheck","diags"))) (CSymbol ("Prelude","[]"))))] [CLocalFunc (CFunc ("EasyCheck","diags") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("EasyCheck","merge")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []])),CLocalFunc (CFunc ("EasyCheck","merge") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPAs (3,"xs") (CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")]),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (4,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x0"))) (CSymbol ("Prelude","[]"))))) (CVar (3,"xs")))] [],CRule [CPComb ("Prelude",":") [CPVar (5,"x"),CPVar (6,"xs")],CPComb ("Prelude",":") [CPVar (7,"y"),CPVar (8,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x"))) (CVar (7,"y")))) (CApply (CApply (CSymbol ("EasyCheck","merge")) (CVar (6,"xs"))) (CVar (8,"ys"))))] []]))]]),
+  CFunc ("EasyCheck","done") 3 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"mesg"),CPVar (1,"ntest"),CPVar (2,"stamps")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStr"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"mesg"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (1,"ntest")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (1,"ntest"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]")))) (CVar (3,"table"))))))))])] [CLocalPat (CPVar (3,"table")) (CApply (CApply (CSymbol ("Prelude","$")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","display"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("EasyCheck","entry")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","reverse"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Sort","mergeSort")) (CApply (CApply (CSymbol ("EasyCheck","leqPair")) (CSymbol ("Prelude","<="))) (CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqString")))))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("EasyCheck","pairLength")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("List","group"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Sort","mergeSort")) (CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqString"))))) (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CSymbol ("Prelude","null")))))))))))) (CVar (2,"stamps"))) [],CLocalFunc (CFunc ("EasyCheck","display") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))] [],CRule [CPComb ("Prelude",":") [CPVar (4,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"x"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))] [],CRule [CPAs (8,"xs") (CPComb ("Prelude",":") [CPVar (5,"_"),CPComb ("Prelude",":") [CPVar (6,"_"),CPVar (7,"_")]])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","unlines")) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (9,"x0")] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (9,"x0"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))))) (CVar (8,"xs")))))] []])),CLocalFunc (CFunc ("EasyCheck","pairLength") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPAs (6,"xss") (CPComb ("Prelude",":") [CPVar (4,"xs"),CPVar (5,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","length")) (CVar (6,"xss")))) (CVar (4,"xs")))] []])),CLocalFunc (CFunc ("EasyCheck","entry") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (4,"n"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("EasyCheck","percentage")) (CVar (4,"n"))) (CVar (1,"ntest")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CSymbol ("List","intersperse")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))) (CVar (5,"xs"))))))] []])),CLocalFunc (CFunc ("EasyCheck","percentage") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (4,"n"),CPVar (5,"m")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (6,"s")) (CApply (CSymbol ("Prelude","show")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 100))) (CVar (4,"n")))) (CVar (5,"m")))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","replicate")) (CApply (CApply (CSymbol ("Prelude","-")) (CLit (CIntc 3))) (CApply (CSymbol ("Prelude","length")) (CVar (6,"s"))))) (CLit (CCharc ' ')))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (6,"s"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '%'))) (CSymbol ("Prelude","[]"))))))] []]))]]),
+  CFunc ("EasyCheck","easy") 0 Private (CTCons ("EasyCheck","Config") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Config")) (CLit (CIntc 100))) (CLit (CIntc 1000))) (CLambda [CPVar (0,"n"),CPVar (1,"_")] (CLetDecl [CLocalPat (CPVar (2,"s")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CSymbol ("Prelude","show")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"n"))) (CLit (CIntc 1))))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"s"))) (CListComp (CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 8))) [CSPat (CPVar (3,"_")) (CVar (2,"s"))])))))] []]),
+  CFunc ("EasyCheck","easyCheck") 0 Public (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","check")) (CSymbol ("EasyCheck","easy")))] []]),
+  CFunc ("EasyCheck","easyCheck1") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","easyCheck2") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") []))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id")))))] []]),
+  CFunc ("EasyCheck","easyCheck3") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))))] []]),
+  CFunc ("EasyCheck","easyCheck4") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") []))))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id")))))))] []]),
+  CFunc ("EasyCheck","easyCheck5") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])))))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","easyCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))))))] []]),
+  CFunc ("EasyCheck","evalModeIsOrBased") 0 Private (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CSymbol ("Prelude","getSearchTree")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","unknown"))))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x0"))) (CApply (CSymbol ("Prelude","Value")) (CSymbol ("Prelude","()")))))))] []]),
+  CFunc ("EasyCheck","eventually") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("EasyCheck","Prop") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("EasyCheck","isEventually")) (CVar (0,"x0"))) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","every") 1 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","String") [])))) (CRules CFlex [CRule [CPComb ("EasyCheck","Config") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"f")]] [(CSymbol ("Prelude","success"),CVar (2,"f"))] []]),
+  CFunc ("EasyCheck","failing") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CSymbol ("Prelude","null")))] []]),
+  CFunc ("EasyCheck","flat") 1 Private (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPVar (0,"t")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"t")) [CBranch (CPComb ("Prelude","Value") [CPVar (1,"_")]) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"t"))) (CSymbol ("Prelude","[]"))),CBranch (CPComb ("Prelude","Choice") [CPVar (2,"ts")]) (CVar (2,"ts")),CBranch (CPVar (3,"_")) (CSymbol ("Prelude","[]"))])] []]),
+  CFunc ("EasyCheck","flatRep") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"ts")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)),CVar (1,"ts")),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("EasyCheck","flatRep")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (0,"n"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("EasyCheck","flat"))) (CVar (1,"ts"))))] []]),
+  CFunc ("EasyCheck","for") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("EasyCheck","Prop") [])) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","forAll")) (CSymbol ("Prelude","id")))] []]),
+  CFunc ("EasyCheck","forAll") 3 Private (CFuncType (CFuncType (CTVar (0,"b")) (CTCons ("EasyCheck","Prop") [])) (CFuncType (CTVar (1,"a")) (CFuncType (CFuncType (CTVar (1,"a")) (CTVar (0,"b"))) (CTCons ("EasyCheck","Prop") [])))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"x"),CPVar (2,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","forAllValues")) (CVar (0,"c"))) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (1,"x")))) (CVar (2,"f")))] []]),
+  CFunc ("EasyCheck","forAllValues") 3 Private (CFuncType (CFuncType (CTVar (0,"b")) (CTCons ("EasyCheck","Prop") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"a")]) (CFuncType (CFuncType (CTVar (1,"a")) (CTVar (0,"b"))) (CTCons ("EasyCheck","Prop") [])))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"xs"),CPVar (2,"f")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","diagonal")) (CListComp (CListComp (CApply (CApply (CSymbol ("EasyCheck","updArgs")) (CLambda [CPVar (5,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("Prelude","show")) (CVar (3,"y")))) (CVar (5,"x0"))))) (CVar (4,"t"))) [CSPat (CPVar (4,"t")) (CApply (CVar (0,"c")) (CApply (CVar (2,"f")) (CVar (3,"y"))))]) [CSPat (CPVar (3,"y")) (CVar (1,"xs"))]))] []]),
+  CFunc ("EasyCheck","forValues") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("EasyCheck","Prop") [])) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","forAllValues")) (CSymbol ("Prelude","id")))] []]),
+  CFunc ("EasyCheck","is") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CLambda [CPVar (2,"xs")] (CCase (CVar (2,"xs")) [CBranch (CPComb ("Prelude",":") [CPVar (3,"y"),CPComb ("Prelude","[]") []]) (CApply (CVar (1,"f")) (CVar (3,"y"))),CBranch (CPVar (4,"_")) (CSymbol ("Prelude","False"))])))] []]),
+  CFunc ("EasyCheck","isAlways") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x")))) (CSymbol ("Prelude","all")))] []]),
+  CFunc ("EasyCheck","isEventually") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x")))) (CSymbol ("Prelude","any")))] []]),
+  CFunc ("EasyCheck","isSameSet") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("EasyCheck","subset")) (CVar (2,"xs'"))) (CVar (3,"ys'")))) (CApply (CApply (CSymbol ("EasyCheck","subset")) (CVar (3,"ys'"))) (CVar (2,"xs'"))))] [CLocalPat (CPVar (2,"xs'")) (CApply (CSymbol ("List","nub")) (CVar (0,"xs"))) [],CLocalPat (CPVar (3,"ys'")) (CApply (CSymbol ("List","nub")) (CVar (1,"ys"))) []]]),
+  CFunc ("EasyCheck","isSubsetOf") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","subset")) (CApply (CSymbol ("List","nub")) (CVar (0,"xs")))) (CVar (1,"ys")))] []]),
+  CFunc ("EasyCheck","label") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","map"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","updStamp"))) (CSymbol ("Prelude",":"))))] []]),
+  CFunc ("EasyCheck","leList") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPVar (4,"_"),CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPVar (7,"le"),CPComb ("Prelude",":") [CPVar (8,"x"),CPVar (9,"xs")],CPComb ("Prelude",":") [CPVar (10,"y"),CPVar (11,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CVar (7,"le")) (CVar (8,"x"))) (CVar (10,"y")))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"x"))) (CVar (10,"y")))) (CApply (CApply (CApply (CSymbol ("EasyCheck","leList")) (CVar (7,"le"))) (CVar (9,"xs"))) (CVar (11,"ys")))))] []]),
+  CFunc ("EasyCheck","leqPair") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))))) (CRules CFlex [CRule [CPVar (0,"leqa"),CPVar (1,"leqb"),CPComb ("Prelude","(,)") [CPVar (2,"x1"),CPVar (3,"y1")],CPComb ("Prelude","(,)") [CPVar (4,"x2"),CPVar (5,"y2")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"x1"))) (CVar (4,"x2")),CApply (CApply (CVar (1,"leqb")) (CVar (3,"y1"))) (CVar (5,"y2"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (0,"leqa")) (CVar (2,"x1"))) (CVar (4,"x2")))] []]),
+  CFunc ("EasyCheck","maxFail") 1 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("EasyCheck","Config") [CPVar (0,"_"),CPVar (1,"n"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"n"))] []]),
+  CFunc ("EasyCheck","maxTest") 1 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("EasyCheck","Config") [CPVar (0,"n"),CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] []]),
+  CFunc ("EasyCheck","notest") 0 Private (CTCons ("EasyCheck","Test") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Test")) (CSymbol ("EasyCheck","Undef"))) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("EasyCheck","nth") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"n")) [CBranch (CPLit (CIntc 1)) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]"))))))),CBranch (CPLit (CIntc 2)) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]")))))))),CBranch (CPLit (CIntc 3)) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))),CBranch (CPVar (1,"_")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CSymbol ("Prelude","[]")))))])] []]),
+  CFunc ("EasyCheck","prop") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("EasyCheck","Prop") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("EasyCheck","uniquely"))] []]),
+  CFunc ("EasyCheck","result") 1 Public (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("EasyCheck","Result") [])) (CRules CFlex [CRule [CPComb ("EasyCheck","Test") [CPVar (0,"r"),CPVar (1,"_"),CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"r"))] []]),
+  CFunc ("EasyCheck","rndLevelDiag") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"rnd"),CPVar (1,"t")] [(CSymbol ("Prelude","success"),CListComp (CVar (2,"x")) [CSPat (CPComb ("Prelude","Value") [CPVar (2,"x")]) (CApply (CSymbol ("EasyCheck","diagonal")) (CApply (CApply (CSymbol ("EasyCheck","rndLevels")) (CVar (0,"rnd"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"t"))) (CSymbol ("Prelude","[]")))))])] []]),
+  CFunc ("EasyCheck","rndLevelDiagFlat") 3 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"d"),CPVar (1,"rnd"),CPVar (2,"t")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","concat"))) (CApply (CSymbol ("EasyCheck","transpose")) (CApply (CApply (CApply (CSymbol ("Prelude","zipWith")) (CSymbol ("EasyCheck","rndLevelDiag"))) (CVar (3,"rs"))) (CApply (CApply (CSymbol ("EasyCheck","flatRep")) (CVar (0,"d"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"t"))) (CSymbol ("Prelude","[]")))))))] [CLocalPat (CPVar (3,"rs")) (CApply (CSymbol ("RandomExternal","split")) (CVar (1,"rnd"))) []]]),
+  CFunc ("EasyCheck","rndLevels") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]]))) (CRules CFlex [CRule [CPVar (0,"rnd"),CPVar (1,"ts")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (1,"ts")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"ts"))) (CApply (CApply (CSymbol ("EasyCheck","rndLevels")) (CVar (2,"r"))) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CApply (CSymbol ("Prelude","zipWith")) (CSymbol ("EasyCheck","shuffle"))) (CVar (3,"rs"))) (CListComp (CVar (4,"us")) [CSPat (CPComb ("Prelude","Choice") [CPVar (4,"us")]) (CVar (1,"ts"))]))))))] [CLocalPat (CPComb ("Prelude",":") [CPVar (2,"r"),CPVar (3,"rs")]) (CApply (CSymbol ("RandomExternal","split")) (CVar (0,"rnd"))) []]]),
+  CFunc ("EasyCheck","setEvery") 2 Private (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","String") []))) (CFuncType (CTCons ("EasyCheck","Config") []) (CTCons ("EasyCheck","Config") []))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("EasyCheck","Config") [CPVar (1,"n"),CPVar (2,"m"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Config")) (CVar (1,"n"))) (CVar (2,"m"))) (CVar (0,"f")))] []]),
+  CFunc ("EasyCheck","setResult") 2 Private (CFuncType (CTCons ("EasyCheck","Result") []) (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("EasyCheck","Test") []))) (CRules CFlex [CRule [CPVar (0,"res"),CPComb ("EasyCheck","Test") [CPVar (1,"_"),CPVar (2,"s"),CPVar (3,"a")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Test")) (CVar (0,"res"))) (CVar (3,"a"))) (CVar (2,"s")))] []]),
+  CFunc ("EasyCheck","shuffle") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"rnd"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","shuffleWithLen")) (CApply (CSymbol ("RandomExternal","nextInt")) (CVar (0,"rnd")))) (CApply (CSymbol ("Prelude","length")) (CVar (1,"l")))) (CVar (1,"l")))] []]),
+  CFunc ("EasyCheck","shuffleWithLen") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"r"),CPVar (1,"rs")],CPVar (2,"len"),CPVar (3,"xs")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"len"))) (CLit (CIntc 0)),CSymbol ("Prelude","[]")),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"z"))) (CApply (CApply (CApply (CSymbol ("EasyCheck","shuffleWithLen")) (CVar (1,"rs"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (2,"len"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"ys"))) (CVar (6,"zs")))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ys"),CPComb ("Prelude",":") [CPVar (5,"z"),CPVar (6,"zs")]]) (CApply (CApply (CSymbol ("Prelude","splitAt")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CSymbol ("Integer","abs")) (CVar (0,"r")))) (CVar (2,"len")))) (CVar (3,"xs"))) []]]),
+  CFunc ("EasyCheck","stamp") 1 Private (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPComb ("EasyCheck","Test") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"s")]] [(CSymbol ("Prelude","success"),CVar (2,"s"))] []]),
+  CFunc ("EasyCheck","subset") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","null")) (CApply (CApply (CSymbol ("List","\\\\")) (CVar (0,"xs"))) (CVar (1,"ys"))))] []]),
+  CFunc ("EasyCheck","suc") 1 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("EasyCheck","Prop") [])) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (0,"a"))) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","forAll")) (CVar (0,"n"))) (CSymbol ("Prelude","unknown")))] []]),
+  CFunc ("EasyCheck","successful") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CSymbol ("Prelude","null"))))] []]),
+  CFunc ("EasyCheck","test") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("EasyCheck","setResult")) (CVar (3,"res"))) (CSymbol ("EasyCheck","notest")))) (CSymbol ("Prelude","[]")))] [CLocalPat (CPVar (2,"xs")) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (0,"x"))) [],CLocalPat (CPVar (3,"res")) (CCase (CApply (CSymbol ("EasyCheck","valuesOf")) (CApply (CVar (1,"f")) (CVar (2,"xs")))) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","True") [],CPComb ("Prelude","[]") []]) (CSymbol ("EasyCheck","Ok")),CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","False") [],CPComb ("Prelude","[]") []]) (CApply (CSymbol ("EasyCheck","Falsified")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","show"))) (CVar (2,"xs")))),CBranch (CPVar (4,"bs")) (CApply (CApply (CSymbol ("EasyCheck","Ambigious")) (CVar (4,"bs"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","show"))) (CVar (2,"xs"))))]) []]]),
+  CFunc ("EasyCheck","tests") 5 Private (CFuncType (CTCons ("EasyCheck","Config") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EasyCheck","Test") []]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"ntest"),CPVar (2,"_"),CPVar (3,"stamps")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","done")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'P'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))))) (CVar (1,"ntest"))) (CVar (3,"stamps")))] [],CRule [CPVar (4,"config"),CPComb ("Prelude",":") [CPVar (5,"t"),CPVar (6,"ts")],CPVar (7,"ntest"),CPVar (8,"nfail"),CPVar (9,"stamps")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"ntest"))) (CApply (CSymbol ("EasyCheck","maxTest")) (CVar (4,"config"))),CApply (CApply (CApply (CSymbol ("Prelude","done")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'K'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))))))))) (CVar (7,"ntest"))) (CVar (9,"stamps"))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"nfail"))) (CApply (CSymbol ("EasyCheck","maxFail")) (CVar (4,"config"))),CApply (CApply (CApply (CSymbol ("Prelude","done")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))) (CVar (7,"ntest"))) (CVar (9,"stamps"))),(CSymbol ("Prelude","otherwise"),CDoExpr [CSExpr (CApply (CSymbol ("Prelude","putStr")) (CApply (CApply (CApply (CSymbol ("EasyCheck","every")) (CVar (4,"config"))) (CVar (7,"ntest"))) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))),CSExpr (CCase (CApply (CSymbol ("EasyCheck","result")) (CVar (5,"t"))) [CBranch (CPComb ("EasyCheck","Undef") []) (CApply (CApply (CApply (CApply (CApply (CSymbol ("EasyCheck","tests")) (CVar (4,"config"))) (CVar (6,"ts"))) (CVar (7,"ntest"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (8,"nfail"))) (CLit (CIntc 1)))) (CVar (9,"stamps"))),CBranch (CPComb ("EasyCheck","Ok") []) (CApply (CApply (CApply (CApply (CApply (CSymbol ("EasyCheck","tests")) (CVar (4,"config"))) (CVar (6,"ts"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (7,"ntest"))) (CLit (CIntc 1)))) (CVar (8,"nfail"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("EasyCheck","stamp")) (CVar (5,"t")))) (CVar (9,"stamps")))),CBranch (CPComb ("EasyCheck","Falsified") [CPVar (10,"results")]) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStr"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("EasyCheck","nth")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (7,"ntest"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","unlines")) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (10,"results")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CApply (CSymbol ("Prelude","unlines")) (CVar (10,"results")))))))))))),CBranch (CPComb ("EasyCheck","Ambigious") [CPVar (11,"bs"),CPVar (12,"results")]) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStr"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (11,"bs")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("EasyCheck","nth")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (7,"ntest"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","unlines")) (CApply (CSymbol ("EasyCheck","args")) (CVar (5,"t"))))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (12,"results")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))))))) (CApply (CSymbol ("Prelude","unlines")) (CVar (12,"results"))))))))))))))])])] []]),
+  CFunc ("EasyCheck","transpose") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","[]") [],CPVar (0,"xss")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","transpose")) (CVar (0,"xss")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"xss")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CListComp (CVar (4,"h")) [CSPat (CPComb ("Prelude",":") [CPVar (4,"h"),CPVar (5,"_")]) (CVar (3,"xss"))]))) (CApply (CSymbol ("EasyCheck","transpose")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"xs"))) (CListComp (CVar (7,"t")) [CSPat (CPComb ("Prelude",":") [CPVar (6,"_"),CPVar (7,"t")]) (CVar (3,"xss"))]))))] []]),
+  CFunc ("EasyCheck","trivial") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("EasyCheck","classify")) (CVar (0,"x0"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CSymbol ("Prelude","[]")))))))))))] []]),
+  CFunc ("EasyCheck","uniquely") 0 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("EasyCheck","Prop") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("EasyCheck","is")) (CVar (0,"x0"))) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","updArgs") 2 Private (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []])) (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("EasyCheck","Test") []))) (CRules CFlex [CRule [CPVar (0,"upd"),CPComb ("EasyCheck","Test") [CPVar (1,"r"),CPVar (2,"a"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Test")) (CVar (1,"r"))) (CApply (CVar (0,"upd")) (CVar (2,"a")))) (CVar (3,"s")))] []]),
+  CFunc ("EasyCheck","updStamp") 2 Private (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []])) (CFuncType (CTCons ("EasyCheck","Test") []) (CTCons ("EasyCheck","Test") []))) (CRules CFlex [CRule [CPVar (0,"upd"),CPComb ("EasyCheck","Test") [CPVar (1,"r"),CPVar (2,"a"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("EasyCheck","Test")) (CVar (1,"r"))) (CVar (2,"a"))) (CApply (CVar (0,"upd")) (CVar (3,"s"))))] []]),
+  CFunc ("EasyCheck","valuesOf") 0 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CApply (CSymbol ("EasyCheck","rndLevelDiagFlat")) (CLit (CIntc 3))) (CLit (CIntc 2008)))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Meta","searchTree"))) (CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","id"))) (CVar (0,"x0"))))))] []]),
+  CFunc ("EasyCheck","verbose") 0 Private (CTCons ("EasyCheck","Config") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","setEvery")) (CLambda [CPVar (0,"n"),CPVar (1,"xs")] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","unlines")) (CVar (1,"xs"))))))) (CSymbol ("EasyCheck","easy")))] []]),
+  CFunc ("EasyCheck","verboseCheck") 0 Public (CFuncType (CTCons ("EasyCheck","Prop") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("EasyCheck","check")) (CSymbol ("EasyCheck","verbose")))] []]),
+  CFunc ("EasyCheck","verboseCheck1") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))] []]),
+  CFunc ("EasyCheck","verboseCheck2") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") []))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id")))))] []]),
+  CFunc ("EasyCheck","verboseCheck3") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))))] []]),
+  CFunc ("EasyCheck","verboseCheck4") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") []))))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id")))))))] []]),
+  CFunc ("EasyCheck","verboseCheck5") 0 Public (CFuncType (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (0,"_")) (CTCons ("EasyCheck","Prop") [])))))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("EasyCheck","verboseCheck"))) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CApply (CSymbol ("EasyCheck","suc")) (CSymbol ("Prelude","id"))))))))] []]),
+  CFunc ("EasyCheck","~>") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("EasyCheck","Prop") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("EasyCheck","test")) (CVar (0,"x"))) (CApply (CSymbol ("EasyCheck","isSubsetOf")) (CApply (CSymbol ("EasyCheck","valuesOf")) (CVar (1,"y")))))] []])]
+ [COp ("EasyCheck","isSubsetOf") CInfixOp 4,COp ("EasyCheck","isSameSet") CInfixOp 4,COp ("EasyCheck","trivial") CInfixOp 1,COp ("EasyCheck","<~") CInfixOp 1,COp ("EasyCheck","~>") CInfixOp 1,COp ("EasyCheck","<~>") CInfixOp 1,COp ("EasyCheck","#") CInfixOp 1,COp ("EasyCheck","-=-") CInfixOp 1,COp ("EasyCheck","isEventually") CInfixOp 1,COp ("EasyCheck","isAlways") CInfixOp 1,COp ("EasyCheck","is") CInfixOp 1,COp ("EasyCheck","==>") CInfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/FileGoodies.acy b/src/lib/Curry/Module/.curry/FileGoodies.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FileGoodies.acy
@@ -0,0 +1,19 @@
+CurryProg "FileGoodies"
+ ["Prelude","Directory","List"]
+ []
+ [CFunc ("FileGoodies","baseName") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","snd")) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (0,"name"))))] []]),
+  CFunc ("FileGoodies","dirName") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","fst")) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (0,"name"))))] []]),
+  CFunc ("FileGoodies","fileSuffix") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","snd"))) (CSymbol ("FileGoodies","splitBaseName")))] []]),
+  CFunc ("FileGoodies","findFileInPath") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FileGoodies","lookupFileInPath"))] []]),
+  CFunc ("FileGoodies","getFileInPath") 3 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"suffixes"),CPVar (2,"path")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"mbfile")) (CApply (CApply (CApply (CSymbol ("FileGoodies","lookupFileInPath")) (CVar (0,"file"))) (CVar (1,"suffixes"))) (CVar (2,"path"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","error"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"file"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CSymbol ("List","intersperse")) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","pathSeparatorChar"))) (CSymbol ("Prelude","[]")))) (CVar (2,"path"))))))))) (CSymbol ("Prelude","return"))) (CVar (3,"mbfile")))])] []]),
+  CFunc ("FileGoodies","isAbsolute") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("FileGoodies","separatorChar")))] []]),
+  CFunc ("FileGoodies","lookupFileInPath") 3 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"suffixes"),CPVar (2,"path")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FileGoodies","isAbsolute")) (CVar (0,"file")))) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CVar (0,"file"))) (CVar (1,"suffixes")))) (CApply (CSymbol ("FileGoodies","lookupFirstFile")) (CVar (2,"path"))))] [CLocalFunc (CFunc ("FileGoodies","lookupFirstFile") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","Nothing")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"dir"),CPVar (4,"dirs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (5,"mbfile")) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (3,"dir"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","separatorChar"))) (CVar (0,"file"))))) (CVar (1,"suffixes"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CSymbol ("FileGoodies","lookupFirstFile")) (CVar (4,"dirs")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CSymbol ("Prelude","Just")))) (CVar (5,"mbfile")))])] []])),CLocalFunc (CFunc ("FileGoodies","lookupFirstFileWithSuffix") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]))) (CRules CFlex [CRule [CPVar (3,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","Nothing")))] [],CRule [CPVar (4,"f"),CPComb ("Prelude",":") [CPVar (5,"suf"),CPVar (6,"sufs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSLet [CLocalPat (CPVar (7,"fsuf")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"f"))) (CVar (5,"suf"))) []],CSPat (CPVar (8,"exfile")) (CApply (CSymbol ("Directory","doesFileExist")) (CVar (7,"fsuf"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (8,"exfile"))) (CApply (CSymbol ("Prelude","return")) (CApply (CSymbol ("Prelude","Just")) (CVar (7,"fsuf"))))) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CVar (4,"f"))) (CVar (6,"sufs"))))])] []]))]]),
+  CFunc ("FileGoodies","pathSeparatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc ':'))] []]),
+  CFunc ("FileGoodies","replaceFileName") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"dir"),CPVar (3,"fn")]) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (1,"s"))) []] (CCase (CVar (2,"dir")) [CBranch (CPComb ("Prelude",":") [CPLit (CCharc '.'),CPComb ("Prelude","[]") []]) (CApply (CVar (0,"f")) (CVar (3,"fn"))),CBranch (CPVar (4,"_")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"dir"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","separatorChar"))) (CApply (CVar (0,"f")) (CVar (3,"fn")))))]))] []]),
+  CFunc ("FileGoodies","separatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc '/'))] []]),
+  CFunc ("FileGoodies","splitBaseName") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (1,"rsuffix"),CPVar (2,"rbase")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x0"))) (CSymbol ("FileGoodies","suffixSeparatorChar"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (0,"name")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Prelude","null")) (CVar (2,"rbase")))) (CApply (CApply (CSymbol ("Prelude","elem")) (CSymbol ("FileGoodies","separatorChar"))) (CVar (1,"rsuffix"))))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"name"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","reverse")) (CApply (CSymbol ("Prelude","tail")) (CVar (2,"rbase"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rsuffix"))))))] []]),
+  CFunc ("FileGoodies","splitDirectoryBaseName") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (1,"rbase"),CPVar (2,"rdir")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x0"))) (CSymbol ("FileGoodies","separatorChar"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (0,"name")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (2,"rdir")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rbase"))))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","reverse")) (CApply (CSymbol ("Prelude","tail")) (CVar (2,"rdir"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rbase"))))))] []]),
+  CFunc ("FileGoodies","splitPath") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"ys"),CPVar (3,"zs")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (4,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"x0"))) (CSymbol ("FileGoodies","pathSeparatorChar"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (1,"xs")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (3,"zs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"ys"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"ys"))) (CApply (CSymbol ("FileGoodies","splitPath")) (CApply (CSymbol ("Prelude","tail")) (CVar (3,"zs")))))))] []]),
+  CFunc ("FileGoodies","stripSuffix") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","fst"))) (CSymbol ("FileGoodies","splitBaseName")))] []]),
+  CFunc ("FileGoodies","suffixSeparatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc '.'))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/FileGoodies.cy b/src/lib/Curry/Module/.curry/FileGoodies.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FileGoodies.cy
@@ -0,0 +1,36 @@
+Module "FileGoodies"
+(Just (Exporting (8,19) [(Export (QualIdent Nothing (Ident "separatorChar" 0))),(Export (QualIdent Nothing (Ident "pathSeparatorChar" 0))),(Export (QualIdent Nothing (Ident "suffixSeparatorChar" 0))),(Export (QualIdent Nothing (Ident "isAbsolute" 0))),(Export (QualIdent Nothing (Ident "dirName" 0))),(Export (QualIdent Nothing (Ident "baseName" 0))),(Export (QualIdent Nothing (Ident "splitDirectoryBaseName" 0))),(Export (QualIdent Nothing (Ident "stripSuffix" 0))),(Export (QualIdent Nothing (Ident "fileSuffix" 0))),(Export (QualIdent Nothing (Ident "splitBaseName" 0))),(Export (QualIdent Nothing (Ident "splitPath" 0))),(Export (QualIdent Nothing (Ident "findFileInPath" 0))),(Export (QualIdent Nothing (Ident "lookupFileInPath" 0))),(Export (QualIdent Nothing (Ident "getFileInPath" 0))),(Export (QualIdent Nothing (Ident "replaceFileName" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (14,1) "Directory" False Nothing Nothing)
+,(ImportDecl (15,1) "List" False Nothing (Just (Importing (15,12) [(Import (Ident "intersperse" 0))])))
+,(TypeSig (19,1) [(Ident "separatorChar" 0)] (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []))
+,(FunctionDecl (20,1) (Ident "separatorChar" 0) [(Equation (20,1) (FunLhs (Ident "separatorChar" 0) []) (SimpleRhs (20,17) (Literal (Char '/')) []))])
+,(TypeSig (24,1) [(Ident "pathSeparatorChar" 0)] (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []))
+,(FunctionDecl (25,1) (Ident "pathSeparatorChar" 0) [(Equation (25,1) (FunLhs (Ident "pathSeparatorChar" 0) []) (SimpleRhs (25,21) (Literal (Char ':')) []))])
+,(TypeSig (29,1) [(Ident "suffixSeparatorChar" 0)] (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []))
+,(FunctionDecl (30,1) (Ident "suffixSeparatorChar" 0) [(Equation (30,1) (FunLhs (Ident "suffixSeparatorChar" 0) []) (SimpleRhs (30,23) (Literal (Char '.')) []))])
+,(TypeSig (33,1) [(Ident "isAbsolute" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (34,1) (Ident "isAbsolute" 0) [(Equation (34,1) (FunLhs (Ident "isAbsolute" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 8)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 9))))]) (SimpleRhs (34,20) (InfixApply (Variable (QualIdent Nothing (Ident "c" 8))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent (Just "FileGoodies") (Ident "separatorChar" 0)))) []))])
+,(TypeSig (38,1) [(Ident "dirName" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (39,1) (Ident "dirName" 0) [(Equation (39,1) (FunLhs (Ident "dirName" 0) [(VariablePattern (Ident "name" 11))]) (SimpleRhs (39,16) (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Paren (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "splitDirectoryBaseName" 0))) (Variable (QualIdent Nothing (Ident "name" 11)))))) []))])
+,(TypeSig (42,1) [(Ident "baseName" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (43,1) (Ident "baseName" 0) [(Equation (43,1) (FunLhs (Ident "baseName" 0) [(VariablePattern (Ident "name" 13))]) (SimpleRhs (43,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "snd" 0))) (Paren (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "splitDirectoryBaseName" 0))) (Variable (QualIdent Nothing (Ident "name" 13)))))) []))])
+,(TypeSig (47,1) [(Ident "splitDirectoryBaseName" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FunctionDecl (48,1) (Ident "splitDirectoryBaseName" 0) [(Equation (48,1) (FunLhs (Ident "splitDirectoryBaseName" 0) [(VariablePattern (Ident "name" 15))]) (SimpleRhs (49,3) (Let [(PatternDecl (49,7) (TuplePattern [(VariablePattern (Ident "rbase" 17)),(VariablePattern (Ident "rdir" 17))]) (SimpleRhs (49,22) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "break" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent (Just "FileGoodies") (Ident "separatorChar" 0))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Variable (QualIdent Nothing (Ident "name" 15)))))) []))] (IfThenElse (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "rdir" 17)))) (Tuple [(Literal (String ".")),(Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Variable (QualIdent Nothing (Ident "rbase" 17))))]) (Tuple [(Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "rdir" 17)))))),(Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Variable (QualIdent Nothing (Ident "rbase" 17))))]))) []))])
+,(TypeSig (54,1) [(Ident "stripSuffix" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (55,1) (Ident "stripSuffix" 0) [(Equation (55,1) (FunLhs (Ident "stripSuffix" 0) []) (SimpleRhs (55,15) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "FileGoodies") (Ident "splitBaseName" 0)))) []))])
+,(TypeSig (58,1) [(Ident "fileSuffix" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (59,1) (Ident "fileSuffix" 0) [(Equation (59,1) (FunLhs (Ident "fileSuffix" 0) []) (SimpleRhs (59,14) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "snd" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "FileGoodies") (Ident "splitBaseName" 0)))) []))])
+,(TypeSig (63,1) [(Ident "splitBaseName" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FunctionDecl (64,1) (Ident "splitBaseName" 0) [(Equation (64,1) (FunLhs (Ident "splitBaseName" 0) [(VariablePattern (Ident "name" 23))]) (SimpleRhs (64,22) (Let [(PatternDecl (64,26) (TuplePattern [(VariablePattern (Ident "rsuffix" 25)),(VariablePattern (Ident "rbase" 25))]) (SimpleRhs (64,44) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "break" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent (Just "FileGoodies") (Ident "suffixSeparatorChar" 0))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Variable (QualIdent Nothing (Ident "name" 23)))))) []))] (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "rbase" 25)))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "elem" 0))) (Variable (QualIdent (Just "FileGoodies") (Ident "separatorChar" 0)))) (Variable (QualIdent Nothing (Ident "rsuffix" 25))))) (Tuple [(Variable (QualIdent Nothing (Ident "name" 23))),(Literal (String ""))]) (Tuple [(Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "rbase" 25)))))),(Apply (Variable (QualIdent (Just "Prelude") (Ident "reverse" 0))) (Variable (QualIdent Nothing (Ident "rsuffix" 25))))]))) []))])
+,(TypeSig (70,1) [(Ident "splitPath" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(FunctionDecl (71,1) (Ident "splitPath" 0) [(Equation (71,1) (FunLhs (Ident "splitPath" 0) [(ListPattern [])]) (SimpleRhs (71,16) (List []) [])),(Equation (72,1) (FunLhs (Ident "splitPath" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 29)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 29))))]) (SimpleRhs (72,20) (Let [(PatternDecl (72,24) (TuplePattern [(VariablePattern (Ident "ys" 31)),(VariablePattern (Ident "zs" 31))]) (SimpleRhs (72,34) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "break" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent (Just "FileGoodies") (Ident "pathSeparatorChar" 0))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 29))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 29)))))) []))] (IfThenElse (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "zs" 31)))) (List [(Variable (QualIdent Nothing (Ident "ys" 31)))]) (InfixApply (Variable (QualIdent Nothing (Ident "ys" 31))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "splitPath" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "zs" 31))))))))) []))])
+,(TypeSig (78,1) [(Ident "findFileInPath" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])])))))
+,(FunctionDecl (79,1) (Ident "findFileInPath" 0) [(Equation (79,1) (FunLhs (Ident "findFileInPath" 0) []) (SimpleRhs (79,18) (Variable (QualIdent (Just "FileGoodies") (Ident "lookupFileInPath" 0))) []))])
+,(TypeSig (83,1) [(Ident "lookupFileInPath" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])])))))
+,(FunctionDecl (84,1) (Ident "lookupFileInPath" 0) [(Equation (84,1) (FunLhs (Ident "lookupFileInPath" 0) [(VariablePattern (Ident "file" 35)),(VariablePattern (Ident "suffixes" 35)),(VariablePattern (Ident "path" 35))]) (SimpleRhs (85,3) (IfThenElse (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "isAbsolute" 0))) (Variable (QualIdent Nothing (Ident "file" 35)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "lookupFirstFileWithSuffix" 36))) (Variable (QualIdent Nothing (Ident "file" 35)))) (Variable (QualIdent Nothing (Ident "suffixes" 35)))) (Apply (Variable (QualIdent Nothing (Ident "lookupFirstFile" 36))) (Variable (QualIdent Nothing (Ident "path" 35))))) [(FunctionDecl (89,4) (Ident "lookupFirstFile" 36) [(Equation (89,4) (FunLhs (Ident "lookupFirstFile" 36) [(ListPattern [])]) (SimpleRhs (89,25) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))) [])),(Equation (90,4) (FunLhs (Ident "lookupFirstFile" 36) [(ParenPattern (InfixPattern (VariablePattern (Ident "dir" 39)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "dirs" 39))))]) (SimpleRhs (90,33) (Do [(StmtBind (VariablePattern (Ident "mbfile" 41)) (Apply (Apply (Variable (QualIdent Nothing (Ident "lookupFirstFileWithSuffix" 36))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "dir" 39))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent (Just "FileGoodies") (Ident "separatorChar" 0))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "file" 35))))))) (Variable (QualIdent Nothing (Ident "suffixes" 35)))))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "lookupFirstFile" 36))) (Variable (QualIdent Nothing (Ident "dirs" 39)))))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0)))))) (Variable (QualIdent Nothing (Ident "mbfile" 41))))) []))]),(FunctionDecl (94,4) (Ident "lookupFirstFileWithSuffix" 36) [(Equation (94,4) (FunLhs (Ident "lookupFirstFileWithSuffix" 36) [(VariablePattern (Ident "_" 43)),(ListPattern [])]) (SimpleRhs (94,37) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))) [])),(Equation (95,4) (FunLhs (Ident "lookupFirstFileWithSuffix" 36) [(VariablePattern (Ident "f" 45)),(ParenPattern (InfixPattern (VariablePattern (Ident "suf" 45)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "sufs" 45))))]) (SimpleRhs (95,45) (Do [(StmtDecl [(PatternDecl (96,10) (VariablePattern (Ident "fsuf" 47)) (SimpleRhs (96,17) (InfixApply (Variable (QualIdent Nothing (Ident "f" 45))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "suf" 45)))) []))]),(StmtBind (VariablePattern (Ident "exfile" 49)) (Apply (Variable (QualIdent (Just "Directory") (Ident "doesFileExist" 0))) (Variable (QualIdent Nothing (Ident "fsuf" 47)))))] (IfThenElse (Variable (QualIdent Nothing (Ident "exfile" 49))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Variable (QualIdent Nothing (Ident "fsuf" 47)))))) (Apply (Apply (Variable (QualIdent Nothing (Ident "lookupFirstFileWithSuffix" 36))) (Variable (QualIdent Nothing (Ident "f" 45)))) (Variable (QualIdent Nothing (Ident "sufs" 45)))))) []))])]))])
+,(TypeSig (103,1) [(Ident "getFileInPath" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))))
+,(FunctionDecl (104,1) (Ident "getFileInPath" 0) [(Equation (104,1) (FunLhs (Ident "getFileInPath" 0) [(VariablePattern (Ident "file" 50)),(VariablePattern (Ident "suffixes" 50)),(VariablePattern (Ident "path" 50))]) (SimpleRhs (104,36) (Do [(StmtBind (VariablePattern (Ident "mbfile" 52)) (Apply (Apply (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "lookupFileInPath" 0))) (Variable (QualIdent Nothing (Ident "file" 50)))) (Variable (QualIdent Nothing (Ident "suffixes" 50)))) (Variable (QualIdent Nothing (Ident "path" 50)))))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (Literal (String "File ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "file" 50))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " not found in path ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "concat" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "List") (Ident "intersperse" 0))) (List [(Variable (QualIdent (Just "FileGoodies") (Ident "pathSeparatorChar" 0)))])) (Variable (QualIdent Nothing (Ident "path" 50)))))))))))) (Variable (QualIdent (Just "Prelude") (Ident "return" 0)))) (Variable (QualIdent Nothing (Ident "mbfile" 52))))) []))])
+,(TypeSig (112,1) [(Ident "replaceFileName" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(FunctionDecl (113,1) (Ident "replaceFileName" 0) [(Equation (113,1) (FunLhs (Ident "replaceFileName" 0) [(VariablePattern (Ident "f" 53)),(VariablePattern (Ident "s" 53))]) (SimpleRhs (113,23) (Let [(PatternDecl (113,27) (TuplePattern [(VariablePattern (Ident "dir" 55)),(VariablePattern (Ident "fn" 55))]) (SimpleRhs (113,38) (Apply (Variable (QualIdent (Just "FileGoodies") (Ident "splitDirectoryBaseName" 0))) (Variable (QualIdent Nothing (Ident "s" 53)))) []))] (Case (Variable (QualIdent Nothing (Ident "dir" 55))) [(Alt (115,23) (LiteralPattern (String ".")) (SimpleRhs (115,30) (Apply (Variable (QualIdent Nothing (Ident "f" 53))) (Variable (QualIdent Nothing (Ident "fn" 55)))) [])),(Alt (116,23) (VariablePattern (Ident "_" 60)) (SimpleRhs (116,30) (InfixApply (Variable (QualIdent Nothing (Ident "dir" 55))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent (Just "FileGoodies") (Ident "separatorChar" 0))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "f" 53))) (Variable (QualIdent Nothing (Ident "fn" 55)))))) []))])) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/FileGoodies.efc b/src/lib/Curry/Module/.curry/FileGoodies.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FileGoodies.efc
@@ -0,0 +1,1 @@
+Prog "FileGoodies" ["Directory","List","Prelude"] [] [Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","separatorChar")) 0 Public (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Lit (Charc  '/'))),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","pathSeparatorChar")) 0 Public (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Lit (Charc  ':'))),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","suffixSeparatorChar")) 0 Public (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Lit (Charc  '.'))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FileGoodies","isAbsolute")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","separatorChar")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","dirName")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","fst")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitDirectoryBaseName")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","baseName")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","snd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitDirectoryBaseName")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitDirectoryBaseName")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Let [((Just (TVar 3),2),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 15) (TVar 16)) (FuncType (TVar 15) (TVar 16))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 11) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 11],TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]]))),"Prelude","break")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 8) (FuncType (TVar 9) (TVar 10))) (FuncType (TVar 9) (FuncType (TVar 8) (TVar 10)))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 7) (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","separatorChar")) []]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 13) (TVar 14)) (FuncType (TVar 13) (TVar 14))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 12]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 12])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitDirectoryBaseName._#selFP3#rbase")) [Var ((Just (TVar 3),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitDirectoryBaseName._#selFP4#rdir")) [Var ((Just (TVar 3),2))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","reverse")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])]))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitDirectoryBaseName._#selFP3#rbase")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitDirectoryBaseName._#selFP4#rdir")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","stripSuffix")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","fst")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitBaseName")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","fileSuffix")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","snd")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitBaseName")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitBaseName")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Let [((Just (TVar 3),2),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 15) (TVar 16)) (FuncType (TVar 15) (TVar 16))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 11) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 11],TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]]))),"Prelude","break")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 8) (FuncType (TVar 9) (TVar 10))) (FuncType (TVar 9) (FuncType (TVar 8) (TVar 10)))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 7) (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","suffixSeparatorChar")) []]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 13) (TVar 14)) (FuncType (TVar 13) (TVar 14))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 12]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 12])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitBaseName._#selFP6#rsuffix")) [Var ((Just (TVar 3),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitBaseName._#selFP7#rbase")) [Var ((Just (TVar 3),2))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","separatorChar")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 21) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (TVar 21),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","reverse")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])]))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitBaseName._#selFP6#rsuffix")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitBaseName._#selFP7#rbase")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitPath")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Let [((Just (TVar 7),4),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 16) (TVar 17)) (FuncType (TVar 16) (TVar 17))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 14) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 14]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 14],TCons (Nothing,Nothing,"Prelude","[]") [TVar 14]]))),"Prelude","break")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 11) (FuncType (TVar 12) (TVar 13))) (FuncType (TVar 12) (FuncType (TVar 11) (TVar 13)))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 10) (FuncType (TVar 10) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","pathSeparatorChar")) []]],Comb ConsCall ((Nothing,Just (FuncType (TVar 15) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitPath._#selFP9#ys")) [Var ((Just (TVar 7),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitPath._#selFP10#zs")) [Var ((Just (TVar 7),4))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitPath")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]]])]))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitPath._#selFP9#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","splitPath._#selFP10#zs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"FileGoodies","findFileInPath")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])))) (Rule [] (Comb (FuncPartCall 3) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"FileGoodies","lookupFileInPath")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"FileGoodies","lookupFileInPath")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FileGoodies","isAbsolute")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"FileGoodies","lookupFileInPath.lookupFirstFile.36")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","Nothing")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Directory","doesFileExist")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))))),"FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4))]]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))))),"FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36._#lambda3")) 4 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","Just")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"FileGoodies","lookupFileInPath.lookupFirstFile.36")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","Nothing")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","separatorChar")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))))),"FileGoodies","lookupFileInPath.lookupFirstFile.36._#lambda2")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))))),"FileGoodies","lookupFileInPath.lookupFirstFile.36._#lambda2")) 4 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"Prelude","maybe")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"FileGoodies","lookupFileInPath.lookupFirstFile.36")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Prelude","return")) [],Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","Just")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"FileGoodies","getFileInPath")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"FileGoodies","lookupFileInPath")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"FileGoodies","getFileInPath._#lambda4")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"FileGoodies","getFileInPath._#lambda4")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2),(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"Prelude","maybe")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","$")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","error")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","concat")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"List","intersperse")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","pathSeparatorChar")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2))]]]]]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"FileGoodies","replaceFileName")) 2 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Let [((Just (TVar 2),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"FileGoodies","splitDirectoryBaseName")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","replaceFileName._#selFP12#dir")) [Var ((Just (TVar 2),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","replaceFileName._#selFP13#fn")) [Var ((Just (TVar 2),3))])] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),6)),Lit (Charc  '.')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","separatorChar")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))]]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","separatorChar")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))]]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"FileGoodies","separatorChar")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))]]])]))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","replaceFileName._#selFP12#dir")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"FileGoodies","replaceFileName._#selFP13#fn")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))]))] []
diff --git a/src/lib/Curry/Module/.curry/FileGoodies.fcy b/src/lib/Curry/Module/.curry/FileGoodies.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FileGoodies.fcy
@@ -0,0 +1,1 @@
+Prog "FileGoodies" ["Directory","List","Prelude"] [] [Func ("FileGoodies","separatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Lit (Charc  '/'))),Func ("FileGoodies","pathSeparatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Lit (Charc  ':'))),Func ("FileGoodies","suffixSeparatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Lit (Charc  '.'))),Func ("FileGoodies","isAbsolute") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Comb FuncCall ("Prelude","==") [Var 2,Comb FuncCall ("FileGoodies","separatorChar") []])])),Func ("FileGoodies","dirName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","fst") [Comb FuncCall ("FileGoodies","splitDirectoryBaseName") [Var 1]])),Func ("FileGoodies","baseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","snd") [Comb FuncCall ("FileGoodies","splitDirectoryBaseName") [Var 1]])),Func ("FileGoodies","splitDirectoryBaseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Let [(2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Comb FuncCall ("FileGoodies","separatorChar") []]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 1]])] (Let [(3,Comb FuncCall ("FileGoodies","splitDirectoryBaseName._#selFP3#rbase") [Var 2])] (Let [(4,Comb FuncCall ("FileGoodies","splitDirectoryBaseName._#selFP4#rdir") [Var 2])] (Case  Rigid (Comb FuncCall ("Prelude","null") [Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 3]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude","tail") [Var 4]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 3]])]))))),Func ("FileGoodies","splitDirectoryBaseName._#selFP3#rbase") 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 ("FileGoodies","splitDirectoryBaseName._#selFP4#rdir") 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 ("FileGoodies","stripSuffix") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","fst") [],Comb (FuncPartCall 1) ("FileGoodies","splitBaseName") []])),Func ("FileGoodies","fileSuffix") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","snd") [],Comb (FuncPartCall 1) ("FileGoodies","splitBaseName") []])),Func ("FileGoodies","splitBaseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Let [(2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Comb FuncCall ("FileGoodies","suffixSeparatorChar") []]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 1]])] (Let [(3,Comb FuncCall ("FileGoodies","splitBaseName._#selFP6#rsuffix") [Var 2])] (Let [(4,Comb FuncCall ("FileGoodies","splitBaseName._#selFP7#rbase") [Var 2])] (Case  Rigid (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","null") [Var 4],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Comb FuncCall ("FileGoodies","separatorChar") []],Var 3]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Var 1,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude","tail") [Var 4]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 3]])]))))),Func ("FileGoodies","splitBaseName._#selFP6#rsuffix") 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 ("FileGoodies","splitBaseName._#selFP7#rbase") 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 ("FileGoodies","splitPath") 1 Public (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]) (Let [(4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Comb FuncCall ("FileGoodies","pathSeparatorChar") []]],Comb ConsCall ("Prelude",":") [Var 2,Var 3]])] (Let [(5,Comb FuncCall ("FileGoodies","splitPath._#selFP9#ys") [Var 4])] (Let [(6,Comb FuncCall ("FileGoodies","splitPath._#selFP10#zs") [Var 4])] (Case  Rigid (Comb FuncCall ("Prelude","null") [Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("FileGoodies","splitPath") [Comb FuncCall ("Prelude","tail") [Var 6]]])]))))])),Func ("FileGoodies","splitPath._#selFP9#ys") 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 ("FileGoodies","splitPath._#selFP10#zs") 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 ("FileGoodies","findFileInPath") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])))) (Rule [] (Comb (FuncPartCall 3) ("FileGoodies","lookupFileInPath") [])),Func ("FileGoodies","lookupFileInPath") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("FileGoodies","isAbsolute") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36") [Var 1,Var 2]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFile.36") [Var 1,Var 2,Var 3])])),Func ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Nothing") []]),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Prelude","++") [Var 1,Var 3])] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Directory","doesFileExist") [Var 5],Comb (FuncPartCall 1) ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36._#lambda3") [Var 1,Var 5,Var 4]]))])),Func ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36._#lambda3") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))))) (Rule [1,2,3,4] (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Just") [Var 2]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36") [Var 1,Var 3])])),Func ("FileGoodies","lookupFileInPath.lookupFirstFile.36") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Nothing") []]),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFileWithSuffix.36") [Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Var 1]],Var 2],Comb (FuncPartCall 1) ("FileGoodies","lookupFileInPath.lookupFirstFile.36._#lambda2") [Var 5,Var 1,Var 2]])])),Func ("FileGoodies","lookupFileInPath.lookupFirstFile.36._#lambda2") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude","maybe") [Comb FuncCall ("FileGoodies","lookupFileInPath.lookupFirstFile.36") [Var 2,Var 3,Var 1],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","Just") []],Var 4])),Func ("FileGoodies","getFileInPath") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("FileGoodies","lookupFileInPath") [Var 1,Var 2,Var 3],Comb (FuncPartCall 1) ("FileGoodies","getFileInPath._#lambda4") [Var 1,Var 3]])),Func ("FileGoodies","getFileInPath._#lambda4") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","maybe") [Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","error") [],Comb FuncCall ("Prelude","++") [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  ' '),Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Prelude","++") [Var 1,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),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  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","concat") [Comb FuncCall ("List","intersperse") [Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","pathSeparatorChar") [],Comb ConsCall ("Prelude","[]") []],Var 2]]]]]],Comb (FuncPartCall 1) ("Prelude","return") [],Var 3])),Func ("FileGoodies","replaceFileName") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("FileGoodies","splitDirectoryBaseName") [Var 2])] (Let [(4,Comb FuncCall ("FileGoodies","replaceFileName._#selFP12#dir") [Var 3])] (Let [(5,Comb FuncCall ("FileGoodies","replaceFileName._#selFP13#fn") [Var 3])] (Case  Rigid (Var 4) [Branch (Pattern ("Prelude",":") [6,7]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 6,Lit (Charc  '.')]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Var 7) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","apply") [Var 1,Var 5]),Branch (Pattern ("Prelude",":") [8,9]) (Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb FuncCall ("Prelude","apply") [Var 1,Var 5]]])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb FuncCall ("Prelude","apply") [Var 1,Var 5]]])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb FuncCall ("Prelude","apply") [Var 1,Var 5]]])]))))),Func ("FileGoodies","replaceFileName._#selFP12#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 ("FileGoodies","replaceFileName._#selFP13#fn") 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)]))] []
diff --git a/src/lib/Curry/Module/.curry/FileGoodies.fint b/src/lib/Curry/Module/.curry/FileGoodies.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FileGoodies.fint
@@ -0,0 +1,1 @@
+Prog "FileGoodies" ["Directory","List","Prelude"] [] [Func ("FileGoodies","separatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Var 0)),Func ("FileGoodies","pathSeparatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Var 0)),Func ("FileGoodies","suffixSeparatorChar") 0 Public (TCons ("Prelude","Char") []) (Rule [] (Var 0)),Func ("FileGoodies","isAbsolute") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("FileGoodies","dirName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("FileGoodies","baseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("FileGoodies","splitDirectoryBaseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("FileGoodies","stripSuffix") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("FileGoodies","fileSuffix") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("FileGoodies","splitBaseName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("FileGoodies","splitPath") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("FileGoodies","findFileInPath") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])))) (Rule [] (Var 0)),Func ("FileGoodies","lookupFileInPath") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])))) (Rule [] (Var 0)),Func ("FileGoodies","getFileInPath") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])))) (Rule [] (Var 0)),Func ("FileGoodies","replaceFileName") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/FileGoodies.uacy b/src/lib/Curry/Module/.curry/FileGoodies.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FileGoodies.uacy
@@ -0,0 +1,19 @@
+CurryProg "FileGoodies"
+ ["Prelude","Directory","List"]
+ []
+ [CFunc ("FileGoodies","baseName") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","snd")) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (0,"name"))))] []]),
+  CFunc ("FileGoodies","dirName") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","fst")) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (0,"name"))))] []]),
+  CFunc ("FileGoodies","fileSuffix") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","snd"))) (CSymbol ("FileGoodies","splitBaseName")))] []]),
+  CFunc ("FileGoodies","findFileInPath") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","String") []]])))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FileGoodies","lookupFileInPath"))] []]),
+  CFunc ("FileGoodies","getFileInPath") 3 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"suffixes"),CPVar (2,"path")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"mbfile")) (CApply (CApply (CApply (CSymbol ("FileGoodies","lookupFileInPath")) (CVar (0,"file"))) (CVar (1,"suffixes"))) (CVar (2,"path"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","error"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"file"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))) (CApply (CSymbol ("Prelude","concat")) (CApply (CApply (CSymbol ("List","intersperse")) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","pathSeparatorChar"))) (CSymbol ("Prelude","[]")))) (CVar (2,"path"))))))))) (CSymbol ("Prelude","return"))) (CVar (3,"mbfile")))])] []]),
+  CFunc ("FileGoodies","isAbsolute") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("FileGoodies","separatorChar")))] []]),
+  CFunc ("FileGoodies","lookupFileInPath") 3 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","String") []]])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"suffixes"),CPVar (2,"path")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FileGoodies","isAbsolute")) (CVar (0,"file")))) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CVar (0,"file"))) (CVar (1,"suffixes")))) (CApply (CSymbol ("FileGoodies","lookupFirstFile")) (CVar (2,"path"))))] [CLocalFunc (CFunc ("FileGoodies","lookupFirstFile") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","Nothing")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"dir"),CPVar (4,"dirs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (5,"mbfile")) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (3,"dir"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","separatorChar"))) (CVar (0,"file"))))) (CVar (1,"suffixes"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CSymbol ("FileGoodies","lookupFirstFile")) (CVar (4,"dirs")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CSymbol ("Prelude","Just")))) (CVar (5,"mbfile")))])] []])),CLocalFunc (CFunc ("FileGoodies","lookupFirstFileWithSuffix") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (3,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","Nothing")))] [],CRule [CPVar (4,"f"),CPComb ("Prelude",":") [CPVar (5,"suf"),CPVar (6,"sufs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSLet [CLocalPat (CPVar (7,"fsuf")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"f"))) (CVar (5,"suf"))) []],CSPat (CPVar (8,"exfile")) (CApply (CSymbol ("Directory","doesFileExist")) (CVar (7,"fsuf"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (8,"exfile"))) (CApply (CSymbol ("Prelude","return")) (CApply (CSymbol ("Prelude","Just")) (CVar (7,"fsuf"))))) (CApply (CApply (CSymbol ("FileGoodies","lookupFirstFileWithSuffix")) (CVar (4,"f"))) (CVar (6,"sufs"))))])] []]))]]),
+  CFunc ("FileGoodies","pathSeparatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc ':'))] []]),
+  CFunc ("FileGoodies","replaceFileName") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") []))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"dir"),CPVar (3,"fn")]) (CApply (CSymbol ("FileGoodies","splitDirectoryBaseName")) (CVar (1,"s"))) []] (CCase (CVar (2,"dir")) [CBranch (CPComb ("Prelude",":") [CPLit (CCharc '.'),CPComb ("Prelude","[]") []]) (CApply (CVar (0,"f")) (CVar (3,"fn"))),CBranch (CPVar (4,"_")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"dir"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("FileGoodies","separatorChar"))) (CApply (CVar (0,"f")) (CVar (3,"fn")))))]))] []]),
+  CFunc ("FileGoodies","separatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc '/'))] []]),
+  CFunc ("FileGoodies","splitBaseName") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (1,"rsuffix"),CPVar (2,"rbase")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x0"))) (CSymbol ("FileGoodies","suffixSeparatorChar"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (0,"name")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Prelude","null")) (CVar (2,"rbase")))) (CApply (CApply (CSymbol ("Prelude","elem")) (CSymbol ("FileGoodies","separatorChar"))) (CVar (1,"rsuffix"))))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"name"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","reverse")) (CApply (CSymbol ("Prelude","tail")) (CVar (2,"rbase"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rsuffix"))))))] []]),
+  CFunc ("FileGoodies","splitDirectoryBaseName") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"name")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (1,"rbase"),CPVar (2,"rdir")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x0"))) (CSymbol ("FileGoodies","separatorChar"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (0,"name")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (2,"rdir")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rbase"))))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","reverse")) (CApply (CSymbol ("Prelude","tail")) (CVar (2,"rdir"))))) (CApply (CSymbol ("Prelude","reverse")) (CVar (1,"rbase"))))))] []]),
+  CFunc ("FileGoodies","splitPath") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"ys"),CPVar (3,"zs")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (4,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"x0"))) (CSymbol ("FileGoodies","pathSeparatorChar"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (1,"xs")))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Prelude","null")) (CVar (3,"zs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"ys"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"ys"))) (CApply (CSymbol ("FileGoodies","splitPath")) (CApply (CSymbol ("Prelude","tail")) (CVar (3,"zs")))))))] []]),
+  CFunc ("FileGoodies","stripSuffix") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","fst"))) (CSymbol ("FileGoodies","splitBaseName")))] []]),
+  CFunc ("FileGoodies","suffixSeparatorChar") 0 Public (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CCharc '.'))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/FiniteMap.acy b/src/lib/Curry/Module/.curry/FiniteMap.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FiniteMap.acy
@@ -0,0 +1,78 @@
+CurryProg "FiniteMap"
+ ["Prelude","Maybe"]
+ [CTypeSyn ("FiniteMap","LeKey") Private [(0,"key")] (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (0,"key")) (CTCons ("Prelude","Bool") []))),
+  CType ("FiniteMap","FM") Public [(0,"key"),(1,"elt")] [CCons ("FiniteMap","FM") 2 Public [CTCons ("FiniteMap","LeKey") [CTVar (0,"key")],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]]],
+  CType ("FiniteMap","FiniteMap") Private [(0,"key"),(1,"elt")] [CCons ("FiniteMap","EmptyFM") 0 Private [],CCons ("FiniteMap","Branch") 5 Private [CTVar (0,"key"),CTVar (1,"elt"),CTCons ("Prelude","Int") [],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]]],
+  CTypeSyn ("FiniteMap","FiniteSet") Private [(0,"key")] (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTCons ("Prelude","()") []])]
+ [CFunc ("FiniteMap","addListToFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key_elt_pairs"))))] []]),
+  CFunc ("FiniteMap","addListToFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm"),CPVar (2,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (3,"_"),CPVar (4,"new")] (CVar (4,"new")))) (CVar (1,"fm"))) (CVar (2,"key_elt_pairs")))] []]),
+  CFunc ("FiniteMap","addListToFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTVar (0,"a")]]) (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")],CPVar (3,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM_C'")) (CVar (1,"le"))) (CVar (0,"combiner"))) (CVar (2,"fm"))) (CVar (3,"key_elt_pairs"))))] []]),
+  CFunc ("FiniteMap","addListToFM_C'") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"combiner"),CPVar (2,"fm"),CPVar (3,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CSymbol ("FiniteMap","add"))) (CVar (2,"fm"))) (CVar (3,"key_elt_pairs")))] [CLocalFunc (CFunc ("FiniteMap","add") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_234"),CTVar (3,"_235")]) (CFuncType (CTCons ("Prelude","(,)") [CTVar (2,"_234"),CTVar (3,"_235")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_234"),CTVar (3,"_235")]))) (CRules CFlex [CRule [CPVar (4,"fmap"),CPComb ("Prelude","(,)") [CPVar (5,"key"),CPVar (6,"elt")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (0,"le"))) (CVar (1,"combiner"))) (CVar (4,"fmap"))) (CVar (5,"key"))) (CVar (6,"elt")))] []]))]]),
+  CFunc ("FiniteMap","addToFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key"))) (CVar (3,"elt"))))] []]),
+  CFunc ("FiniteMap","addToFM'") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm"),CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (4,"_"),CPVar (5,"new")] (CVar (5,"new")))) (CVar (1,"fm"))) (CVar (2,"key"))) (CVar (3,"elt")))] []]),
+  CFunc ("FiniteMap","addToFM_C") 4 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")],CPVar (3,"key"),CPVar (4,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (1,"le"))) (CVar (0,"combiner"))) (CVar (2,"fm"))) (CVar (3,"key"))) (CVar (4,"elt"))))] []]),
+  CFunc ("FiniteMap","addToFM_C'") 5 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","unitFM'")) (CVar (2,"key"))) (CVar (3,"elt")))] [],CRule [CPVar (4,"le"),CPVar (5,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"size"),CPVar (9,"fm_l"),CPVar (10,"fm_r")],CPVar (11,"new_key"),CPVar (12,"new_elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (4,"le")) (CVar (11,"new_key"))) (CVar (6,"key")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (4,"le"))) (CVar (5,"combiner"))) (CVar (9,"fm_l"))) (CVar (11,"new_key"))) (CVar (12,"new_elt")))) (CVar (10,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (11,"new_key"))) (CVar (6,"key")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (11,"new_key"))) (CApply (CApply (CVar (5,"combiner")) (CVar (7,"elt"))) (CVar (12,"new_elt")))) (CVar (8,"size"))) (CVar (9,"fm_l"))) (CVar (10,"fm_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CVar (9,"fm_l"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (4,"le"))) (CVar (5,"combiner"))) (CVar (10,"fm_r"))) (CVar (11,"new_key"))) (CVar (12,"new_elt"))))))] []]),
+  CFunc ("FiniteMap","delFromFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"del_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"del_key"))))] []]),
+  CFunc ("FiniteMap","delFromFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"del_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"del_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key"))) (CVar (4,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"del_key")))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"del_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueBal")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key"))) (CVar (4,"elt"))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"del_key"))))))] []]),
+  CFunc ("FiniteMap","delListFromFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"keys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (0,"le")))) (CVar (1,"fm"))) (CVar (2,"keys"))))] []]),
+  CFunc ("FiniteMap","deleteMax") 2 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","Branch") [CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"fm_l"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CVar (4,"fm_l"))] [],CRule [CPVar (5,"le"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPVar (9,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_r"),CPVar (11,"elt_r"),CPVar (12,"s_r"),CPVar (13,"fm_rl"),CPVar (14,"fm_rr")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CVar (9,"fm_l"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMax")) (CVar (5,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (10,"key_r"))) (CVar (11,"elt_r"))) (CVar (12,"s_r"))) (CVar (13,"fm_rl"))) (CVar (14,"fm_rr")))))] []]),
+  CFunc ("FiniteMap","deleteMin") 2 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","Branch") [CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (4,"fm_r")]] [(CSymbol ("Prelude","success"),CVar (4,"fm_r"))] [],CRule [CPVar (5,"le"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPComb ("FiniteMap","Branch") [CPVar (9,"key_l"),CPVar (10,"elt_l"),CPVar (11,"s_l"),CPVar (12,"fm_ll"),CPVar (13,"fm_lr")],CPVar (14,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMin")) (CVar (5,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"key_l"))) (CVar (10,"elt_l"))) (CVar (11,"s_l"))) (CVar (12,"fm_ll"))) (CVar (13,"fm_lr"))))) (CVar (14,"fm_r")))] []]),
+  CFunc ("FiniteMap","elemFM") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"fm")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Maybe","isJust")) (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (1,"fm"))) (CVar (0,"key"))))] []]),
+  CFunc ("FiniteMap","elementOf") 0 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","elemFM"))] []]),
+  CFunc ("FiniteMap","eltsFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"_"),CPVar (2,"elt"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"elt"))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]),
+  CFunc ("FiniteMap","emptyFM") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CSymbol ("FiniteMap","EmptyFM")))] []]),
+  CFunc ("FiniteMap","emptySet") 0 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","emptyFM"))] []]),
+  CFunc ("FiniteMap","eqFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"fm_1"),CPVar (1,"fm_2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (0,"fm_1")))) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (1,"fm_2"))))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"fm_1")))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (1,"fm_2")))))] []]),
+  CFunc ("FiniteMap","filterFM") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (1,"le"))) (CVar (0,"p"))) (CVar (2,"fm"))))] []]),
+  CFunc ("FiniteMap","filterFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPVar (3,"p"),CPComb ("FiniteMap","Branch") [CPVar (4,"key"),CPVar (5,"elt"),CPVar (6,"_"),CPVar (7,"fm_l"),CPVar (8,"fm_r")]] [(CApply (CApply (CVar (3,"p")) (CVar (4,"key"))) (CVar (5,"elt")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (4,"key"))) (CVar (5,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (8,"fm_r")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (2,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (8,"fm_r"))))] []]),
+  CFunc ("FiniteMap","findMax") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"_"),CPVar (3,"_"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CVar (1,"elt")))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_"),CPComb ("FiniteMap","Branch") [CPVar (8,"key_r"),CPVar (9,"elt_r"),CPVar (10,"s_r"),CPVar (11,"fm_rl"),CPVar (12,"fm_rr")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","findMax")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (8,"key_r"))) (CVar (9,"elt_r"))) (CVar (10,"s_r"))) (CVar (11,"fm_rl"))) (CVar (12,"fm_rr"))))] []]),
+  CFunc ("FiniteMap","findMin") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CVar (1,"elt")))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_l"),CPVar (8,"elt_l"),CPVar (9,"s_l"),CPVar (10,"fm_ll"),CPVar (11,"fm_lr")],CPVar (12,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","findMin")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (7,"key_l"))) (CVar (8,"elt_l"))) (CVar (9,"s_l"))) (CVar (10,"fm_ll"))) (CVar (11,"fm_lr"))))] []]),
+  CFunc ("FiniteMap","fmSortBy") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","keysFM")) (CApply (CApply (CSymbol ("FiniteMap","listToFM")) (CVar (0,"p"))) (CApply (CApply (CSymbol ("Prelude","zip")) (CVar (1,"l"))) (CApply (CSymbol ("Prelude","repeat")) (CSymbol ("Prelude","()"))))))] []]),
+  CFunc ("FiniteMap","fmToList") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"key"),CPVar (2,"elt"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"key"))) (CVar (2,"elt")))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]),
+  CFunc ("FiniteMap","fmToListPreOrder") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPVar (1,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (1,"fm"))) (CSymbol ("Prelude","[]")))] [CLocalFunc (CFunc ("FiniteMap","pre") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]))) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"xs")] [(CSymbol ("Prelude","success"),CVar (2,"xs"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (3,"k"),CPVar (4,"x"),CPVar (5,"_"),CPVar (6,"l"),CPVar (7,"r")],CPVar (8,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"k"))) (CVar (4,"x")))) (CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (6,"l"))) (CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (7,"r"))) (CVar (8,"xs")))))] []]))]]),
+  CFunc ("FiniteMap","foldFM") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTVar (2,"c"))))) (CFuncType (CTVar (2,"c")) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (2,"c"))))) (CRules CFlex [CRule [CPVar (0,"k"),CPVar (1,"z"),CPComb ("FiniteMap","FM") [CPVar (2,"le"),CPVar (3,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (2,"le"))) (CVar (0,"k"))) (CVar (1,"z"))) (CVar (3,"fm")))] []]),
+  CFunc ("FiniteMap","foldFM'") 4 Private (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CFuncType (CTVar (3,"d")) (CTVar (3,"d"))))) (CFuncType (CTVar (3,"d")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (1,"b"),CTVar (2,"c")]) (CTVar (3,"d")))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"z"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CVar (2,"z"))] [],CRule [CPVar (3,"le"),CPVar (4,"k"),CPVar (5,"z"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPVar (9,"fm_l"),CPVar (10,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (3,"le"))) (CVar (4,"k"))) (CApply (CApply (CApply (CVar (4,"k")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (3,"le"))) (CVar (4,"k"))) (CVar (5,"z"))) (CVar (10,"fm_r"))))) (CVar (9,"fm_l")))] []]),
+  CFunc ("FiniteMap","glueBal") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm1"),CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (1,"fm1")))) (CVar (2,"fm2"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (2,"fm2")))) (CVar (1,"fm1"))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"mid_key1"),CPVar (4,"mid_elt1")]) (CApply (CSymbol ("FiniteMap","findMax")) (CVar (1,"fm1"))) [],CLocalPat (CPComb ("Prelude","(,)") [CPVar (5,"mid_key2"),CPVar (6,"mid_elt2")]) (CApply (CSymbol ("FiniteMap","findMin")) (CVar (2,"fm2"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm2")))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (1,"fm1"))))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (5,"mid_key2"))) (CVar (6,"mid_elt2"))) (CVar (1,"fm1"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMin")) (CVar (0,"le"))) (CVar (2,"fm2"))))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"mid_key1"))) (CVar (4,"mid_elt1"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMax")) (CVar (0,"le"))) (CVar (1,"fm1")))) (CVar (2,"fm2")))))))] []]),
+  CFunc ("FiniteMap","glueVBal") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm_l"),CPVar (2,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (1,"fm_l")))) (CVar (2,"fm_r"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (2,"fm_r")))) (CVar (1,"fm_l"))) (CLetDecl [CLocalPat (CPComb ("FiniteMap","Branch") [CPVar (3,"key_l"),CPVar (4,"elt_l"),CPVar (5,"_"),CPVar (6,"fm_ll"),CPVar (7,"fm_lr")]) (CVar (1,"fm_l")) [],CLocalPat (CPComb ("FiniteMap","Branch") [CPVar (8,"key_r"),CPVar (9,"elt_r"),CPVar (10,"_"),CPVar (11,"fm_rl"),CPVar (12,"fm_rr")]) (CVar (2,"fm_r")) [],CLocalPat (CPVar (13,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (1,"fm_l"))) [],CLocalPat (CPVar (14,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm_r"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (13,"size_l")))) (CVar (14,"size_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (8,"key_r"))) (CVar (9,"elt_r"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (0,"le"))) (CVar (1,"fm_l"))) (CVar (11,"fm_rl")))) (CVar (12,"fm_rr")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (14,"size_r")))) (CVar (13,"size_l")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key_l"))) (CVar (4,"elt_l"))) (CVar (6,"fm_ll"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (0,"le"))) (CVar (7,"fm_lr"))) (CVar (2,"fm_r"))))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueBal")) (CVar (0,"le"))) (CVar (1,"fm_l"))) (CVar (2,"fm_r"))))))))] []]),
+  CFunc ("FiniteMap","intersectFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]),
+  CFunc ("FiniteMap","intersectFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (2,"c")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (2,"c")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm1"),CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (3,"_"),CPVar (4,"right")] (CVar (4,"right")))) (CVar (1,"fm1"))) (CVar (2,"fm2")))] []]),
+  CFunc ("FiniteMap","intersectFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (2,"c"),CTVar (0,"a")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (2,"c"),CTVar (0,"a")]) (CTCons ("FiniteMap","FM") [CTVar (2,"c"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le1"),CPVar (2,"fm1")],CPComb ("FiniteMap","FM") [CPVar (3,"_"),CPVar (4,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le1"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (1,"le1"))) (CVar (0,"combiner"))) (CVar (2,"fm1"))) (CVar (4,"fm2"))))] []]),
+  CFunc ("FiniteMap","intersectFM_C'") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTVar (3,"d")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (2,"c")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (3,"d")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (3,"_"),CPVar (4,"_"),CPComb ("FiniteMap","EmptyFM") [],CPComb ("FiniteMap","Branch") [CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_"),CPVar (8,"_"),CPVar (9,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (10,"le"),CPVar (11,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (12,"split_key1"),CPVar (13,"elt1"),CPVar (14,"s1"),CPVar (15,"left1"),CPVar (16,"right1")],CPComb ("FiniteMap","Branch") [CPVar (17,"split_key"),CPVar (18,"elt2"),CPVar (19,"_"),CPVar (20,"left"),CPVar (21,"right")]] [(CApply (CSymbol ("Maybe","isJust")) (CVar (25,"maybe_elt1")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (10,"le"))) (CVar (17,"split_key"))) (CApply (CApply (CVar (11,"combiner")) (CVar (26,"elt1'"))) (CVar (18,"elt2")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (10,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right"))))] [CLocalPat (CPVar (22,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (12,"split_key1"))) (CVar (13,"elt1"))) (CVar (14,"s1"))) (CVar (15,"left1"))) (CVar (16,"right1"))) [],CLocalPat (CPVar (23,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (24,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (25,"maybe_elt1")) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPComb ("Prelude","Just") [CPVar (26,"elt1'")]) (CVar (25,"maybe_elt1")) []]]),
+  CFunc ("FiniteMap","isEmptyFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (0,"fm")))) (CLit (CIntc 0)))] []]),
+  CFunc ("FiniteMap","isEmptyFM'") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (0,"fm")))) (CLit (CIntc 0)))] []]),
+  CFunc ("FiniteMap","isEmptySet") 0 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","isEmptyFM"))] []]),
+  CFunc ("FiniteMap","keyOrder") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"lt"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"lt"))] []]),
+  CFunc ("FiniteMap","keysFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"key"),CPVar (2,"_"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"key"))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]),
+  CFunc ("FiniteMap","listToFM") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","addListToFM")) (CApply (CSymbol ("FiniteMap","emptyFM")) (CVar (0,"le"))))] []]),
+  CFunc ("FiniteMap","lookupFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key")))] []]),
+  CFunc ("FiniteMap","lookupFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"key_to_find")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"key_to_find"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"key_to_find")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"key_to_find"))) (CVar (3,"key")))) (CApply (CSymbol ("Prelude","Just")) (CVar (4,"elt")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"key_to_find")))))] []]),
+  CFunc ("FiniteMap","lookupWithDefaultFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"fm"),CPVar (1,"deflt"),CPVar (2,"key")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (0,"fm"))) (CVar (2,"key"))) [CBranch (CPComb ("Prelude","Nothing") []) (CVar (1,"deflt")),CBranch (CPComb ("Prelude","Just") [CPVar (3,"elt")]) (CVar (3,"elt"))])] []]),
+  CFunc ("FiniteMap","mapFM") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (2,"c")]))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (1,"le"))) (CVar (0,"f"))) (CVar (2,"fm"))))] []]),
+  CFunc ("FiniteMap","mapFM'") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTVar (3,"d")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (1,"b"),CTVar (2,"c")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (1,"b"),CTVar (3,"d")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPVar (3,"f"),CPComb ("FiniteMap","Branch") [CPVar (4,"key"),CPVar (5,"elt"),CPVar (6,"size"),CPVar (7,"fm_l"),CPVar (8,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"key"))) (CApply (CApply (CVar (3,"f")) (CVar (4,"key"))) (CVar (5,"elt")))) (CVar (6,"size"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (2,"le"))) (CVar (3,"f"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (2,"le"))) (CVar (3,"f"))) (CVar (8,"fm_r"))))] []]),
+  CFunc ("FiniteMap","maxFM") 0 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FiniteMap","max"))) (CSymbol ("FiniteMap","tree")))] [CLocalFunc (CFunc ("FiniteMap","max") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"k"),CPVar (1,"x"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"r")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"r"))) (CSymbol ("FiniteMap","EmptyFM")),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"x")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("FiniteMap","max")) (CVar (4,"r")))] []]))]]),
+  CFunc ("FiniteMap","minFM") 0 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FiniteMap","min"))) (CSymbol ("FiniteMap","tree")))] [CLocalFunc (CFunc ("FiniteMap","min") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"k"),CPVar (1,"x"),CPVar (2,"_"),CPVar (3,"l"),CPVar (4,"_")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"l"))) (CSymbol ("FiniteMap","EmptyFM")),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"x")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("FiniteMap","min")) (CVar (3,"l")))] []]))]]),
+  CFunc ("FiniteMap","minusFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]),
+  CFunc ("FiniteMap","minusFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (2,"c")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"_"),CPComb ("FiniteMap","Branch") [CPVar (3,"split_key1"),CPVar (4,"elt1"),CPVar (5,"s1"),CPVar (6,"left1"),CPVar (7,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (3,"split_key1"))) (CVar (4,"elt1"))) (CVar (5,"s1"))) (CVar (6,"left1"))) (CVar (7,"right1")))] [],CRule [CPVar (8,"le"),CPComb ("FiniteMap","Branch") [CPVar (9,"split_key1"),CPVar (10,"elt1"),CPVar (11,"s1"),CPVar (12,"left1"),CPVar (13,"right1")],CPComb ("FiniteMap","Branch") [CPVar (14,"split_key"),CPVar (15,"_"),CPVar (16,"_"),CPVar (17,"left"),CPVar (18,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (8,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (8,"le"))) (CVar (20,"lts"))) (CVar (17,"left")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (8,"le"))) (CVar (21,"gts"))) (CVar (18,"right"))))] [CLocalPat (CPVar (19,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"split_key1"))) (CVar (10,"elt1"))) (CVar (11,"s1"))) (CVar (12,"left1"))) (CVar (13,"right1"))) [],CLocalPat (CPVar (20,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) [],CLocalPat (CPVar (21,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) []]]),
+  CFunc ("FiniteMap","minusSet") 0 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","minusFM"))] []]),
+  CFunc ("FiniteMap","mkBalBranch") 4 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"fm_L"),CPVar (3,"fm_R")] [(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"size_l"))) (CVar (5,"size_r")))) (CLit (CIntc 2)),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 1))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (5,"size_r"))) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (4,"size_l"))),CCase (CVar (3,"fm_R")) [CBranch (CPComb ("FiniteMap","Branch") [CPVar (6,"_"),CPVar (7,"_"),CPVar (8,"_"),CPVar (9,"fm_rl"),CPVar (10,"fm_rr")]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (9,"fm_rl")))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (10,"fm_rr")))))) (CApply (CApply (CSymbol ("FiniteMap","single_L")) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))) (CApply (CApply (CSymbol ("FiniteMap","double_L")) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))))]),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (4,"size_l"))) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (5,"size_r"))),CCase (CVar (2,"fm_L")) [CBranch (CPComb ("FiniteMap","Branch") [CPVar (11,"_"),CPVar (12,"_"),CPVar (13,"_"),CPVar (14,"fm_ll"),CPVar (15,"fm_lr")]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (15,"fm_lr")))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (14,"fm_ll")))))) (CApply (CApply (CSymbol ("FiniteMap","single_R")) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))) (CApply (CApply (CSymbol ("FiniteMap","double_R")) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))))]),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 2))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))] [CLocalPat (CPVar (4,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm_L"))) [],CLocalPat (CPVar (5,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (3,"fm_R"))) [],CLocalFunc (CFunc ("FiniteMap","single_L") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]))) (CRules CFlex [CRule [CPVar (6,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_r"),CPVar (8,"elt_r"),CPVar (9,"_"),CPVar (10,"fm_rl"),CPVar (11,"fm_rr")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 3))) (CVar (7,"key_r"))) (CVar (8,"elt_r"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 4))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (6,"fm_l"))) (CVar (10,"fm_rl")))) (CVar (11,"fm_rr")))] []])),CLocalFunc (CFunc ("FiniteMap","double_L") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]))) (CRules CFlex [CRule [CPVar (6,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_r"),CPVar (8,"elt_r"),CPVar (9,"_"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_rl"),CPVar (11,"elt_rl"),CPVar (12,"_"),CPVar (13,"fm_rll"),CPVar (14,"fm_rlr")],CPVar (15,"fm_rr")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 5))) (CVar (10,"key_rl"))) (CVar (11,"elt_rl"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 6))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (6,"fm_l"))) (CVar (13,"fm_rll")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 7))) (CVar (7,"key_r"))) (CVar (8,"elt_r"))) (CVar (14,"fm_rlr"))) (CVar (15,"fm_rr"))))] []])),CLocalFunc (CFunc ("FiniteMap","single_R") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (6,"key_l"),CPVar (7,"elt_l"),CPVar (8,"_"),CPVar (9,"fm_ll"),CPVar (10,"fm_lr")],CPVar (11,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 8))) (CVar (6,"key_l"))) (CVar (7,"elt_l"))) (CVar (9,"fm_ll"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 9))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (10,"fm_lr"))) (CVar (11,"fm_r"))))] []])),CLocalFunc (CFunc ("FiniteMap","double_R") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (6,"key_l"),CPVar (7,"elt_l"),CPVar (8,"_"),CPVar (9,"fm_ll"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_lr"),CPVar (11,"elt_lr"),CPVar (12,"_"),CPVar (13,"fm_lrl"),CPVar (14,"fm_lrr")]],CPVar (15,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 10))) (CVar (10,"key_lr"))) (CVar (11,"elt_lr"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 11))) (CVar (6,"key_l"))) (CVar (7,"elt_l"))) (CVar (9,"fm_ll"))) (CVar (13,"fm_lrl")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 12))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (14,"fm_lrr"))) (CVar (15,"fm_r"))))] []]))]]),
+  CFunc ("FiniteMap","mkBranch") 5 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"key"),CPVar (2,"elt"),CPVar (3,"fm_l"),CPVar (4,"fm_r")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (7,"result")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (1,"key"))) (CVar (2,"elt"))) (CApply (CSymbol ("FiniteMap","unbox")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CLit (CIntc 1))) (CVar (5,"left_size")))) (CVar (6,"right_size"))))) (CVar (3,"fm_l"))) (CVar (4,"fm_r"))) []] (CVar (7,"result")))] [CLocalPat (CPVar (5,"left_size")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (3,"fm_l"))) [],CLocalPat (CPVar (6,"right_size")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (4,"fm_r"))) [],CLocalFunc (CFunc ("FiniteMap","unbox") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (7,"x")] [(CSymbol ("Prelude","success"),CVar (7,"x"))] []]))]]),
+  CFunc ("FiniteMap","mkSet") 2 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","listToFM")) (CVar (0,"le"))) (CListComp (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (2,"x"))) (CSymbol ("Prelude","()"))) [CSPat (CPVar (2,"x")) (CVar (1,"xs"))]))] []]),
+  CFunc ("FiniteMap","mkVBalBranch") 5 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"key"),CPVar (2,"elt"),CPComb ("FiniteMap","EmptyFM") [],CPVar (3,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (0,"le"))) (CVar (3,"fm_r"))) (CVar (1,"key"))) (CVar (2,"elt")))] [],CRule [CPVar (4,"le"),CPVar (5,"key"),CPVar (6,"elt"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_l"),CPVar (8,"elt_l"),CPVar (9,"s_l"),CPVar (10,"fm_ll"),CPVar (11,"fm_lr")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (4,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (7,"key_l"))) (CVar (8,"elt_l"))) (CVar (9,"s_l"))) (CVar (10,"fm_ll"))) (CVar (11,"fm_lr")))) (CVar (5,"key"))) (CVar (6,"elt")))] [],CRule [CPVar (12,"le"),CPVar (13,"key"),CPVar (14,"elt"),CPComb ("FiniteMap","Branch") [CPVar (15,"key_l"),CPVar (16,"elt_l"),CPVar (17,"s_l"),CPVar (18,"fm_ll"),CPVar (19,"fm_lr")],CPComb ("FiniteMap","Branch") [CPVar (20,"key_r"),CPVar (21,"elt_r"),CPVar (22,"s_r"),CPVar (23,"fm_rl"),CPVar (24,"fm_rr")]] [(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (27,"size_l")))) (CVar (28,"size_r")),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (20,"key_r"))) (CVar (21,"elt_r"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (12,"le"))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (25,"fm_l"))) (CVar (23,"fm_rl")))) (CVar (24,"fm_rr"))),(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (28,"size_r")))) (CVar (27,"size_l")),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (15,"key_l"))) (CVar (16,"elt_l"))) (CVar (18,"fm_ll"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (12,"le"))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (19,"fm_lr"))) (CVar (26,"fm_r")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 13))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (25,"fm_l"))) (CVar (26,"fm_r")))] [CLocalPat (CPVar (25,"fm_l")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (15,"key_l"))) (CVar (16,"elt_l"))) (CVar (17,"s_l"))) (CVar (18,"fm_ll"))) (CVar (19,"fm_lr"))) [],CLocalPat (CPVar (26,"fm_r")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (20,"key_r"))) (CVar (21,"elt_r"))) (CVar (22,"s_r"))) (CVar (23,"fm_rl"))) (CVar (24,"fm_rr"))) [],CLocalPat (CPVar (27,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (25,"fm_l"))) [],CLocalPat (CPVar (28,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (26,"fm_r"))) []]]),
+  CFunc ("FiniteMap","plusFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]),
+  CFunc ("FiniteMap","plusFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"fm2")] [(CSymbol ("Prelude","success"),CVar (1,"fm2"))] [],CRule [CPVar (2,"_"),CPComb ("FiniteMap","Branch") [CPVar (3,"split_key1"),CPVar (4,"elt1"),CPVar (5,"s1"),CPVar (6,"left1"),CPVar (7,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (3,"split_key1"))) (CVar (4,"elt1"))) (CVar (5,"s1"))) (CVar (6,"left1"))) (CVar (7,"right1")))] [],CRule [CPVar (8,"le"),CPComb ("FiniteMap","Branch") [CPVar (9,"split_key1"),CPVar (10,"elt1"),CPVar (11,"s1"),CPVar (12,"left1"),CPVar (13,"right1")],CPComb ("FiniteMap","Branch") [CPVar (14,"split_key"),CPVar (15,"elt2"),CPVar (16,"_"),CPVar (17,"left"),CPVar (18,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (8,"le"))) (CVar (14,"split_key"))) (CVar (15,"elt2"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (8,"le"))) (CVar (20,"lts"))) (CVar (17,"left")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (8,"le"))) (CVar (21,"gts"))) (CVar (18,"right"))))] [CLocalPat (CPVar (19,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"split_key1"))) (CVar (10,"elt1"))) (CVar (11,"s1"))) (CVar (12,"left1"))) (CVar (13,"right1"))) [],CLocalPat (CPVar (20,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) [],CLocalPat (CPVar (21,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) []]]),
+  CFunc ("FiniteMap","plusFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]) (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le1"),CPVar (2,"fm1")],CPComb ("FiniteMap","FM") [CPVar (3,"_"),CPVar (4,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le1"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (1,"le1"))) (CVar (0,"combiner"))) (CVar (2,"fm1"))) (CVar (4,"fm2"))))] []]),
+  CFunc ("FiniteMap","plusFM_C'") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CVar (2,"fm2"))] [],CRule [CPVar (3,"_"),CPVar (4,"_"),CPComb ("FiniteMap","Branch") [CPVar (5,"split_key1"),CPVar (6,"elt1"),CPVar (7,"s1"),CPVar (8,"left1"),CPVar (9,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (5,"split_key1"))) (CVar (6,"elt1"))) (CVar (7,"s1"))) (CVar (8,"left1"))) (CVar (9,"right1")))] [],CRule [CPVar (10,"le"),CPVar (11,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (12,"split_key1"),CPVar (13,"elt1"),CPVar (14,"s1"),CPVar (15,"left1"),CPVar (16,"right1")],CPComb ("FiniteMap","Branch") [CPVar (17,"split_key"),CPVar (18,"elt2"),CPVar (19,"_"),CPVar (20,"left"),CPVar (21,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (10,"le"))) (CVar (17,"split_key"))) (CVar (25,"new_elt"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right"))))] [CLocalPat (CPVar (22,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (12,"split_key1"))) (CVar (13,"elt1"))) (CVar (14,"s1"))) (CVar (15,"left1"))) (CVar (16,"right1"))) [],CLocalPat (CPVar (23,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (24,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (25,"new_elt")) (CCase (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [CBranch (CPComb ("Prelude","Nothing") []) (CVar (18,"elt2")),CBranch (CPComb ("Prelude","Just") [CPVar (26,"elt1'")]) (CApply (CApply (CVar (11,"combiner")) (CVar (26,"elt1'"))) (CVar (18,"elt2")))]) []]]),
+  CFunc ("FiniteMap","sIZE_RATIO") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 5))] []]),
+  CFunc ("FiniteMap","setToList") 0 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","keysFM"))] []]),
+  CFunc ("FiniteMap","sizeFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("FiniteMap","FM") [CPVar (1,"_"),CPComb ("FiniteMap","Branch") [CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"size"),CPVar (5,"_"),CPVar (6,"_")]]] [(CSymbol ("Prelude","success"),CVar (4,"size"))] []]),
+  CFunc ("FiniteMap","sizeFM'") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"size"),CPVar (3,"_"),CPVar (4,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"size"))] []]),
+  CFunc ("FiniteMap","splitFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")],CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CSymbol ("Prelude","Nothing"))) (CLambda [CPVar (2,"x")] (CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("FiniteMap","delFromFM")) (CVar (0,"g"))) (CVar (1,"v")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"v"))) (CVar (2,"x"))))))) (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (0,"g"))) (CVar (1,"v"))))] []]),
+  CFunc ("FiniteMap","splitGT") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"split_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (3,"key"))) (CVar (4,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"split_key")))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CVar (7,"fm_r"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"split_key")))))] []]),
+  CFunc ("FiniteMap","splitLT") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"split_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"split_key")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (3,"key"))) (CVar (4,"elt"))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"split_key"))))))] []]),
+  CFunc ("FiniteMap","toGT") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"x"),CPVar (2,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","not")) (CApply (CApply (CVar (0,"le")) (CVar (1,"x"))) (CVar (2,"y"))))) (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (1,"x"))) (CVar (2,"y"))))] []]),
+  CFunc ("FiniteMap","tree") 1 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPVar (1,"fm")]] [(CSymbol ("Prelude","success"),CVar (1,"fm"))] []]),
+  CFunc ("FiniteMap","union") 0 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","plusFM"))] []]),
+  CFunc ("FiniteMap","unitFM") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"key"),CPVar (2,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CSymbol ("FiniteMap","unitFM'")) (CVar (1,"key"))) (CVar (2,"elt"))))] []]),
+  CFunc ("FiniteMap","unitFM'") 2 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (0,"key"))) (CVar (1,"elt"))) (CLit (CIntc 1))) (CSymbol ("FiniteMap","EmptyFM"))) (CSymbol ("FiniteMap","EmptyFM")))] []]),
+  CFunc ("FiniteMap","updFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (1,"b"))) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"lt"),CPVar (1,"fm")],CPVar (2,"i"),CPVar (3,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"lt"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (1,"fm"))))] [CLocalFunc (CFunc ("FiniteMap","upd") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_535"),CTVar (3,"_523")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_535"),CTVar (3,"_523")])) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"k"),CPVar (5,"x"),CPVar (6,"h"),CPVar (7,"l"),CPVar (8,"r")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"i"))) (CVar (4,"k")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CApply (CVar (3,"f")) (CVar (5,"x")))) (CVar (6,"h"))) (CVar (7,"l"))) (CVar (8,"r"))),(CApply (CApply (CVar (0,"lt")) (CVar (2,"i"))) (CVar (4,"k")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CVar (5,"x"))) (CVar (6,"h"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (7,"l")))) (CVar (8,"r"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CVar (5,"x"))) (CVar (6,"h"))) (CVar (7,"l"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (8,"r"))))] []]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/FiniteMap.cy b/src/lib/Curry/Module/.curry/FiniteMap.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FiniteMap.cy
@@ -0,0 +1,131 @@
+Module "FiniteMap"
+(Just (Exporting (15,18) [(Export (QualIdent Nothing (Ident "FM" 0))),(Export (QualIdent Nothing (Ident "emptyFM" 0))),(Export (QualIdent Nothing (Ident "unitFM" 0))),(Export (QualIdent Nothing (Ident "listToFM" 0))),(Export (QualIdent Nothing (Ident "addToFM" 0))),(Export (QualIdent Nothing (Ident "addToFM_C" 0))),(Export (QualIdent Nothing (Ident "addListToFM" 0))),(Export (QualIdent Nothing (Ident "addListToFM_C" 0))),(Export (QualIdent Nothing (Ident "delFromFM" 0))),(Export (QualIdent Nothing (Ident "delListFromFM" 0))),(Export (QualIdent Nothing (Ident "splitFM" 0))),(Export (QualIdent Nothing (Ident "plusFM" 0))),(Export (QualIdent Nothing (Ident "plusFM_C" 0))),(Export (QualIdent Nothing (Ident "minusFM" 0))),(Export (QualIdent Nothing (Ident "intersectFM" 0))),(Export (QualIdent Nothing (Ident "intersectFM_C" 0))),(Export (QualIdent Nothing (Ident "foldFM" 0))),(Export (QualIdent Nothing (Ident "mapFM" 0))),(Export (QualIdent Nothing (Ident "filterFM" 0))),(Export (QualIdent Nothing (Ident "sizeFM" 0))),(Export (QualIdent Nothing (Ident "eqFM" 0))),(Export (QualIdent Nothing (Ident "isEmptyFM" 0))),(Export (QualIdent Nothing (Ident "elemFM" 0))),(Export (QualIdent Nothing (Ident "lookupFM" 0))),(Export (QualIdent Nothing (Ident "lookupWithDefaultFM" 0))),(Export (QualIdent Nothing (Ident "keyOrder" 0))),(Export (QualIdent Nothing (Ident "fmToList" 0))),(Export (QualIdent Nothing (Ident "keysFM" 0))),(Export (QualIdent Nothing (Ident "eltsFM" 0))),(Export (QualIdent Nothing (Ident "fmSortBy" 0))),(Export (QualIdent Nothing (Ident "minFM" 0))),(Export (QualIdent Nothing (Ident "maxFM" 0))),(Export (QualIdent Nothing (Ident "updFM" 0))),(Export (QualIdent Nothing (Ident "fmToListPreOrder" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (56,1) "Maybe" False Nothing Nothing)
+,(TypeDecl (59,1) (Ident "LeKey" 0) [(Ident "key" 0)] (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "key" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(DataDecl (420,1) (Ident "FM" 0) [(Ident "key" 0),(Ident "elt" 0)] [(ConstrDecl (420,19) [] (Ident "FM" 0) [(ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]),(ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])])])
+,(DataDecl (425,1) (Ident "FiniteMap" 0) [(Ident "key" 0),(Ident "elt" 0)] [(ConstrDecl (426,5) [] (Ident "EmptyFM" 0) []),(ConstrDecl (427,5) [] (Ident "Branch" 0) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0)),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]),(ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])])])
+,(TypeDecl (678,1) (Ident "FiniteSet" 0) [(Ident "key" 0)] (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(TupleType [])]))
+,(TypeSig (69,1) [(Ident "emptyFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "_" 0))])))
+,(FunctionDecl (70,1) (Ident "emptyFM" 0) [(Equation (70,1) (FunLhs (Ident "emptyFM" 0) [(VariablePattern (Ident "le" 2))]) (SimpleRhs (70,14) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 2)))) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)))) []))])
+,(TypeSig (77,1) [(Ident "unitFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt" 0)) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))
+,(FunctionDecl (78,1) (Ident "unitFM" 0) [(Equation (78,1) (FunLhs (Ident "unitFM" 0) [(VariablePattern (Ident "le" 4)),(VariablePattern (Ident "key" 4)),(VariablePattern (Ident "elt" 4))]) (SimpleRhs (78,21) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 4)))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "unitFM'" 0))) (Variable (QualIdent Nothing (Ident "key" 4)))) (Variable (QualIdent Nothing (Ident "elt" 4)))))) []))])
+,(FunctionDecl (80,1) (Ident "unitFM'" 0) [(Equation (80,1) (FunLhs (Ident "unitFM'" 0) [(VariablePattern (Ident "key" 6)),(VariablePattern (Ident "elt" 6))]) (SimpleRhs (80,19) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key" 6)))) (Variable (QualIdent Nothing (Ident "elt" 6)))) (Literal (Int (Ident "_" 8) 1))) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)))) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)))) []))])
+,(TypeSig (87,1) [(Ident "listToFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ListType (TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (88,1) (Ident "listToFM" 0) [(Equation (88,1) (FunLhs (Ident "listToFM" 0) [(VariablePattern (Ident "le" 9))]) (SimpleRhs (88,15) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addListToFM" 0))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "emptyFM" 0))) (Variable (QualIdent Nothing (Ident "le" 9)))))) []))])
+,(TypeSig (96,1) [(Ident "addToFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt" 0)) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))
+,(FunctionDecl (97,1) (Ident "addToFM" 0) [(Equation (97,1) (FunLhs (Ident "addToFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 11)),(VariablePattern (Ident "fm" 11))])),(VariablePattern (Ident "key" 11)),(VariablePattern (Ident "elt" 11))]) (SimpleRhs (97,30) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 11)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 11)))) (Variable (QualIdent Nothing (Ident "fm" 11)))) (Variable (QualIdent Nothing (Ident "key" 11)))) (Variable (QualIdent Nothing (Ident "elt" 11)))))) []))])
+,(FunctionDecl (99,1) (Ident "addToFM'" 0) [(Equation (99,1) (FunLhs (Ident "addToFM'" 0) [(VariablePattern (Ident "le" 13)),(VariablePattern (Ident "fm" 13)),(VariablePattern (Ident "key" 13)),(VariablePattern (Ident "elt" 13))]) (SimpleRhs (99,26) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 13)))) (Paren (Lambda [(VariablePattern (Ident "_" 16)),(VariablePattern (Ident "new" 15))] (Variable (QualIdent Nothing (Ident "new" 15)))))) (Variable (QualIdent Nothing (Ident "fm" 13)))) (Variable (QualIdent Nothing (Ident "key" 13)))) (Variable (QualIdent Nothing (Ident "elt" 13)))) []))])
+,(FunctionDecl (101,1) (Ident "addToFM_C'" 0) [(Equation (101,1) (FunLhs (Ident "addToFM_C'" 0) [(VariablePattern (Ident "_" 18)),(VariablePattern (Ident "_" 19)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "key" 17)),(VariablePattern (Ident "elt" 17))]) (SimpleRhs (101,34) (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "unitFM'" 0))) (Variable (QualIdent Nothing (Ident "key" 17)))) (Variable (QualIdent Nothing (Ident "elt" 17)))) [])),(Equation (102,1) (FunLhs (Ident "addToFM_C'" 0) [(VariablePattern (Ident "le" 21)),(VariablePattern (Ident "combiner" 21)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 21)),(VariablePattern (Ident "elt" 21)),(VariablePattern (Ident "size" 21)),(VariablePattern (Ident "fm_l" 21)),(VariablePattern (Ident "fm_r" 21))])),(VariablePattern (Ident "new_key" 21)),(VariablePattern (Ident "new_elt" 21))]) (SimpleRhs (103,5) (IfThenElse (Apply (Apply (Variable (QualIdent Nothing (Ident "le" 21))) (Variable (QualIdent Nothing (Ident "new_key" 21)))) (Variable (QualIdent Nothing (Ident "key" 21)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key" 21)))) (Variable (QualIdent Nothing (Ident "elt" 21)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 21)))) (Variable (QualIdent Nothing (Ident "combiner" 21)))) (Variable (QualIdent Nothing (Ident "fm_l" 21)))) (Variable (QualIdent Nothing (Ident "new_key" 21)))) (Variable (QualIdent Nothing (Ident "new_elt" 21)))))) (Variable (QualIdent Nothing (Ident "fm_r" 21)))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "new_key" 21))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "key" 21)))) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "new_key" 21)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "combiner" 21))) (Variable (QualIdent Nothing (Ident "elt" 21)))) (Variable (QualIdent Nothing (Ident "new_elt" 21)))))) (Variable (QualIdent Nothing (Ident "size" 21)))) (Variable (QualIdent Nothing (Ident "fm_l" 21)))) (Variable (QualIdent Nothing (Ident "fm_r" 21)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key" 21)))) (Variable (QualIdent Nothing (Ident "elt" 21)))) (Variable (QualIdent Nothing (Ident "fm_l" 21)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 21)))) (Variable (QualIdent Nothing (Ident "combiner" 21)))) (Variable (QualIdent Nothing (Ident "fm_r" 21)))) (Variable (QualIdent Nothing (Ident "new_key" 21)))) (Variable (QualIdent Nothing (Ident "new_elt" 21)))))))) []))])
+,(TypeSig (113,1) [(Ident "addListToFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ListType (TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (114,1) (Ident "addListToFM" 0) [(Equation (114,1) (FunLhs (Ident "addListToFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 23)),(VariablePattern (Ident "fm" 23))])),(VariablePattern (Ident "key_elt_pairs" 23))]) (SimpleRhs (115,3) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 23)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addListToFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 23)))) (Variable (QualIdent Nothing (Ident "fm" 23)))) (Variable (QualIdent Nothing (Ident "key_elt_pairs" 23)))))) []))])
+,(FunctionDecl (117,1) (Ident "addListToFM'" 0) [(Equation (117,1) (FunLhs (Ident "addListToFM'" 0) [(VariablePattern (Ident "le" 25)),(VariablePattern (Ident "fm" 25)),(VariablePattern (Ident "key_elt_pairs" 25))]) (SimpleRhs (118,3) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addListToFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 25)))) (Paren (Lambda [(VariablePattern (Ident "_" 28)),(VariablePattern (Ident "new" 27))] (Variable (QualIdent Nothing (Ident "new" 27)))))) (Variable (QualIdent Nothing (Ident "fm" 25)))) (Variable (QualIdent Nothing (Ident "key_elt_pairs" 25)))) []))])
+,(FunctionDecl (120,1) (Ident "addListToFM_C'" 0) [(Equation (120,1) (FunLhs (Ident "addListToFM_C'" 0) [(VariablePattern (Ident "le" 29)),(VariablePattern (Ident "combiner" 29)),(VariablePattern (Ident "fm" 29)),(VariablePattern (Ident "key_elt_pairs" 29))]) (SimpleRhs (121,5) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldl" 0))) (Variable (QualIdent Nothing (Ident "add" 30)))) (Variable (QualIdent Nothing (Ident "fm" 29)))) (Variable (QualIdent Nothing (Ident "key_elt_pairs" 29)))) [(FunctionDecl (123,5) (Ident "add" 30) [(Equation (123,5) (FunLhs (Ident "add" 30) [(VariablePattern (Ident "fmap" 31)),(TuplePattern [(VariablePattern (Ident "key" 31)),(VariablePattern (Ident "elt" 31))])]) (SimpleRhs (123,26) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 29)))) (Variable (QualIdent Nothing (Ident "combiner" 29)))) (Variable (QualIdent Nothing (Ident "fmap" 31)))) (Variable (QualIdent Nothing (Ident "key" 31)))) (Variable (QualIdent Nothing (Ident "elt" 31)))) []))])]))])
+,(TypeSig (133,1) [(Ident "addToFM_C" 0)] (ArrowType (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (VariableType (Ident "elt" 0)) (VariableType (Ident "elt" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt" 0)) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))))
+,(FunctionDecl (135,1) (Ident "addToFM_C" 0) [(Equation (135,1) (FunLhs (Ident "addToFM_C" 0) [(VariablePattern (Ident "combiner" 33)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 33)),(VariablePattern (Ident "fm" 33))])),(VariablePattern (Ident "key" 33)),(VariablePattern (Ident "elt" 33))]) (SimpleRhs (136,3) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 33)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 33)))) (Variable (QualIdent Nothing (Ident "combiner" 33)))) (Variable (QualIdent Nothing (Ident "fm" 33)))) (Variable (QualIdent Nothing (Ident "key" 33)))) (Variable (QualIdent Nothing (Ident "elt" 33)))))) []))])
+,(TypeSig (139,1) [(Ident "addListToFM_C" 0)] (ArrowType (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (VariableType (Ident "elt" 0)) (VariableType (Ident "elt" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ListType (TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))
+,(FunctionDecl (141,1) (Ident "addListToFM_C" 0) [(Equation (141,1) (FunLhs (Ident "addListToFM_C" 0) [(VariablePattern (Ident "combiner" 35)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 35)),(VariablePattern (Ident "fm" 35))])),(VariablePattern (Ident "key_elt_pairs" 35))]) (SimpleRhs (142,3) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 35)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addListToFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 35)))) (Variable (QualIdent Nothing (Ident "combiner" 35)))) (Variable (QualIdent Nothing (Ident "fm" 35)))) (Variable (QualIdent Nothing (Ident "key_elt_pairs" 35)))))) []))])
+,(TypeSig (147,1) [(Ident "delFromFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (VariableType (Ident "key" 0)) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (148,1) (Ident "delFromFM" 0) [(Equation (148,1) (FunLhs (Ident "delFromFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 37)),(VariablePattern (Ident "fm" 37))])),(VariablePattern (Ident "del_key" 37))]) (SimpleRhs (148,32) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 37)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "delFromFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 37)))) (Variable (QualIdent Nothing (Ident "fm" 37)))) (Variable (QualIdent Nothing (Ident "del_key" 37)))))) []))])
+,(FunctionDecl (150,1) (Ident "delFromFM'" 0) [(Equation (150,1) (FunLhs (Ident "delFromFM'" 0) [(VariablePattern (Ident "_" 40)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "_" 41))]) (SimpleRhs (150,26) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (151,1) (FunLhs (Ident "delFromFM'" 0) [(VariablePattern (Ident "le" 43)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 43)),(VariablePattern (Ident "elt" 43)),(VariablePattern (Ident "_" 44)),(VariablePattern (Ident "fm_l" 43)),(VariablePattern (Ident "fm_r" 43))])),(VariablePattern (Ident "del_key" 43))]) (SimpleRhs (152,5) (IfThenElse (Apply (Apply (Variable (QualIdent Nothing (Ident "le" 43))) (Variable (QualIdent Nothing (Ident "del_key" 43)))) (Variable (QualIdent Nothing (Ident "key" 43)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key" 43)))) (Variable (QualIdent Nothing (Ident "elt" 43)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "delFromFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 43)))) (Variable (QualIdent Nothing (Ident "fm_l" 43)))) (Variable (QualIdent Nothing (Ident "del_key" 43)))))) (Variable (QualIdent Nothing (Ident "fm_r" 43)))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "del_key" 43))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "key" 43)))) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "glueBal" 0))) (Variable (QualIdent Nothing (Ident "le" 43)))) (Variable (QualIdent Nothing (Ident "fm_l" 43)))) (Variable (QualIdent Nothing (Ident "fm_r" 43)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key" 43)))) (Variable (QualIdent Nothing (Ident "elt" 43)))) (Variable (QualIdent Nothing (Ident "fm_l" 43)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "delFromFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 43)))) (Variable (QualIdent Nothing (Ident "fm_r" 43)))) (Variable (QualIdent Nothing (Ident "del_key" 43)))))))) []))])
+,(TypeSig (162,1) [(Ident "delListFromFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ListType (VariableType (Ident "key" 0))) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (163,1) (Ident "delListFromFM" 0) [(Equation (163,1) (FunLhs (Ident "delListFromFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 46)),(VariablePattern (Ident "fm" 46))])),(VariablePattern (Ident "keys" 46))]) (SimpleRhs (163,33) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 46)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldl" 0))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "delFromFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 46)))))) (Variable (QualIdent Nothing (Ident "fm" 46)))) (Variable (QualIdent Nothing (Ident "keys" 46)))))) []))])
+,(TypeSig (166,1) [(Ident "updFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (167,1) (Ident "updFM" 0) [(Equation (167,1) (FunLhs (Ident "updFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "lt" 48)),(VariablePattern (Ident "fm" 48))])),(VariablePattern (Ident "i" 48)),(VariablePattern (Ident "f" 48))]) (SimpleRhs (167,24) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "lt" 48)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "upd" 49))) (Variable (QualIdent Nothing (Ident "fm" 48)))))) [(FunctionDecl (169,5) (Ident "upd" 49) [(Equation (169,5) (FunLhs (Ident "upd" 49) [(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (169,45) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (170,5) (FunLhs (Ident "upd" 49) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "k" 52)),(VariablePattern (Ident "x" 52)),(VariablePattern (Ident "h" 52)),(VariablePattern (Ident "l" 52)),(VariablePattern (Ident "r" 52))]))]) (GuardedRhs [(CondExpr (171,13) (InfixApply (Variable (QualIdent Nothing (Ident "i" 48))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "k" 52)))) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "k" 52)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 48))) (Variable (QualIdent Nothing (Ident "x" 52)))))) (Variable (QualIdent Nothing (Ident "h" 52)))) (Variable (QualIdent Nothing (Ident "l" 52)))) (Variable (QualIdent Nothing (Ident "r" 52))))),(CondExpr (172,13) (Apply (Apply (Variable (QualIdent Nothing (Ident "lt" 48))) (Variable (QualIdent Nothing (Ident "i" 48)))) (Variable (QualIdent Nothing (Ident "k" 52)))) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "k" 52)))) (Variable (QualIdent Nothing (Ident "x" 52)))) (Variable (QualIdent Nothing (Ident "h" 52)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "upd" 49))) (Variable (QualIdent Nothing (Ident "l" 52)))))) (Variable (QualIdent Nothing (Ident "r" 52))))),(CondExpr (173,13) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "k" 52)))) (Variable (QualIdent Nothing (Ident "x" 52)))) (Variable (QualIdent Nothing (Ident "h" 52)))) (Variable (QualIdent Nothing (Ident "l" 52)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "upd" 49))) (Variable (QualIdent Nothing (Ident "r" 52)))))))] []))])]))])
+,(TypeSig (176,1) [(Ident "splitFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]),(TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])])]))))
+,(FunctionDecl (177,1) (Ident "splitFM" 0) [(Equation (177,1) (FunLhs (Ident "splitFM" 0) [(VariablePattern (Ident "g" 54)),(VariablePattern (Ident "v" 54))]) (SimpleRhs (177,15) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))) (Paren (Lambda [(VariablePattern (Ident "x" 56))] (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple [(Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "delFromFM" 0))) (Variable (QualIdent Nothing (Ident "g" 54)))) (Variable (QualIdent Nothing (Ident "v" 54)))),(Tuple [(Variable (QualIdent Nothing (Ident "v" 54))),(Variable (QualIdent Nothing (Ident "x" 56)))])]))))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "lookupFM" 0))) (Variable (QualIdent Nothing (Ident "g" 54)))) (Variable (QualIdent Nothing (Ident "v" 54)))))) []))])
+,(TypeSig (185,1) [(Ident "plusFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (186,1) (Ident "plusFM" 0) [(Equation (186,1) (FunLhs (Ident "plusFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le1" 57)),(VariablePattern (Ident "fm1" 57))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 58)),(VariablePattern (Ident "fm2" 57))]))]) (SimpleRhs (186,34) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le1" 57)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "plusFM'" 0))) (Variable (QualIdent Nothing (Ident "le1" 57)))) (Variable (QualIdent Nothing (Ident "fm1" 57)))) (Variable (QualIdent Nothing (Ident "fm2" 57)))))) []))])
+,(FunctionDecl (188,1) (Ident "plusFM'" 0) [(Equation (188,1) (FunLhs (Ident "plusFM'" 0) [(VariablePattern (Ident "_" 61)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "fm2" 60))]) (SimpleRhs (188,26) (Variable (QualIdent Nothing (Ident "fm2" 60))) [])),(Equation (189,1) (FunLhs (Ident "plusFM'" 0) [(VariablePattern (Ident "_" 64)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key1" 63)),(VariablePattern (Ident "elt1" 63)),(VariablePattern (Ident "s1" 63)),(VariablePattern (Ident "left1" 63)),(VariablePattern (Ident "right1" 63))])),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (190,3) (Paren (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "split_key1" 63)))) (Variable (QualIdent Nothing (Ident "elt1" 63)))) (Variable (QualIdent Nothing (Ident "s1" 63)))) (Variable (QualIdent Nothing (Ident "left1" 63)))) (Variable (QualIdent Nothing (Ident "right1" 63))))) [])),(Equation (191,1) (FunLhs (Ident "plusFM'" 0) [(VariablePattern (Ident "le" 66)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key1" 66)),(VariablePattern (Ident "elt1" 66)),(VariablePattern (Ident "s1" 66)),(VariablePattern (Ident "left1" 66)),(VariablePattern (Ident "right1" 66))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key" 66)),(VariablePattern (Ident "elt2" 66)),(VariablePattern (Ident "_" 67)),(VariablePattern (Ident "left" 66)),(VariablePattern (Ident "right" 66))]))]) (SimpleRhs (193,5) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkVBalBranch" 0))) (Variable (QualIdent Nothing (Ident "le" 66)))) (Variable (QualIdent Nothing (Ident "split_key" 66)))) (Variable (QualIdent Nothing (Ident "elt2" 66)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "plusFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 66)))) (Variable (QualIdent Nothing (Ident "lts" 68)))) (Variable (QualIdent Nothing (Ident "left" 66)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "plusFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 66)))) (Variable (QualIdent Nothing (Ident "gts" 68)))) (Variable (QualIdent Nothing (Ident "right" 66)))))) [(PatternDecl (195,5) (VariablePattern (Ident "fm1" 68)) (SimpleRhs (195,11) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "split_key1" 66)))) (Variable (QualIdent Nothing (Ident "elt1" 66)))) (Variable (QualIdent Nothing (Ident "s1" 66)))) (Variable (QualIdent Nothing (Ident "left1" 66)))) (Variable (QualIdent Nothing (Ident "right1" 66)))) [])),(PatternDecl (196,5) (VariablePattern (Ident "lts" 68)) (SimpleRhs (196,15) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitLT" 0))) (Variable (QualIdent Nothing (Ident "le" 66)))) (Variable (QualIdent Nothing (Ident "fm1" 68)))) (Variable (QualIdent Nothing (Ident "split_key" 66)))) [])),(PatternDecl (197,5) (VariablePattern (Ident "gts" 68)) (SimpleRhs (197,15) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitGT" 0))) (Variable (QualIdent Nothing (Ident "le" 66)))) (Variable (QualIdent Nothing (Ident "fm1" 68)))) (Variable (QualIdent Nothing (Ident "split_key" 66)))) []))]))])
+,(TypeSig (201,1) [(Ident "plusFM_C" 0)] (ArrowType (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (VariableType (Ident "elt" 0)) (VariableType (Ident "elt" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))
+,(FunctionDecl (203,1) (Ident "plusFM_C" 0) [(Equation (203,1) (FunLhs (Ident "plusFM_C" 0) [(VariablePattern (Ident "combiner" 72)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le1" 72)),(VariablePattern (Ident "fm1" 72))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 73)),(VariablePattern (Ident "fm2" 72))]))]) (SimpleRhs (204,3) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le1" 72)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "plusFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le1" 72)))) (Variable (QualIdent Nothing (Ident "combiner" 72)))) (Variable (QualIdent Nothing (Ident "fm1" 72)))) (Variable (QualIdent Nothing (Ident "fm2" 72)))))) []))])
+,(FunctionDecl (206,1) (Ident "plusFM_C'" 0) [(Equation (206,1) (FunLhs (Ident "plusFM_C'" 0) [(VariablePattern (Ident "_" 76)),(VariablePattern (Ident "_" 77)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "fm2" 75))]) (SimpleRhs (206,37) (Variable (QualIdent Nothing (Ident "fm2" 75))) [])),(Equation (207,1) (FunLhs (Ident "plusFM_C'" 0) [(VariablePattern (Ident "_" 80)),(VariablePattern (Ident "_" 81)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key1" 79)),(VariablePattern (Ident "elt1" 79)),(VariablePattern (Ident "s1" 79)),(VariablePattern (Ident "left1" 79)),(VariablePattern (Ident "right1" 79))])),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (208,11) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "split_key1" 79)))) (Variable (QualIdent Nothing (Ident "elt1" 79)))) (Variable (QualIdent Nothing (Ident "s1" 79)))) (Variable (QualIdent Nothing (Ident "left1" 79)))) (Variable (QualIdent Nothing (Ident "right1" 79)))) [])),(Equation (209,1) (FunLhs (Ident "plusFM_C'" 0) [(VariablePattern (Ident "le" 83)),(VariablePattern (Ident "combiner" 83)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key1" 83)),(VariablePattern (Ident "elt1" 83)),(VariablePattern (Ident "s1" 83)),(VariablePattern (Ident "left1" 83)),(VariablePattern (Ident "right1" 83))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key" 83)),(VariablePattern (Ident "elt2" 83)),(VariablePattern (Ident "_" 84)),(VariablePattern (Ident "left" 83)),(VariablePattern (Ident "right" 83))]))]) (SimpleRhs (211,5) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkVBalBranch" 0))) (Variable (QualIdent Nothing (Ident "le" 83)))) (Variable (QualIdent Nothing (Ident "split_key" 83)))) (Variable (QualIdent Nothing (Ident "new_elt" 85)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "plusFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 83)))) (Variable (QualIdent Nothing (Ident "combiner" 83)))) (Variable (QualIdent Nothing (Ident "lts" 85)))) (Variable (QualIdent Nothing (Ident "left" 83)))))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "plusFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 83)))) (Variable (QualIdent Nothing (Ident "combiner" 83)))) (Variable (QualIdent Nothing (Ident "gts" 85)))) (Variable (QualIdent Nothing (Ident "right" 83)))))) [(PatternDecl (215,5) (VariablePattern (Ident "fm1" 85)) (SimpleRhs (215,11) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "split_key1" 83)))) (Variable (QualIdent Nothing (Ident "elt1" 83)))) (Variable (QualIdent Nothing (Ident "s1" 83)))) (Variable (QualIdent Nothing (Ident "left1" 83)))) (Variable (QualIdent Nothing (Ident "right1" 83)))) [])),(PatternDecl (216,5) (VariablePattern (Ident "lts" 85)) (SimpleRhs (216,15) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitLT" 0))) (Variable (QualIdent Nothing (Ident "le" 83)))) (Variable (QualIdent Nothing (Ident "fm1" 85)))) (Variable (QualIdent Nothing (Ident "split_key" 83)))) [])),(PatternDecl (217,5) (VariablePattern (Ident "gts" 85)) (SimpleRhs (217,15) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitGT" 0))) (Variable (QualIdent Nothing (Ident "le" 83)))) (Variable (QualIdent Nothing (Ident "fm1" 85)))) (Variable (QualIdent Nothing (Ident "split_key" 83)))) [])),(PatternDecl (218,5) (VariablePattern (Ident "new_elt" 85)) (SimpleRhs (218,15) (Case (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "lookupFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 83)))) (Variable (QualIdent Nothing (Ident "fm1" 85)))) (Variable (QualIdent Nothing (Ident "split_key" 83)))) [(Alt (219,17) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) []) (SimpleRhs (219,30) (Variable (QualIdent Nothing (Ident "elt2" 83))) [])),(Alt (220,17) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "elt1'" 92))]) (SimpleRhs (220,31) (Apply (Apply (Variable (QualIdent Nothing (Ident "combiner" 83))) (Variable (QualIdent Nothing (Ident "elt1'" 92)))) (Variable (QualIdent Nothing (Ident "elt2" 83)))) []))]) []))]))])
+,(TypeSig (223,1) [(Ident "minusFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (224,1) (Ident "minusFM" 0) [(Equation (224,1) (FunLhs (Ident "minusFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le1" 94)),(VariablePattern (Ident "fm1" 94))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 95)),(VariablePattern (Ident "fm2" 94))]))]) (SimpleRhs (224,35) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le1" 94)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "minusFM'" 0))) (Variable (QualIdent Nothing (Ident "le1" 94)))) (Variable (QualIdent Nothing (Ident "fm1" 94)))) (Variable (QualIdent Nothing (Ident "fm2" 94)))))) []))])
+,(FunctionDecl (226,1) (Ident "minusFM'" 0) [(Equation (226,1) (FunLhs (Ident "minusFM'" 0) [(VariablePattern (Ident "_" 98)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "_" 99))]) (SimpleRhs (226,25) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (227,1) (FunLhs (Ident "minusFM'" 0) [(VariablePattern (Ident "_" 102)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key1" 101)),(VariablePattern (Ident "elt1" 101)),(VariablePattern (Ident "s1" 101)),(VariablePattern (Ident "left1" 101)),(VariablePattern (Ident "right1" 101))])),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (228,3) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "split_key1" 101)))) (Variable (QualIdent Nothing (Ident "elt1" 101)))) (Variable (QualIdent Nothing (Ident "s1" 101)))) (Variable (QualIdent Nothing (Ident "left1" 101)))) (Variable (QualIdent Nothing (Ident "right1" 101)))) [])),(Equation (229,1) (FunLhs (Ident "minusFM'" 0) [(VariablePattern (Ident "le" 104)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key1" 104)),(VariablePattern (Ident "elt1" 104)),(VariablePattern (Ident "s1" 104)),(VariablePattern (Ident "left1" 104)),(VariablePattern (Ident "right1" 104))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key" 104)),(VariablePattern (Ident "_" 105)),(VariablePattern (Ident "_" 106)),(VariablePattern (Ident "left" 104)),(VariablePattern (Ident "right" 104))]))]) (SimpleRhs (231,5) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "glueVBal" 0))) (Variable (QualIdent Nothing (Ident "le" 104)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "minusFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 104)))) (Variable (QualIdent Nothing (Ident "lts" 107)))) (Variable (QualIdent Nothing (Ident "left" 104)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "minusFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 104)))) (Variable (QualIdent Nothing (Ident "gts" 107)))) (Variable (QualIdent Nothing (Ident "right" 104)))))) [(PatternDecl (234,5) (VariablePattern (Ident "fm1" 107)) (SimpleRhs (234,11) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "split_key1" 104)))) (Variable (QualIdent Nothing (Ident "elt1" 104)))) (Variable (QualIdent Nothing (Ident "s1" 104)))) (Variable (QualIdent Nothing (Ident "left1" 104)))) (Variable (QualIdent Nothing (Ident "right1" 104)))) [])),(PatternDecl (235,5) (VariablePattern (Ident "lts" 107)) (SimpleRhs (235,11) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitLT" 0))) (Variable (QualIdent Nothing (Ident "le" 104)))) (Variable (QualIdent Nothing (Ident "fm1" 107)))) (Variable (QualIdent Nothing (Ident "split_key" 104)))) [])),(PatternDecl (236,5) (VariablePattern (Ident "gts" 107)) (SimpleRhs (236,11) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitGT" 0))) (Variable (QualIdent Nothing (Ident "le" 104)))) (Variable (QualIdent Nothing (Ident "fm1" 107)))) (Variable (QualIdent Nothing (Ident "split_key" 104)))) []))]))])
+,(TypeSig (240,1) [(Ident "intersectFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (241,1) (Ident "intersectFM" 0) [(Equation (241,1) (FunLhs (Ident "intersectFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le1" 111)),(VariablePattern (Ident "fm1" 111))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 112)),(VariablePattern (Ident "fm2" 111))]))]) (SimpleRhs (241,39) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le1" 111)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "intersectFM'" 0))) (Variable (QualIdent Nothing (Ident "le1" 111)))) (Variable (QualIdent Nothing (Ident "fm1" 111)))) (Variable (QualIdent Nothing (Ident "fm2" 111)))))) []))])
+,(FunctionDecl (243,1) (Ident "intersectFM'" 0) [(Equation (243,1) (FunLhs (Ident "intersectFM'" 0) [(VariablePattern (Ident "le" 114)),(VariablePattern (Ident "fm1" 114)),(VariablePattern (Ident "fm2" 114))]) (SimpleRhs (243,27) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "intersectFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 114)))) (Paren (Lambda [(VariablePattern (Ident "_" 117)),(VariablePattern (Ident "right" 116))] (Variable (QualIdent Nothing (Ident "right" 116)))))) (Variable (QualIdent Nothing (Ident "fm1" 114)))) (Variable (QualIdent Nothing (Ident "fm2" 114)))) []))])
+,(TypeSig (247,1) [(Ident "intersectFM_C" 0)] (ArrowType (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (VariableType (Ident "elt" 0)) (VariableType (Ident "elt2" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt2" 0))])))))
+,(FunctionDecl (249,1) (Ident "intersectFM_C" 0) [(Equation (249,1) (FunLhs (Ident "intersectFM_C" 0) [(VariablePattern (Ident "combiner" 118)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le1" 118)),(VariablePattern (Ident "fm1" 118))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 119)),(VariablePattern (Ident "fm2" 118))]))]) (SimpleRhs (250,3) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le1" 118)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "intersectFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le1" 118)))) (Variable (QualIdent Nothing (Ident "combiner" 118)))) (Variable (QualIdent Nothing (Ident "fm1" 118)))) (Variable (QualIdent Nothing (Ident "fm2" 118)))))) []))])
+,(FunctionDecl (252,1) (Ident "intersectFM_C'" 0) [(Equation (252,1) (FunLhs (Ident "intersectFM_C'" 0) [(VariablePattern (Ident "_" 122)),(VariablePattern (Ident "_" 123)),(VariablePattern (Ident "_" 124)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (252,47) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (253,1) (FunLhs (Ident "intersectFM_C'" 0) [(VariablePattern (Ident "_" 127)),(VariablePattern (Ident "_" 128)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 129)),(VariablePattern (Ident "_" 130)),(VariablePattern (Ident "_" 131)),(VariablePattern (Ident "_" 132)),(VariablePattern (Ident "_" 133))]))]) (SimpleRhs (253,57) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (254,1) (FunLhs (Ident "intersectFM_C'" 0) [(VariablePattern (Ident "le" 135)),(VariablePattern (Ident "combiner" 135)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key1" 135)),(VariablePattern (Ident "elt1" 135)),(VariablePattern (Ident "s1" 135)),(VariablePattern (Ident "left1" 135)),(VariablePattern (Ident "right1" 135))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "split_key" 135)),(VariablePattern (Ident "elt2" 135)),(VariablePattern (Ident "_" 136)),(VariablePattern (Ident "left" 135)),(VariablePattern (Ident "right" 135))]))]) (GuardedRhs [(CondExpr (257,3) (Apply (Variable (QualIdent (Just "Maybe") (Ident "isJust" 0))) (Variable (QualIdent Nothing (Ident "maybe_elt1" 137)))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkVBalBranch" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Variable (QualIdent Nothing (Ident "split_key" 135)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "combiner" 135))) (Variable (QualIdent Nothing (Ident "elt1'" 137)))) (Variable (QualIdent Nothing (Ident "elt2" 135)))))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "intersectFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Variable (QualIdent Nothing (Ident "combiner" 135)))) (Variable (QualIdent Nothing (Ident "lts" 137)))) (Variable (QualIdent Nothing (Ident "left" 135)))))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "intersectFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Variable (QualIdent Nothing (Ident "combiner" 135)))) (Variable (QualIdent Nothing (Ident "gts" 137)))) (Variable (QualIdent Nothing (Ident "right" 135))))))),(CondExpr (262,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "glueVBal" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "intersectFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Variable (QualIdent Nothing (Ident "combiner" 135)))) (Variable (QualIdent Nothing (Ident "lts" 137)))) (Variable (QualIdent Nothing (Ident "left" 135)))))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "intersectFM_C'" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Variable (QualIdent Nothing (Ident "combiner" 135)))) (Variable (QualIdent Nothing (Ident "gts" 137)))) (Variable (QualIdent Nothing (Ident "right" 135)))))))] [(PatternDecl (267,5) (VariablePattern (Ident "fm1" 137)) (SimpleRhs (267,11) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "split_key1" 135)))) (Variable (QualIdent Nothing (Ident "elt1" 135)))) (Variable (QualIdent Nothing (Ident "s1" 135)))) (Variable (QualIdent Nothing (Ident "left1" 135)))) (Variable (QualIdent Nothing (Ident "right1" 135)))) [])),(PatternDecl (268,5) (VariablePattern (Ident "lts" 137)) (SimpleRhs (268,11) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitLT" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Variable (QualIdent Nothing (Ident "fm1" 137)))) (Variable (QualIdent Nothing (Ident "split_key" 135)))) [])),(PatternDecl (269,5) (VariablePattern (Ident "gts" 137)) (SimpleRhs (269,11) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitGT" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Variable (QualIdent Nothing (Ident "fm1" 137)))) (Variable (QualIdent Nothing (Ident "split_key" 135)))) [])),(PatternDecl (271,5) (VariablePattern (Ident "maybe_elt1" 137)) (SimpleRhs (271,18) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "lookupFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 135)))) (Variable (QualIdent Nothing (Ident "fm1" 137)))) (Variable (QualIdent Nothing (Ident "split_key" 135)))) [])),(PatternDecl (272,5) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "elt1'" 137))]) (SimpleRhs (272,19) (Variable (QualIdent Nothing (Ident "maybe_elt1" 137))) []))]))])
+,(TypeSig (279,1) [(Ident "foldFM" 0)] (ArrowType (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (280,1) (Ident "foldFM" 0) [(Equation (280,1) (FunLhs (Ident "foldFM" 0) [(VariablePattern (Ident "k" 143)),(VariablePattern (Ident "z" 143)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 143)),(VariablePattern (Ident "fm" 143))]))]) (SimpleRhs (280,25) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "foldFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 143)))) (Variable (QualIdent Nothing (Ident "k" 143)))) (Variable (QualIdent Nothing (Ident "z" 143)))) (Variable (QualIdent Nothing (Ident "fm" 143)))) []))])
+,(FunctionDecl (282,1) (Ident "foldFM'" 0) [(Equation (282,1) (FunLhs (Ident "foldFM'" 0) [(VariablePattern (Ident "_" 146)),(VariablePattern (Ident "_" 147)),(VariablePattern (Ident "z" 145)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (282,26) (Variable (QualIdent Nothing (Ident "z" 145))) [])),(Equation (283,1) (FunLhs (Ident "foldFM'" 0) [(VariablePattern (Ident "le" 149)),(VariablePattern (Ident "k" 149)),(VariablePattern (Ident "z" 149)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 149)),(VariablePattern (Ident "elt" 149)),(VariablePattern (Ident "_" 150)),(VariablePattern (Ident "fm_l" 149)),(VariablePattern (Ident "fm_r" 149))]))]) (SimpleRhs (284,5) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "foldFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 149)))) (Variable (QualIdent Nothing (Ident "k" 149)))) (Paren (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "k" 149))) (Variable (QualIdent Nothing (Ident "key" 149)))) (Variable (QualIdent Nothing (Ident "elt" 149)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "foldFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 149)))) (Variable (QualIdent Nothing (Ident "k" 149)))) (Variable (QualIdent Nothing (Ident "z" 149)))) (Variable (QualIdent Nothing (Ident "fm_r" 149)))))))) (Variable (QualIdent Nothing (Ident "fm_l" 149)))) []))])
+,(TypeSig (287,1) [(Ident "mapFM" 0)] (ArrowType (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt1" 0)) (VariableType (Ident "elt2" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt1" 0))]) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt2" 0))]))))
+,(FunctionDecl (288,1) (Ident "mapFM" 0) [(Equation (288,1) (FunLhs (Ident "mapFM" 0) [(VariablePattern (Ident "f" 152)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 152)),(VariablePattern (Ident "fm" 152))]))]) (SimpleRhs (288,22) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 152)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mapFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 152)))) (Variable (QualIdent Nothing (Ident "f" 152)))) (Variable (QualIdent Nothing (Ident "fm" 152)))))) []))])
+,(FunctionDecl (290,1) (Ident "mapFM'" 0) [(Equation (290,1) (FunLhs (Ident "mapFM'" 0) [(VariablePattern (Ident "_" 155)),(VariablePattern (Ident "_" 156)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (290,23) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (291,1) (FunLhs (Ident "mapFM'" 0) [(VariablePattern (Ident "le" 158)),(VariablePattern (Ident "f" 158)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 158)),(VariablePattern (Ident "elt" 158)),(VariablePattern (Ident "size" 158)),(VariablePattern (Ident "fm_l" 158)),(VariablePattern (Ident "fm_r" 158))]))]) (SimpleRhs (292,5) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key" 158)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 158))) (Variable (QualIdent Nothing (Ident "key" 158)))) (Variable (QualIdent Nothing (Ident "elt" 158)))))) (Variable (QualIdent Nothing (Ident "size" 158)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mapFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 158)))) (Variable (QualIdent Nothing (Ident "f" 158)))) (Variable (QualIdent Nothing (Ident "fm_l" 158)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mapFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 158)))) (Variable (QualIdent Nothing (Ident "f" 158)))) (Variable (QualIdent Nothing (Ident "fm_r" 158)))))) []))])
+,(TypeSig (296,1) [(Ident "filterFM" 0)] (ArrowType (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (297,1) (Ident "filterFM" 0) [(Equation (297,1) (FunLhs (Ident "filterFM" 0) [(VariablePattern (Ident "p" 160)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 160)),(VariablePattern (Ident "fm" 160))]))]) (SimpleRhs (297,25) (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "FM" 0))) (Variable (QualIdent Nothing (Ident "le" 160)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "filterFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 160)))) (Variable (QualIdent Nothing (Ident "p" 160)))) (Variable (QualIdent Nothing (Ident "fm" 160)))))) []))])
+,(FunctionDecl (299,1) (Ident "filterFM'" 0) [(Equation (299,1) (FunLhs (Ident "filterFM'" 0) [(VariablePattern (Ident "_" 163)),(VariablePattern (Ident "_" 164)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (299,26) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (300,1) (FunLhs (Ident "filterFM'" 0) [(VariablePattern (Ident "le" 166)),(VariablePattern (Ident "p" 166)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 166)),(VariablePattern (Ident "elt" 166)),(VariablePattern (Ident "_" 167)),(VariablePattern (Ident "fm_l" 166)),(VariablePattern (Ident "fm_r" 166))]))]) (GuardedRhs [(CondExpr (301,3) (Apply (Apply (Variable (QualIdent Nothing (Ident "p" 166))) (Variable (QualIdent Nothing (Ident "key" 166)))) (Variable (QualIdent Nothing (Ident "elt" 166)))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkVBalBranch" 0))) (Variable (QualIdent Nothing (Ident "le" 166)))) (Variable (QualIdent Nothing (Ident "key" 166)))) (Variable (QualIdent Nothing (Ident "elt" 166)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "filterFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 166)))) (Variable (QualIdent Nothing (Ident "p" 166)))) (Variable (QualIdent Nothing (Ident "fm_l" 166)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "filterFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 166)))) (Variable (QualIdent Nothing (Ident "p" 166)))) (Variable (QualIdent Nothing (Ident "fm_r" 166))))))),(CondExpr (304,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "glueVBal" 0))) (Variable (QualIdent Nothing (Ident "le" 166)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "filterFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 166)))) (Variable (QualIdent Nothing (Ident "p" 166)))) (Variable (QualIdent Nothing (Ident "fm_l" 166)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "filterFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 166)))) (Variable (QualIdent Nothing (Ident "p" 166)))) (Variable (QualIdent Nothing (Ident "fm_r" 166)))))))] []))])
+,(TypeSig (312,1) [(Ident "sizeFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (313,1) (Ident "sizeFM" 0) [(Equation (313,1) (FunLhs (Ident "sizeFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 170)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]))]) (SimpleRhs (313,39) (Literal (Int (Ident "_" 172) 0)) [])),(Equation (314,1) (FunLhs (Ident "sizeFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 174)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 175)),(VariablePattern (Ident "_" 176)),(VariablePattern (Ident "size" 173)),(VariablePattern (Ident "_" 177)),(VariablePattern (Ident "_" 178))]))]))]) (SimpleRhs (314,39) (Variable (QualIdent Nothing (Ident "size" 173))) []))])
+,(FunctionDecl (316,1) (Ident "sizeFM'" 0) [(Equation (316,1) (FunLhs (Ident "sizeFM'" 0) [(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (316,32) (Literal (Int (Ident "_" 182) 0)) [])),(Equation (317,1) (FunLhs (Ident "sizeFM'" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 184)),(VariablePattern (Ident "_" 185)),(VariablePattern (Ident "size" 183)),(VariablePattern (Ident "_" 186)),(VariablePattern (Ident "_" 187))]))]) (SimpleRhs (317,33) (Variable (QualIdent Nothing (Ident "size" 183))) []))])
+,(TypeSig (321,1) [(Ident "eqFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (322,1) (Ident "eqFM" 0) [(Equation (322,1) (OpLhs (VariablePattern (Ident "fm_1" 189)) (Ident "eqFM" 0) (VariablePattern (Ident "fm_2" 189))) (SimpleRhs (323,3) (InfixApply (Paren (InfixApply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM" 0))) (Variable (QualIdent Nothing (Ident "fm_1" 189)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM" 0))) (Variable (QualIdent Nothing (Ident "fm_2" 189)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "fmToList" 0))) (Variable (QualIdent Nothing (Ident "fm_1" 189)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "fmToList" 0))) (Variable (QualIdent Nothing (Ident "fm_2" 189))))))) []))])
+,(TypeSig (327,1) [(Ident "isEmptyFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (328,1) (Ident "isEmptyFM" 0) [(Equation (328,1) (FunLhs (Ident "isEmptyFM" 0) [(VariablePattern (Ident "fm" 191))]) (SimpleRhs (328,16) (InfixApply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM" 0))) (Variable (QualIdent Nothing (Ident "fm" 191)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 193) 0))) []))])
+,(TypeSig (331,1) [(Ident "elemFM" 0)] (ArrowType (VariableType (Ident "key" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (332,1) (Ident "elemFM" 0) [(Equation (332,1) (OpLhs (VariablePattern (Ident "key" 194)) (Ident "elemFM" 0) (VariablePattern (Ident "fm" 194))) (SimpleRhs (332,19) (Apply (Variable (QualIdent (Just "Maybe") (Ident "isJust" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "lookupFM" 0))) (Variable (QualIdent Nothing (Ident "fm" 194)))) (Variable (QualIdent Nothing (Ident "key" 194)))))) []))])
+,(TypeSig (335,1) [(Ident "lookupFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (VariableType (Ident "key" 0)) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (336,1) (Ident "lookupFM" 0) [(Equation (336,1) (FunLhs (Ident "lookupFM" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "le" 196)),(VariablePattern (Ident "fm" 196))])),(VariablePattern (Ident "key" 196))]) (SimpleRhs (336,27) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "lookupFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 196)))) (Variable (QualIdent Nothing (Ident "fm" 196)))) (Variable (QualIdent Nothing (Ident "key" 196)))) []))])
+,(FunctionDecl (338,1) (Ident "lookupFM'" 0) [(Equation (338,1) (FunLhs (Ident "lookupFM'" 0) [(VariablePattern (Ident "_" 199)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "_" 200))]) (SimpleRhs (338,28) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (339,1) (FunLhs (Ident "lookupFM'" 0) [(VariablePattern (Ident "le" 202)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 202)),(VariablePattern (Ident "elt" 202)),(VariablePattern (Ident "_" 203)),(VariablePattern (Ident "fm_l" 202)),(VariablePattern (Ident "fm_r" 202))])),(VariablePattern (Ident "key_to_find" 202))]) (SimpleRhs (340,5) (IfThenElse (Apply (Apply (Variable (QualIdent Nothing (Ident "le" 202))) (Variable (QualIdent Nothing (Ident "key_to_find" 202)))) (Variable (QualIdent Nothing (Ident "key" 202)))) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "lookupFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 202)))) (Variable (QualIdent Nothing (Ident "fm_l" 202)))) (Variable (QualIdent Nothing (Ident "key_to_find" 202)))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "key_to_find" 202))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "key" 202)))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Variable (QualIdent Nothing (Ident "elt" 202)))) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "lookupFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 202)))) (Variable (QualIdent Nothing (Ident "fm_r" 202)))) (Variable (QualIdent Nothing (Ident "key_to_find" 202)))))) []))])
+,(TypeSig (350,1) [(Ident "lookupWithDefaultFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (VariableType (Ident "key" 0)) (VariableType (Ident "elt" 0))))))
+,(FunctionDecl (351,1) (Ident "lookupWithDefaultFM" 0) [(Equation (351,1) (FunLhs (Ident "lookupWithDefaultFM" 0) [(VariablePattern (Ident "fm" 205)),(VariablePattern (Ident "deflt" 205)),(VariablePattern (Ident "key" 205))]) (SimpleRhs (352,5) (Case (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "lookupFM" 0))) (Variable (QualIdent Nothing (Ident "fm" 205)))) (Variable (QualIdent Nothing (Ident "key" 205)))) [(Alt (353,7) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) []) (SimpleRhs (353,18) (Variable (QualIdent Nothing (Ident "deflt" 205))) [])),(Alt (354,7) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "elt" 209))]) (SimpleRhs (354,19) (Variable (QualIdent Nothing (Ident "elt" 209))) []))]) []))])
+,(TypeSig (357,1) [(Ident "keyOrder" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "_" 0))]) (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "key" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))))
+,(FunctionDecl (358,1) (Ident "keyOrder" 0) [(Equation (358,1) (FunLhs (Ident "keyOrder" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "lt" 211)),(VariablePattern (Ident "_" 212))]))]) (SimpleRhs (358,22) (Variable (QualIdent Nothing (Ident "lt" 211))) []))])
+,(TypeSig (362,1) [(Ident "minFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])])))
+,(FunctionDecl (363,1) (Ident "minFM" 0) [(Equation (363,1) (FunLhs (Ident "minFM" 0) []) (SimpleRhs (363,9) (InfixApply (Variable (QualIdent Nothing (Ident "min" 215))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "FiniteMap") (Ident "tree" 0)))) [(FunctionDecl (365,4) (Ident "min" 215) [(Equation (365,4) (FunLhs (Ident "min" 215) [(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (365,29) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (366,4) (FunLhs (Ident "min" 215) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "k" 218)),(VariablePattern (Ident "x" 218)),(VariablePattern (Ident "_" 219)),(VariablePattern (Ident "l" 218)),(VariablePattern (Ident "_" 220))]))]) (GuardedRhs [(CondExpr (366,27) (InfixApply (Variable (QualIdent Nothing (Ident "l" 218))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "k" 218))),(Variable (QualIdent Nothing (Ident "x" 218)))]))),(CondExpr (367,27) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Variable (QualIdent Nothing (Ident "min" 215))) (Variable (QualIdent Nothing (Ident "l" 218)))))] []))])]))])
+,(TypeSig (371,1) [(Ident "maxFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])])))
+,(FunctionDecl (372,1) (Ident "maxFM" 0) [(Equation (372,1) (FunLhs (Ident "maxFM" 0) []) (SimpleRhs (372,9) (InfixApply (Variable (QualIdent Nothing (Ident "max" 223))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "FiniteMap") (Ident "tree" 0)))) [(FunctionDecl (374,5) (Ident "max" 223) [(Equation (374,5) (FunLhs (Ident "max" 223) [(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (374,30) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (375,5) (FunLhs (Ident "max" 223) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "k" 226)),(VariablePattern (Ident "x" 226)),(VariablePattern (Ident "_" 227)),(VariablePattern (Ident "_" 228)),(VariablePattern (Ident "r" 226))]))]) (GuardedRhs [(CondExpr (375,28) (InfixApply (Variable (QualIdent Nothing (Ident "r" 226))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "k" 226))),(Variable (QualIdent Nothing (Ident "x" 226)))]))),(CondExpr (376,28) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Variable (QualIdent Nothing (Ident "max" 223))) (Variable (QualIdent Nothing (Ident "r" 226)))))] []))])]))])
+,(TypeSig (386,1) [(Ident "fmToList" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ListType (TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (387,1) (Ident "fmToList" 0) [(Equation (387,1) (FunLhs (Ident "fmToList" 0) [(VariablePattern (Ident "fm" 230))]) (SimpleRhs (387,15) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "foldFM" 0))) (Paren (Lambda [(VariablePattern (Ident "key" 232)),(VariablePattern (Ident "elt" 232)),(VariablePattern (Ident "rest" 232))] (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "key" 232))),(Variable (QualIdent Nothing (Ident "elt" 232)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "rest" 232))))))) (List [])) (Variable (QualIdent Nothing (Ident "fm" 230)))) []))])
+,(TypeSig (392,1) [(Ident "keysFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "_" 0))]) (ListType (VariableType (Ident "key" 0)))))
+,(FunctionDecl (393,1) (Ident "keysFM" 0) [(Equation (393,1) (FunLhs (Ident "keysFM" 0) [(VariablePattern (Ident "fm" 233))]) (SimpleRhs (393,15) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "foldFM" 0))) (Paren (Lambda [(VariablePattern (Ident "key" 235)),(VariablePattern (Ident "_" 236)),(VariablePattern (Ident "rest" 235))] (InfixApply (Variable (QualIdent Nothing (Ident "key" 235))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "rest" 235))))))) (List [])) (Variable (QualIdent Nothing (Ident "fm" 233)))) []))])
+,(TypeSig (398,1) [(Ident "eltsFM" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "elt" 0))]) (ListType (VariableType (Ident "elt" 0)))))
+,(FunctionDecl (399,1) (Ident "eltsFM" 0) [(Equation (399,1) (FunLhs (Ident "eltsFM" 0) [(VariablePattern (Ident "fm" 237))]) (SimpleRhs (399,15) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "foldFM" 0))) (Paren (Lambda [(VariablePattern (Ident "_" 240)),(VariablePattern (Ident "elt" 239)),(VariablePattern (Ident "rest" 239))] (InfixApply (Variable (QualIdent Nothing (Ident "elt" 239))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "rest" 239))))))) (List [])) (Variable (QualIdent Nothing (Ident "fm" 237)))) []))])
+,(TypeSig (405,1) [(Ident "fmToListPreOrder" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ListType (TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (406,1) (Ident "fmToListPreOrder" 0) [(Equation (406,1) (FunLhs (Ident "fmToListPreOrder" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 242)),(VariablePattern (Ident "fm" 241))]))]) (SimpleRhs (406,30) (Apply (Apply (Variable (QualIdent Nothing (Ident "pre" 243))) (Variable (QualIdent Nothing (Ident "fm" 241)))) (List [])) [(FunctionDecl (408,6) (Ident "pre" 243) [(Equation (408,6) (FunLhs (Ident "pre" 243) [(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "xs" 244))]) (SimpleRhs (408,23) (Variable (QualIdent Nothing (Ident "xs" 244))) [])),(Equation (409,6) (FunLhs (Ident "pre" 243) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "k" 246)),(VariablePattern (Ident "x" 246)),(VariablePattern (Ident "_" 247)),(VariablePattern (Ident "l" 246)),(VariablePattern (Ident "r" 246))])),(VariablePattern (Ident "xs" 246))]) (SimpleRhs (409,34) (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "k" 246))),(Variable (QualIdent Nothing (Ident "x" 246)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "pre" 243))) (Variable (QualIdent Nothing (Ident "l" 246)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "pre" 243))) (Variable (QualIdent Nothing (Ident "r" 246)))) (Variable (QualIdent Nothing (Ident "xs" 246))))))) []))])]))])
+,(TypeSig (413,1) [(Ident "fmSortBy" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ListType (VariableType (Ident "key" 0))) (ListType (VariableType (Ident "key" 0))))))
+,(FunctionDecl (414,1) (Ident "fmSortBy" 0) [(Equation (414,1) (FunLhs (Ident "fmSortBy" 0) [(VariablePattern (Ident "p" 249)),(VariablePattern (Ident "l" 249))]) (SimpleRhs (414,16) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "keysFM" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "listToFM" 0))) (Variable (QualIdent Nothing (Ident "p" 249)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "zip" 0))) (Variable (QualIdent Nothing (Ident "l" 249)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "repeat" 0))) (Tuple [])))))))) []))])
+,(FunctionDecl (422,1) (Ident "tree" 0) [(Equation (422,1) (FunLhs (Ident "tree" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "FM" 0)) [(VariablePattern (Ident "_" 252)),(VariablePattern (Ident "fm" 251))]))]) (SimpleRhs (422,18) (Variable (QualIdent Nothing (Ident "fm" 251))) []))])
+,(FunctionDecl (432,1) (Ident "toGT" 0) [(Equation (432,1) (FunLhs (Ident "toGT" 0) [(VariablePattern (Ident "le" 254)),(VariablePattern (Ident "x" 254)),(VariablePattern (Ident "y" 254))]) (SimpleRhs (432,15) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "le" 254))) (Variable (QualIdent Nothing (Ident "x" 254)))) (Variable (QualIdent Nothing (Ident "y" 254)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 254))) (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Variable (QualIdent Nothing (Ident "y" 254))))) []))])
+,(FunctionDecl (434,1) (Ident "isEmptyFM'" 0) [(Equation (434,1) (FunLhs (Ident "isEmptyFM'" 0) [(VariablePattern (Ident "fm" 256))]) (SimpleRhs (434,17) (InfixApply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm" 256)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 258) 0))) []))])
+,(TypeSig (446,1) [(Ident "sIZE_RATIO" 0)] (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))
+,(FunctionDecl (447,1) (Ident "sIZE_RATIO" 0) [(Equation (447,1) (FunLhs (Ident "sIZE_RATIO" 0) []) (SimpleRhs (447,14) (Literal (Int (Ident "_" 261) 5)) []))])
+,(TypeSig (449,1) [(Ident "mkBranch" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))))
+,(FunctionDecl (454,1) (Ident "mkBranch" 0) [(Equation (454,1) (FunLhs (Ident "mkBranch" 0) [(VariablePattern (Ident "_" 263)),(VariablePattern (Ident "key" 262)),(VariablePattern (Ident "elt" 262)),(VariablePattern (Ident "fm_l" 262)),(VariablePattern (Ident "fm_r" 262))]) (SimpleRhs (455,5) (Let [(PatternDecl (455,9) (VariablePattern (Ident "result" 269)) (SimpleRhs (455,18) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key" 262)))) (Variable (QualIdent Nothing (Ident "elt" 262)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "unbox" 264))) (Paren (InfixApply (InfixApply (Literal (Int (Ident "_" 271) 1)) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "left_size" 264)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "right_size" 264)))))))) (Variable (QualIdent Nothing (Ident "fm_l" 262)))) (Variable (QualIdent Nothing (Ident "fm_r" 262)))) []))] (Variable (QualIdent Nothing (Ident "result" 269)))) [(PatternDecl (478,5) (VariablePattern (Ident "left_size" 264)) (SimpleRhs (478,18) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_l" 262)))) [])),(PatternDecl (479,5) (VariablePattern (Ident "right_size" 264)) (SimpleRhs (479,18) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_r" 262)))) [])),(TypeSig (482,5) [(Ident "unbox" 264)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))),(FunctionDecl (483,5) (Ident "unbox" 264) [(Equation (483,5) (FunLhs (Ident "unbox" 264) [(VariablePattern (Ident "x" 267))]) (SimpleRhs (483,15) (Variable (QualIdent Nothing (Ident "x" 267))) []))])]))])
+,(TypeSig (491,1) [(Ident "mkBalBranch" 0)] (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))))
+,(FunctionDecl (495,1) (Ident "mkBalBranch" 0) [(Equation (495,1) (FunLhs (Ident "mkBalBranch" 0) [(VariablePattern (Ident "key" 272)),(VariablePattern (Ident "elt" 272)),(VariablePattern (Ident "fm_L" 272)),(VariablePattern (Ident "fm_R" 272))]) (GuardedRhs [(CondExpr (497,3) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "size_l" 273))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "size_r" 273)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Literal (Int (Ident "_" 300) 2))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 301) 1))) (Variable (QualIdent Nothing (Ident "key" 272)))) (Variable (QualIdent Nothing (Ident "elt" 272)))) (Variable (QualIdent Nothing (Ident "fm_L" 272)))) (Variable (QualIdent Nothing (Ident "fm_R" 272))))),(CondExpr (500,3) (InfixApply (Variable (QualIdent Nothing (Ident "size_r" 273))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (InfixApply (Variable (QualIdent (Just "FiniteMap") (Ident "sIZE_RATIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "size_l" 273))))) (Case (Variable (QualIdent Nothing (Ident "fm_R" 272))) [(Alt (502,9) (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 303)),(VariablePattern (Ident "_" 304)),(VariablePattern (Ident "_" 305)),(VariablePattern (Ident "fm_rl" 302)),(VariablePattern (Ident "fm_rr" 302))]) (SimpleRhs (503,15) (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_rl" 302)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (InfixApply (Literal (Int (Ident "_" 307) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_rr" 302)))))) (Apply (Apply (Variable (QualIdent Nothing (Ident "single_L" 273))) (Variable (QualIdent Nothing (Ident "fm_L" 272)))) (Variable (QualIdent Nothing (Ident "fm_R" 272)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "double_L" 273))) (Variable (QualIdent Nothing (Ident "fm_L" 272)))) (Variable (QualIdent Nothing (Ident "fm_R" 272))))) []))])),(CondExpr (508,3) (InfixApply (Variable (QualIdent Nothing (Ident "size_l" 273))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (InfixApply (Variable (QualIdent (Just "FiniteMap") (Ident "sIZE_RATIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "size_r" 273))))) (Case (Variable (QualIdent Nothing (Ident "fm_L" 272))) [(Alt (510,9) (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 309)),(VariablePattern (Ident "_" 310)),(VariablePattern (Ident "_" 311)),(VariablePattern (Ident "fm_ll" 308)),(VariablePattern (Ident "fm_lr" 308))]) (SimpleRhs (511,15) (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_lr" 308)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (InfixApply (Literal (Int (Ident "_" 313) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_ll" 308)))))) (Apply (Apply (Variable (QualIdent Nothing (Ident "single_R" 273))) (Variable (QualIdent Nothing (Ident "fm_L" 272)))) (Variable (QualIdent Nothing (Ident "fm_R" 272)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "double_R" 273))) (Variable (QualIdent Nothing (Ident "fm_L" 272)))) (Variable (QualIdent Nothing (Ident "fm_R" 272))))) []))])),(CondExpr (516,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 314) 2))) (Variable (QualIdent Nothing (Ident "key" 272)))) (Variable (QualIdent Nothing (Ident "elt" 272)))) (Variable (QualIdent Nothing (Ident "fm_L" 272)))) (Variable (QualIdent Nothing (Ident "fm_R" 272)))))] [(PatternDecl (520,5) (VariablePattern (Ident "size_l" 273)) (SimpleRhs (520,16) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_L" 272)))) [])),(PatternDecl (521,5) (VariablePattern (Ident "size_r" 273)) (SimpleRhs (521,16) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_R" 272)))) [])),(FunctionDecl (523,5) (Ident "single_L" 273) [(Equation (523,5) (FunLhs (Ident "single_L" 273) [(VariablePattern (Ident "fm_l" 276)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_r" 276)),(VariablePattern (Ident "elt_r" 276)),(VariablePattern (Ident "_" 277)),(VariablePattern (Ident "fm_rl" 276)),(VariablePattern (Ident "fm_rr" 276))]))]) (SimpleRhs (524,11) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 279) 3))) (Variable (QualIdent Nothing (Ident "key_r" 276)))) (Variable (QualIdent Nothing (Ident "elt_r" 276)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 280) 4))) (Variable (QualIdent Nothing (Ident "key" 272)))) (Variable (QualIdent Nothing (Ident "elt" 272)))) (Variable (QualIdent Nothing (Ident "fm_l" 276)))) (Variable (QualIdent Nothing (Ident "fm_rl" 276)))))) (Variable (QualIdent Nothing (Ident "fm_rr" 276)))) []))]),(FunctionDecl (526,5) (Ident "double_L" 273) [(Equation (526,5) (FunLhs (Ident "double_L" 273) [(VariablePattern (Ident "fm_l" 281)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_r" 281)),(VariablePattern (Ident "elt_r" 281)),(VariablePattern (Ident "_" 282)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_rl" 281)),(VariablePattern (Ident "elt_rl" 281)),(VariablePattern (Ident "_" 283)),(VariablePattern (Ident "fm_rll" 281)),(VariablePattern (Ident "fm_rlr" 281))])),(VariablePattern (Ident "fm_rr" 281))]))]) (SimpleRhs (527,11) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 285) 5))) (Variable (QualIdent Nothing (Ident "key_rl" 281)))) (Variable (QualIdent Nothing (Ident "elt_rl" 281)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 286) 6))) (Variable (QualIdent Nothing (Ident "key" 272)))) (Variable (QualIdent Nothing (Ident "elt" 272)))) (Variable (QualIdent Nothing (Ident "fm_l" 281)))) (Variable (QualIdent Nothing (Ident "fm_rll" 281)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 287) 7))) (Variable (QualIdent Nothing (Ident "key_r" 281)))) (Variable (QualIdent Nothing (Ident "elt_r" 281)))) (Variable (QualIdent Nothing (Ident "fm_rlr" 281)))) (Variable (QualIdent Nothing (Ident "fm_rr" 281)))))) []))]),(FunctionDecl (530,5) (Ident "single_R" 273) [(Equation (530,5) (FunLhs (Ident "single_R" 273) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_l" 288)),(VariablePattern (Ident "elt_l" 288)),(VariablePattern (Ident "_" 289)),(VariablePattern (Ident "fm_ll" 288)),(VariablePattern (Ident "fm_lr" 288))])),(VariablePattern (Ident "fm_r" 288))]) (SimpleRhs (531,11) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 291) 8))) (Variable (QualIdent Nothing (Ident "key_l" 288)))) (Variable (QualIdent Nothing (Ident "elt_l" 288)))) (Variable (QualIdent Nothing (Ident "fm_ll" 288)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 292) 9))) (Variable (QualIdent Nothing (Ident "key" 272)))) (Variable (QualIdent Nothing (Ident "elt" 272)))) (Variable (QualIdent Nothing (Ident "fm_lr" 288)))) (Variable (QualIdent Nothing (Ident "fm_r" 288)))))) []))]),(FunctionDecl (533,5) (Ident "double_R" 273) [(Equation (533,5) (FunLhs (Ident "double_R" 273) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_l" 293)),(VariablePattern (Ident "elt_l" 293)),(VariablePattern (Ident "_" 294)),(VariablePattern (Ident "fm_ll" 293)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_lr" 293)),(VariablePattern (Ident "elt_lr" 293)),(VariablePattern (Ident "_" 295)),(VariablePattern (Ident "fm_lrl" 293)),(VariablePattern (Ident "fm_lrr" 293))]))])),(VariablePattern (Ident "fm_r" 293))]) (SimpleRhs (534,11) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 297) 10))) (Variable (QualIdent Nothing (Ident "key_lr" 293)))) (Variable (QualIdent Nothing (Ident "elt_lr" 293)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 298) 11))) (Variable (QualIdent Nothing (Ident "key_l" 293)))) (Variable (QualIdent Nothing (Ident "elt_l" 293)))) (Variable (QualIdent Nothing (Ident "fm_ll" 293)))) (Variable (QualIdent Nothing (Ident "fm_lrl" 293)))))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 299) 12))) (Variable (QualIdent Nothing (Ident "key" 272)))) (Variable (QualIdent Nothing (Ident "elt" 272)))) (Variable (QualIdent Nothing (Ident "fm_lrr" 293)))) (Variable (QualIdent Nothing (Ident "fm_r" 293)))))) []))])]))])
+,(TypeSig (538,1) [(Ident "mkVBalBranch" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "elt" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))))
+,(FunctionDecl (548,1) (Ident "mkVBalBranch" 0) [(Equation (548,1) (FunLhs (Ident "mkVBalBranch" 0) [(VariablePattern (Ident "le" 315)),(VariablePattern (Ident "key" 315)),(VariablePattern (Ident "elt" 315)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "fm_r" 315))]) (SimpleRhs (548,40) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 315)))) (Variable (QualIdent Nothing (Ident "fm_r" 315)))) (Variable (QualIdent Nothing (Ident "key" 315)))) (Variable (QualIdent Nothing (Ident "elt" 315)))) [])),(Equation (549,1) (FunLhs (Ident "mkVBalBranch" 0) [(VariablePattern (Ident "le" 317)),(VariablePattern (Ident "key" 317)),(VariablePattern (Ident "elt" 317)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_l" 317)),(VariablePattern (Ident "elt_l" 317)),(VariablePattern (Ident "s_l" 317)),(VariablePattern (Ident "fm_ll" 317)),(VariablePattern (Ident "fm_lr" 317))])),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]) (SimpleRhs (550,4) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM'" 0))) (Variable (QualIdent Nothing (Ident "le" 317)))) (Paren (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key_l" 317)))) (Variable (QualIdent Nothing (Ident "elt_l" 317)))) (Variable (QualIdent Nothing (Ident "s_l" 317)))) (Variable (QualIdent Nothing (Ident "fm_ll" 317)))) (Variable (QualIdent Nothing (Ident "fm_lr" 317)))))) (Variable (QualIdent Nothing (Ident "key" 317)))) (Variable (QualIdent Nothing (Ident "elt" 317)))) [])),(Equation (552,1) (FunLhs (Ident "mkVBalBranch" 0) [(VariablePattern (Ident "le" 319)),(VariablePattern (Ident "key" 319)),(VariablePattern (Ident "elt" 319)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_l" 319)),(VariablePattern (Ident "elt_l" 319)),(VariablePattern (Ident "s_l" 319)),(VariablePattern (Ident "fm_ll" 319)),(VariablePattern (Ident "fm_lr" 319))])),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_r" 319)),(VariablePattern (Ident "elt_r" 319)),(VariablePattern (Ident "s_r" 319)),(VariablePattern (Ident "fm_rl" 319)),(VariablePattern (Ident "fm_rr" 319))]))]) (GuardedRhs [(CondExpr (554,3) (InfixApply (InfixApply (Variable (QualIdent (Just "FiniteMap") (Ident "sIZE_RATIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "size_l" 320)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "size_r" 320)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key_r" 319)))) (Variable (QualIdent Nothing (Ident "elt_r" 319)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkVBalBranch" 0))) (Variable (QualIdent Nothing (Ident "le" 319)))) (Variable (QualIdent Nothing (Ident "key" 319)))) (Variable (QualIdent Nothing (Ident "elt" 319)))) (Variable (QualIdent Nothing (Ident "fm_l" 320)))) (Variable (QualIdent Nothing (Ident "fm_rl" 319)))))) (Variable (QualIdent Nothing (Ident "fm_rr" 319))))),(CondExpr (557,3) (InfixApply (InfixApply (Variable (QualIdent (Just "FiniteMap") (Ident "sIZE_RATIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "size_r" 320)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "size_l" 320)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key_l" 319)))) (Variable (QualIdent Nothing (Ident "elt_l" 319)))) (Variable (QualIdent Nothing (Ident "fm_ll" 319)))) (Paren (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkVBalBranch" 0))) (Variable (QualIdent Nothing (Ident "le" 319)))) (Variable (QualIdent Nothing (Ident "key" 319)))) (Variable (QualIdent Nothing (Ident "elt" 319)))) (Variable (QualIdent Nothing (Ident "fm_lr" 319)))) (Variable (QualIdent Nothing (Ident "fm_r" 320))))))),(CondExpr (560,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBranch" 0))) (Literal (Int (Ident "_" 325) 13))) (Variable (QualIdent Nothing (Ident "key" 319)))) (Variable (QualIdent Nothing (Ident "elt" 319)))) (Variable (QualIdent Nothing (Ident "fm_l" 320)))) (Variable (QualIdent Nothing (Ident "fm_r" 320)))))] [(PatternDecl (564,5) (VariablePattern (Ident "fm_l" 320)) (SimpleRhs (564,12) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key_l" 319)))) (Variable (QualIdent Nothing (Ident "elt_l" 319)))) (Variable (QualIdent Nothing (Ident "s_l" 319)))) (Variable (QualIdent Nothing (Ident "fm_ll" 319)))) (Variable (QualIdent Nothing (Ident "fm_lr" 319)))) [])),(PatternDecl (565,5) (VariablePattern (Ident "fm_r" 320)) (SimpleRhs (565,12) (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key_r" 319)))) (Variable (QualIdent Nothing (Ident "elt_r" 319)))) (Variable (QualIdent Nothing (Ident "s_r" 319)))) (Variable (QualIdent Nothing (Ident "fm_rl" 319)))) (Variable (QualIdent Nothing (Ident "fm_rr" 319)))) [])),(PatternDecl (566,5) (VariablePattern (Ident "size_l" 320)) (SimpleRhs (566,14) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_l" 320)))) [])),(PatternDecl (567,5) (VariablePattern (Ident "size_r" 320)) (SimpleRhs (567,14) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_r" 320)))) []))]))])
+,(TypeSig (574,1) [(Ident "glueBal" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))
+,(FunctionDecl (578,1) (Ident "glueBal" 0) [(Equation (578,1) (FunLhs (Ident "glueBal" 0) [(VariablePattern (Ident "le" 326)),(VariablePattern (Ident "fm1" 326)),(VariablePattern (Ident "fm2" 326))]) (SimpleRhs (579,3) (IfThenElse (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "isEmptyFM'" 0))) (Variable (QualIdent Nothing (Ident "fm1" 326)))) (Variable (QualIdent Nothing (Ident "fm2" 326))) (IfThenElse (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "isEmptyFM'" 0))) (Variable (QualIdent Nothing (Ident "fm2" 326)))) (Variable (QualIdent Nothing (Ident "fm1" 326))) (Let [(PatternDecl (587,18) (TuplePattern [(VariablePattern (Ident "mid_key1" 328)),(VariablePattern (Ident "mid_elt1" 328))]) (SimpleRhs (587,41) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "findMax" 0))) (Variable (QualIdent Nothing (Ident "fm1" 326)))) [])),(PatternDecl (588,18) (TuplePattern [(VariablePattern (Ident "mid_key2" 328)),(VariablePattern (Ident "mid_elt2" 328))]) (SimpleRhs (588,41) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "findMin" 0))) (Variable (QualIdent Nothing (Ident "fm2" 326)))) []))] (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm2" 326)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm1" 326))))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "mid_key2" 328)))) (Variable (QualIdent Nothing (Ident "mid_elt2" 328)))) (Variable (QualIdent Nothing (Ident "fm1" 326)))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "deleteMin" 0))) (Variable (QualIdent Nothing (Ident "le" 326)))) (Variable (QualIdent Nothing (Ident "fm2" 326)))))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "mid_key1" 328)))) (Variable (QualIdent Nothing (Ident "mid_elt1" 328)))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "deleteMax" 0))) (Variable (QualIdent Nothing (Ident "le" 326)))) (Variable (QualIdent Nothing (Ident "fm1" 326)))))) (Variable (QualIdent Nothing (Ident "fm2" 326)))))))) []))])
+,(TypeSig (594,1) [(Ident "glueVBal" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))
+,(FunctionDecl (598,1) (Ident "glueVBal" 0) [(Equation (598,1) (FunLhs (Ident "glueVBal" 0) [(VariablePattern (Ident "le" 331)),(VariablePattern (Ident "fm_l" 331)),(VariablePattern (Ident "fm_r" 331))]) (SimpleRhs (599,3) (IfThenElse (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "isEmptyFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_l" 331)))) (Variable (QualIdent Nothing (Ident "fm_r" 331))) (IfThenElse (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "isEmptyFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_r" 331)))) (Variable (QualIdent Nothing (Ident "fm_l" 331))) (Let [(PatternDecl (604,18) (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_l" 333)),(VariablePattern (Ident "elt_l" 333)),(VariablePattern (Ident "_" 334)),(VariablePattern (Ident "fm_ll" 333)),(VariablePattern (Ident "fm_lr" 333))]) (SimpleRhs (604,53) (Variable (QualIdent Nothing (Ident "fm_l" 331))) [])),(PatternDecl (605,18) (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_r" 333)),(VariablePattern (Ident "elt_r" 333)),(VariablePattern (Ident "_" 335)),(VariablePattern (Ident "fm_rl" 333)),(VariablePattern (Ident "fm_rr" 333))]) (SimpleRhs (605,53) (Variable (QualIdent Nothing (Ident "fm_r" 331))) [])),(PatternDecl (608,18) (VariablePattern (Ident "size_l" 333)) (SimpleRhs (608,27) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_l" 331)))) [])),(PatternDecl (609,18) (VariablePattern (Ident "size_r" 333)) (SimpleRhs (609,27) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM'" 0))) (Variable (QualIdent Nothing (Ident "fm_r" 331)))) []))] (IfThenElse (InfixApply (InfixApply (Variable (QualIdent (Just "FiniteMap") (Ident "sIZE_RATIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "size_l" 333)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "size_r" 333)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key_r" 333)))) (Variable (QualIdent Nothing (Ident "elt_r" 333)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "glueVBal" 0))) (Variable (QualIdent Nothing (Ident "le" 331)))) (Variable (QualIdent Nothing (Ident "fm_l" 331)))) (Variable (QualIdent Nothing (Ident "fm_rl" 333)))))) (Variable (QualIdent Nothing (Ident "fm_rr" 333)))) (IfThenElse (InfixApply (InfixApply (Variable (QualIdent (Just "FiniteMap") (Ident "sIZE_RATIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "size_r" 333)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "size_l" 333)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key_l" 333)))) (Variable (QualIdent Nothing (Ident "elt_l" 333)))) (Variable (QualIdent Nothing (Ident "fm_ll" 333)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "glueVBal" 0))) (Variable (QualIdent Nothing (Ident "le" 331)))) (Variable (QualIdent Nothing (Ident "fm_lr" 333)))) (Variable (QualIdent Nothing (Ident "fm_r" 331)))))) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "glueBal" 0))) (Variable (QualIdent Nothing (Ident "le" 331)))) (Variable (QualIdent Nothing (Ident "fm_l" 331)))) (Variable (QualIdent Nothing (Ident "fm_r" 331))))))))) []))])
+,(TypeSig (627,1) [(Ident "splitLT" 0),(Ident "splitGT" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ArrowType (VariableType (Ident "key" 0)) (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))))
+,(FunctionDecl (633,1) (Ident "splitLT" 0) [(Equation (633,1) (FunLhs (Ident "splitLT" 0) [(VariablePattern (Ident "_" 341)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "_" 342))]) (SimpleRhs (633,24) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (634,1) (FunLhs (Ident "splitLT" 0) [(VariablePattern (Ident "le" 344)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 344)),(VariablePattern (Ident "elt" 344)),(VariablePattern (Ident "_" 345)),(VariablePattern (Ident "fm_l" 344)),(VariablePattern (Ident "fm_r" 344))])),(VariablePattern (Ident "split_key" 344))]) (SimpleRhs (635,5) (IfThenElse (Apply (Apply (Variable (QualIdent Nothing (Ident "le" 344))) (Variable (QualIdent Nothing (Ident "split_key" 344)))) (Variable (QualIdent Nothing (Ident "key" 344)))) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitLT" 0))) (Variable (QualIdent Nothing (Ident "le" 344)))) (Variable (QualIdent Nothing (Ident "fm_l" 344)))) (Variable (QualIdent Nothing (Ident "split_key" 344)))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "split_key" 344))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "key" 344)))) (Variable (QualIdent Nothing (Ident "fm_l" 344))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkVBalBranch" 0))) (Variable (QualIdent Nothing (Ident "le" 344)))) (Variable (QualIdent Nothing (Ident "key" 344)))) (Variable (QualIdent Nothing (Ident "elt" 344)))) (Variable (QualIdent Nothing (Ident "fm_l" 344)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitLT" 0))) (Variable (QualIdent Nothing (Ident "le" 344)))) (Variable (QualIdent Nothing (Ident "fm_r" 344)))) (Variable (QualIdent Nothing (Ident "split_key" 344)))))))) []))])
+,(FunctionDecl (641,1) (Ident "splitGT" 0) [(Equation (641,1) (FunLhs (Ident "splitGT" 0) [(VariablePattern (Ident "_" 348)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "_" 349))]) (SimpleRhs (641,24) (Constructor (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0))) [])),(Equation (642,1) (FunLhs (Ident "splitGT" 0) [(VariablePattern (Ident "le" 351)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 351)),(VariablePattern (Ident "elt" 351)),(VariablePattern (Ident "_" 352)),(VariablePattern (Ident "fm_l" 351)),(VariablePattern (Ident "fm_r" 351))])),(VariablePattern (Ident "split_key" 351))]) (SimpleRhs (643,5) (IfThenElse (Apply (Apply (Variable (QualIdent Nothing (Ident "le" 351))) (Variable (QualIdent Nothing (Ident "split_key" 351)))) (Variable (QualIdent Nothing (Ident "key" 351)))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkVBalBranch" 0))) (Variable (QualIdent Nothing (Ident "le" 351)))) (Variable (QualIdent Nothing (Ident "key" 351)))) (Variable (QualIdent Nothing (Ident "elt" 351)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitGT" 0))) (Variable (QualIdent Nothing (Ident "le" 351)))) (Variable (QualIdent Nothing (Ident "fm_l" 351)))) (Variable (QualIdent Nothing (Ident "split_key" 351)))))) (Variable (QualIdent Nothing (Ident "fm_r" 351)))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "split_key" 351))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "key" 351)))) (Variable (QualIdent Nothing (Ident "fm_r" 351))) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitGT" 0))) (Variable (QualIdent Nothing (Ident "le" 351)))) (Variable (QualIdent Nothing (Ident "fm_r" 351)))) (Variable (QualIdent Nothing (Ident "split_key" 351)))))) []))])
+,(TypeSig (649,1) [(Ident "findMin" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))
+,(FunctionDecl (650,1) (Ident "findMin" 0) [(Equation (650,1) (FunLhs (Ident "findMin" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 354)),(VariablePattern (Ident "elt" 354)),(VariablePattern (Ident "_" 355)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "_" 356))]))]) (SimpleRhs (650,40) (Tuple [(Variable (QualIdent Nothing (Ident "key" 354))),(Variable (QualIdent Nothing (Ident "elt" 354)))]) [])),(Equation (651,1) (FunLhs (Ident "findMin" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 359)),(VariablePattern (Ident "_" 360)),(VariablePattern (Ident "_" 361)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_l" 358)),(VariablePattern (Ident "elt_l" 358)),(VariablePattern (Ident "s_l" 358)),(VariablePattern (Ident "fm_ll" 358)),(VariablePattern (Ident "fm_lr" 358))])),(VariablePattern (Ident "_" 362))]))]) (SimpleRhs (652,7) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "findMin" 0))) (Paren (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key_l" 358)))) (Variable (QualIdent Nothing (Ident "elt_l" 358)))) (Variable (QualIdent Nothing (Ident "s_l" 358)))) (Variable (QualIdent Nothing (Ident "fm_ll" 358)))) (Variable (QualIdent Nothing (Ident "fm_lr" 358)))))) []))])
+,(TypeSig (654,1) [(Ident "deleteMin" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (655,1) (Ident "deleteMin" 0) [(Equation (655,1) (FunLhs (Ident "deleteMin" 0) [(VariablePattern (Ident "_" 365)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 366)),(VariablePattern (Ident "_" 367)),(VariablePattern (Ident "_" 368)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) []),(VariablePattern (Ident "fm_r" 364))]))]) (SimpleRhs (655,48) (Variable (QualIdent Nothing (Ident "fm_r" 364))) [])),(Equation (656,1) (FunLhs (Ident "deleteMin" 0) [(VariablePattern (Ident "le" 370)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 370)),(VariablePattern (Ident "elt" 370)),(VariablePattern (Ident "_" 371)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_l" 370)),(VariablePattern (Ident "elt_l" 370)),(VariablePattern (Ident "s_l" 370)),(VariablePattern (Ident "fm_ll" 370)),(VariablePattern (Ident "fm_lr" 370))])),(VariablePattern (Ident "fm_r" 370))]))]) (SimpleRhs (657,3) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key" 370)))) (Variable (QualIdent Nothing (Ident "elt" 370)))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "deleteMin" 0))) (Variable (QualIdent Nothing (Ident "le" 370)))) (Paren (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key_l" 370)))) (Variable (QualIdent Nothing (Ident "elt_l" 370)))) (Variable (QualIdent Nothing (Ident "s_l" 370)))) (Variable (QualIdent Nothing (Ident "fm_ll" 370)))) (Variable (QualIdent Nothing (Ident "fm_lr" 370)))))))) (Variable (QualIdent Nothing (Ident "fm_r" 370)))) []))])
+,(TypeSig (660,1) [(Ident "findMax" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))])))
+,(FunctionDecl (661,1) (Ident "findMax" 0) [(Equation (661,1) (FunLhs (Ident "findMax" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 373)),(VariablePattern (Ident "elt" 373)),(VariablePattern (Ident "_" 374)),(VariablePattern (Ident "_" 375)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]))]) (SimpleRhs (661,40) (Tuple [(Variable (QualIdent Nothing (Ident "key" 373))),(Variable (QualIdent Nothing (Ident "elt" 373)))]) [])),(Equation (662,1) (FunLhs (Ident "findMax" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 378)),(VariablePattern (Ident "_" 379)),(VariablePattern (Ident "_" 380)),(VariablePattern (Ident "_" 381)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_r" 377)),(VariablePattern (Ident "elt_r" 377)),(VariablePattern (Ident "s_r" 377)),(VariablePattern (Ident "fm_rl" 377)),(VariablePattern (Ident "fm_rr" 377))]))]))]) (SimpleRhs (663,3) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "findMax" 0))) (Paren (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key_r" 377)))) (Variable (QualIdent Nothing (Ident "elt_r" 377)))) (Variable (QualIdent Nothing (Ident "s_r" 377)))) (Variable (QualIdent Nothing (Ident "fm_rl" 377)))) (Variable (QualIdent Nothing (Ident "fm_rr" 377)))))) []))])
+,(TypeSig (665,1) [(Ident "deleteMax" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteMap" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "elt" 0))]))))
+,(FunctionDecl (666,1) (Ident "deleteMax" 0) [(Equation (666,1) (FunLhs (Ident "deleteMax" 0) [(VariablePattern (Ident "_" 384)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "_" 385)),(VariablePattern (Ident "_" 386)),(VariablePattern (Ident "_" 387)),(VariablePattern (Ident "fm_l" 383)),(ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "EmptyFM" 0)) [])]))]) (SimpleRhs (666,48) (Variable (QualIdent Nothing (Ident "fm_l" 383))) [])),(Equation (667,1) (FunLhs (Ident "deleteMax" 0) [(VariablePattern (Ident "le" 389)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key" 389)),(VariablePattern (Ident "elt" 389)),(VariablePattern (Ident "_" 390)),(VariablePattern (Ident "fm_l" 389)),(ParenPattern (ConstructorPattern (QualIdent (Just "FiniteMap") (Ident "Branch" 0)) [(VariablePattern (Ident "key_r" 389)),(VariablePattern (Ident "elt_r" 389)),(VariablePattern (Ident "s_r" 389)),(VariablePattern (Ident "fm_rl" 389)),(VariablePattern (Ident "fm_rr" 389))]))]))]) (SimpleRhs (668,3) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "mkBalBranch" 0))) (Variable (QualIdent Nothing (Ident "key" 389)))) (Variable (QualIdent Nothing (Ident "elt" 389)))) (Variable (QualIdent Nothing (Ident "fm_l" 389)))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "deleteMax" 0))) (Variable (QualIdent Nothing (Ident "le" 389)))) (Paren (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "FiniteMap") (Ident "Branch" 0))) (Variable (QualIdent Nothing (Ident "key_r" 389)))) (Variable (QualIdent Nothing (Ident "elt_r" 389)))) (Variable (QualIdent Nothing (Ident "s_r" 389)))) (Variable (QualIdent Nothing (Ident "fm_rl" 389)))) (Variable (QualIdent Nothing (Ident "fm_rr" 389)))))))) []))])
+,(TypeSig (679,1) [(Ident "emptySet" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))])))
+,(TypeSig (680,1) [(Ident "mkSet" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LeKey" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ListType (VariableType (Ident "key" 0))) (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]))))
+,(TypeSig (681,1) [(Ident "isEmptySet" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(TypeSig (682,1) [(Ident "elementOf" 0)] (ArrowType (VariableType (Ident "key" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(TypeSig (683,1) [(Ident "minusSet" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]))))
+,(TypeSig (684,1) [(Ident "setToList" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]) (ListType (VariableType (Ident "key" 0)))))
+,(TypeSig (685,1) [(Ident "union" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]) (ConstructorType (QualIdent Nothing (Ident "FiniteSet" 0)) [(VariableType (Ident "key" 0))]))))
+,(FunctionDecl (687,1) (Ident "emptySet" 0) [(Equation (687,1) (FunLhs (Ident "emptySet" 0) []) (SimpleRhs (687,12) (Variable (QualIdent (Just "FiniteMap") (Ident "emptyFM" 0))) []))])
+,(FunctionDecl (688,1) (Ident "mkSet" 0) [(Equation (688,1) (FunLhs (Ident "mkSet" 0) [(VariablePattern (Ident "le" 394)),(VariablePattern (Ident "xs" 394))]) (SimpleRhs (688,15) (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "listToFM" 0))) (Variable (QualIdent Nothing (Ident "le" 394)))) (ListCompr (Tuple [(Variable (QualIdent Nothing (Ident "x" 396))),(Tuple [])]) [(StmtBind (VariablePattern (Ident "x" 396)) (Variable (QualIdent Nothing (Ident "xs" 394))))])) []))])
+,(FunctionDecl (689,1) (Ident "isEmptySet" 0) [(Equation (689,1) (FunLhs (Ident "isEmptySet" 0) []) (SimpleRhs (689,14) (Variable (QualIdent (Just "FiniteMap") (Ident "isEmptyFM" 0))) []))])
+,(FunctionDecl (690,1) (Ident "elementOf" 0) [(Equation (690,1) (FunLhs (Ident "elementOf" 0) []) (SimpleRhs (690,13) (Variable (QualIdent (Just "FiniteMap") (Ident "elemFM" 0))) []))])
+,(FunctionDecl (691,1) (Ident "minusSet" 0) [(Equation (691,1) (FunLhs (Ident "minusSet" 0) []) (SimpleRhs (691,13) (Variable (QualIdent (Just "FiniteMap") (Ident "minusFM" 0))) []))])
+,(FunctionDecl (692,1) (Ident "setToList" 0) [(Equation (692,1) (FunLhs (Ident "setToList" 0) []) (SimpleRhs (692,13) (Variable (QualIdent (Just "FiniteMap") (Ident "keysFM" 0))) []))])
+,(FunctionDecl (693,1) (Ident "union" 0) [(Equation (693,1) (FunLhs (Ident "union" 0) []) (SimpleRhs (693,9) (Variable (QualIdent (Just "FiniteMap") (Ident "plusFM" 0))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/FiniteMap.efc b/src/lib/Curry/Module/.curry/FiniteMap.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FiniteMap.efc
@@ -0,0 +1,1 @@
+Prog "FiniteMap" ["Maybe","Prelude"] [TypeSyn ((Nothing,Nothing,"FiniteMap","LeKey")) Private [0] (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))),TypeSyn ((Nothing,Nothing,"FiniteMap","FiniteSet")) Private [0] (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]),Type ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) Public [0,1] [Cons ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) 2 Private [FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])),TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]]],Type ((Nothing,Nothing,"FiniteMap","FiniteMap")) Private [0,1] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) 0 Private [],Cons ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) 5 Private [TVar 0,TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1],TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]]]] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1])),"FiniteMap","emptyFM")) 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1])) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1])))),"FiniteMap","unitFM")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TVar 0),2),(Just (TVar 1),3)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","unitFM'")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","unitFM'")) 2 Private (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 1),2)),Lit (Intc  1),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","listToFM")) 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","addListToFM")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1])),"FiniteMap","emptyFM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1])))),"FiniteMap","addToFM")) 3 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1])))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TVar 0),2),(Just (TVar 1),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","addToFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5)),Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","addToFM'")) 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TVar 0),3),(Just (TVar 1),4)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","addToFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),"FiniteMap","addToFM'._#lambda2")) [],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)),Var ((Just (TVar 0),3)),Var ((Just (TVar 1),4))])),Func ((Nothing,Just (FuncType (TVar 270) (FuncType (TVar 270) (TVar 270))),"FiniteMap","addToFM'._#lambda2")) 2 Private (FuncType (TVar 270) (FuncType (TVar 270) (TVar 270))) (Rule [(Just (TVar 270),1),(Just (TVar 270),2)] (Var ((Just (TVar 270),2)))),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","addToFM_C'")) 5 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3),(Just (TVar 0),4),(Just (TVar 1),5)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","unitFM'")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),6),(Just (TVar 1),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),4))],Var ((Just (TVar 0),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),6)),Var ((Just (TVar 1),7)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","addToFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9)),Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 0),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (TVar 1),7))],Var ((Just (TVar 1),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),6)),Var ((Just (TVar 1),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","addToFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10)),Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5))]])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","addListToFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","addListToFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),2))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","addListToFM'")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","addListToFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),"FiniteMap","addListToFM'._#lambda3")) [],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),3))])),Func ((Nothing,Just (FuncType (TVar 246) (FuncType (TVar 246) (TVar 246))),"FiniteMap","addListToFM'._#lambda3")) 2 Private (FuncType (TVar 246) (FuncType (TVar 246) (TVar 246))) (Rule [(Just (TVar 246),1),(Just (TVar 246),2)] (Var ((Just (TVar 246),2)))),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","addListToFM_C'")) 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),4)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"Prelude","foldl")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","addListToFM_C'.add.30")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),4))])),Func ((Nothing,Just (FuncType (FuncType (TVar 235) (FuncType (TVar 235) (TVar 235))) (FuncType (FuncType (TVar 234) (FuncType (TVar 234) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 234,TVar 235]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 234,TVar 235]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 234,TVar 235]))))),"FiniteMap","addListToFM_C'.add.30")) 4 Private (FuncType (FuncType (TVar 235) (FuncType (TVar 235) (TVar 235))) (FuncType (FuncType (TVar 234) (FuncType (TVar 234) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 234,TVar 235]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 234,TVar 235]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 234,TVar 235]))))) (Rule [(Just (FuncType (TVar 235) (FuncType (TVar 235) (TVar 235))),1),(Just (FuncType (TVar 234) (FuncType (TVar 234) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 234,TVar 235]),3),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 234,TVar 235]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 234,TVar 235]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 234) (FuncType (TVar 235) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 234,TVar 235]))),"Prelude","(,)")) [(Just (TVar 234),5),(Just (TVar 235),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 234) (FuncType (TVar 234) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 235) (FuncType (TVar 235) (TVar 235))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 234,TVar 235]) (FuncType (TVar 234) (FuncType (TVar 235) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 234,TVar 235])))))),"FiniteMap","addToFM_C'")) [Var ((Just (FuncType (TVar 234) (FuncType (TVar 234) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (FuncType (TVar 235) (FuncType (TVar 235) (TVar 235))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 234,TVar 235]),3)),Var ((Just (TVar 234),5)),Var ((Just (TVar 235),6))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TVar 1) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]))))),"FiniteMap","addToFM_C")) 4 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 1,TVar 0]) (FuncType (TVar 1) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 1,TVar 0]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]),2),(Just (TVar 1),3),(Just (TVar 0),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]))),"FiniteMap","FM")) [(Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (FuncType (TVar 1) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0])))))),"FiniteMap","addToFM_C'")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]),6)),Var ((Just (TVar 1),3)),Var ((Just (TVar 0),4))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0])))),"FiniteMap","addListToFM_C")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 1,TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TVar 0]]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 1,TVar 0])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]))),"FiniteMap","FM")) [(Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]))))),"FiniteMap","addListToFM_C'")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]),3))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","delFromFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TVar 0),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","delFromFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)),Var ((Just (TVar 0),2))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","delFromFM'")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TVar 0),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),4),(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3))],Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","delFromFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TVar 0),3))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","glueBal")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","delFromFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)),Var ((Just (TVar 0),3))]])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","delListFromFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"Prelude","foldl")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","delFromFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 1)) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1])))),"FiniteMap","updFM")) 3 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 1)) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1])))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TVar 0),2),(Just (FuncType (TVar 1) (TVar 1)),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","updFM.upd.49")) [Var ((Just (FuncType (TVar 1) (TVar 1)),3)),Var ((Just (TVar 0),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 523) (TVar 523)) (FuncType (TVar 535) (FuncType (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]))))),"FiniteMap","updFM.upd.49")) 4 Private (FuncType (FuncType (TVar 523) (TVar 523)) (FuncType (TVar 535) (FuncType (FuncType (TVar 535) (FuncType (TVar 535) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 535,TVar 523]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 535,TVar 523]))))) (Rule [(Just (FuncType (TVar 523) (TVar 523)),1),(Just (TVar 535),2),(Just (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 535) (FuncType (TVar 523) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523])))))),"FiniteMap","Branch")) [(Just (TVar 535),5),(Just (TVar 523),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),9)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 535),2)),Var ((Just (TVar 535),5))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 535) (FuncType (TVar 523) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523])))))),"FiniteMap","Branch")) [Var ((Just (TVar 535),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 523) (TVar 523)) (FuncType (TVar 523) (TVar 523))),"Prelude","apply")) [Var ((Just (FuncType (TVar 523) (TVar 523)),1)),Var ((Just (TVar 523),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),8)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),9))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TVar 535),2))],Var ((Just (TVar 535),5))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 535) (FuncType (TVar 523) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523])))))),"FiniteMap","Branch")) [Var ((Just (TVar 535),5)),Var ((Just (TVar 523),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 523) (TVar 523)) (FuncType (TVar 535) (FuncType (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]))))),"FiniteMap","updFM.upd.49")) [Var ((Just (FuncType (TVar 523) (TVar 523)),1)),Var ((Just (TVar 535),2)),Var ((Just (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),8))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),9))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 535) (FuncType (TVar 523) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523])))))),"FiniteMap","Branch")) [Var ((Just (TVar 535),5)),Var ((Just (TVar 523),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),8)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 523) (TVar 523)) (FuncType (TVar 535) (FuncType (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]))))),"FiniteMap","updFM.upd.49")) [Var ((Just (FuncType (TVar 523) (TVar 523)),1)),Var ((Just (TVar 535),2)),Var ((Just (FuncType (TVar 535) (FuncType (TVar 535) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),9))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 535,TVar 523]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]]))),"FiniteMap","splitFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1],TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]]) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]])))),"Prelude","maybe")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]]),"Prelude","Nothing")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]])))),"FiniteMap","splitFM._#lambda4")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)),Var ((Just (TVar 0),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"FiniteMap","lookupFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)),Var ((Just (TVar 0),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600]) (FuncType (TVar 593) (FuncType (TVar 600) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 593,TVar 600]]])))),"FiniteMap","splitFM._#lambda4")) 3 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 593,TVar 600]) (FuncType (TVar 593) (FuncType (TVar 600) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 593,TVar 600],TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 593,TVar 600]]])))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600]),1),(Just (TVar 593),2),(Just (TVar 600),3)] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 593,TVar 600]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 593,TVar 600]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600]) (FuncType (TVar 611) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600],TCons (Nothing,Nothing,"Prelude","(,)") [TVar 593,TVar 600]]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600]) (FuncType (TVar 593) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600]))),"FiniteMap","delFromFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 593,TVar 600]),1)),Var ((Just (TVar 593),2))],Comb ConsCall ((Nothing,Just (FuncType (TVar 593) (FuncType (TVar 600) (TVar 611))),"Prelude","(,)")) [Var ((Just (TVar 593),2)),Var ((Just (TVar 600),3))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","plusFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","plusFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","plusFM'")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),4),(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),9),(Just (TVar 1),10),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),11),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),12),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),13)]) (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14),Comb ConsCall ((Nothing,Just (FuncType (TVar 766) (FuncType (TVar 767) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 766,TVar 767]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 766,TVar 767]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 766,TVar 767])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 768) (FuncType (TVar 768) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 768,TVar 769]) (FuncType (TVar 768) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 768,TVar 769])))),"FiniteMap","splitLT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14)),Var ((Just (TVar 0),9))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 770) (FuncType (TVar 770) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 770,TVar 771]) (FuncType (TVar 770) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 770,TVar 771])))),"FiniteMap","splitGT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14)),Var ((Just (TVar 0),9))])] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkVBalBranch")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),9)),Var ((Just (TVar 1),10)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","plusFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),12))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","plusFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),13))]]))))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0])))),"FiniteMap","plusFM_C")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 1,TVar 0]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 1,TVar 0]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 1,TVar 0])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]))),"FiniteMap","FM")) [(Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]),3))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]))),"FiniteMap","FM")) [(Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]),7)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 1,TVar 0]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]))))),"FiniteMap","plusFM_C'")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 0]),7))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","plusFM_C'")) 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),5),(Just (TVar 1),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),5)),Var ((Just (TVar 1),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),10),(Just (TVar 1),11),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),12),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),13),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14)]) (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15),Comb ConsCall ((Nothing,Just (FuncType (TVar 853) (FuncType (TVar 854) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 853,TVar 854]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 853,TVar 854]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 853,TVar 854])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),5)),Var ((Just (TVar 1),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 855) (FuncType (TVar 855) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 855,TVar 856]) (FuncType (TVar 855) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 855,TVar 856])))),"FiniteMap","splitLT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)),Var ((Just (TVar 0),10))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 857) (FuncType (TVar 857) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 857,TVar 858]) (FuncType (TVar 857) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 857,TVar 858])))),"FiniteMap","splitGT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)),Var ((Just (TVar 0),10))])] (Let [((Just (TVar 1),18),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 859) (FuncType (TVar 859) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 859,TVar 860]) (FuncType (TVar 859) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 860])))),"FiniteMap","lookupFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)),Var ((Just (TVar 0),10))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 865]),"Prelude","Nothing")) []) (Var ((Just (TVar 1),11))),Branch (Pattern ((Nothing,Just (FuncType (TVar 866) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 866])),"Prelude","Just")) [(Just (TVar 850),19)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 863) (TVar 864)) (FuncType (TVar 863) (TVar 864))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 861) (TVar 862)) (FuncType (TVar 861) (TVar 862))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (TVar 850),19))],Var ((Just (TVar 1),11))])])] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkVBalBranch")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),10)),Var ((Just (TVar 1),18)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","plusFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),13))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","plusFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14))]])))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","minusFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","minusFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","minusFM'")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 2]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),4),(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2])))))),"FiniteMap","Branch")) [(Just (TVar 0),9),(Just (TVar 2),10),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),11),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),12),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),13)]) (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14),Comb ConsCall ((Nothing,Just (FuncType (TVar 952) (FuncType (TVar 953) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 952,TVar 953]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 952,TVar 953]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 952,TVar 953])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 954) (FuncType (TVar 954) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 954,TVar 955]) (FuncType (TVar 954) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 954,TVar 955])))),"FiniteMap","splitLT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14)),Var ((Just (TVar 0),9))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 956) (FuncType (TVar 956) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 956,TVar 957]) (FuncType (TVar 956) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 956,TVar 957])))),"FiniteMap","splitGT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14)),Var ((Just (TVar 0),9))])] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","glueVBal")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","minusFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),12))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","minusFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),13))]]))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","intersectFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","intersectFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2])))),"FiniteMap","intersectFM'")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 2]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 2])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]))))),"FiniteMap","intersectFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2))),"FiniteMap","intersectFM'._#lambda6")) [],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),3))])),Func ((Nothing,Just (FuncType (TVar 1051) (FuncType (TVar 1052) (TVar 1052))),"FiniteMap","intersectFM'._#lambda6")) 2 Private (FuncType (TVar 1051) (FuncType (TVar 1052) (TVar 1052))) (Rule [(Just (TVar 1051),1),(Just (TVar 1052),2)] (Var ((Just (TVar 1052),2)))),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 0]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 1])))),"FiniteMap","intersectFM_C")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 1))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 2,TVar 0]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 2,TVar 0]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 2,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 1))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 0]),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 0]))),"FiniteMap","FM")) [(Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 0]),3))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 0]))),"FiniteMap","FM")) [(Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 0]),7)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 2,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 0]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 1]))))),"FiniteMap","intersectFM_C'")) [Var ((Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 1))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 0]),7))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]))))),"FiniteMap","intersectFM_C'")) 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 2]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 3]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2])))))),"FiniteMap","Branch")) [(Just (TVar 0),5),(Just (TVar 2),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),10),(Just (TVar 1),11),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),12),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),13),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14)]) (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15),Comb ConsCall ((Nothing,Just (FuncType (TVar 1022) (FuncType (TVar 1023) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1022,TVar 1023]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1022,TVar 1023]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1022,TVar 1023])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),10)),Var ((Just (TVar 1),11)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),12)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),13)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1024) (FuncType (TVar 1024) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1024,TVar 1025]) (FuncType (TVar 1024) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1024,TVar 1025])))),"FiniteMap","splitLT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)),Var ((Just (TVar 0),5))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1026) (FuncType (TVar 1026) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1026,TVar 1027]) (FuncType (TVar 1026) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1026,TVar 1027])))),"FiniteMap","splitGT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)),Var ((Just (TVar 0),5))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),18),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1028) (FuncType (TVar 1028) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1028,TVar 1029]) (FuncType (TVar 1028) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1029])))),"FiniteMap","lookupFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)),Var ((Just (TVar 0),5))])] (Let [((Just (TVar 1017),19),Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),18)))] (Let [((Just (TVar 1),20),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1030]) (TVar 1030)),"FiniteMap","intersectFM_C'._#selFP3#elt1'")) [Var ((Just (TVar 1017),19))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Maybe","isJust")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),18))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3])))))),"FiniteMap","mkVBalBranch")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 2) (TVar 3)) (FuncType (TVar 2) (TVar 3))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2)),Var ((Just (TVar 1),20))],Var ((Just (TVar 2),6))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]))))),"FiniteMap","intersectFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),8))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]))))),"FiniteMap","intersectFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),9))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3])))),"FiniteMap","glueVBal")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]))))),"FiniteMap","intersectFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),8))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]))))),"FiniteMap","intersectFM_C'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]),9))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 3]),"Prelude","failed")) [])])])))))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1000]) (TVar 1000)),"FiniteMap","intersectFM_C'._#selFP3#elt1'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1000]) (TVar 1000)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1000]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1000]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1000) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1000])),"Prelude","Just")) [(Just (TVar 1000),2)]) (Var ((Just (TVar 1000),2)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2)))) (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TVar 2)))),"FiniteMap","foldFM")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2)))) (FuncType (TVar 2) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TVar 2)))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2)))),1),(Just (TVar 2),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2)))) (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TVar 2))))),"FiniteMap","foldFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2)))),1)),Var ((Just (TVar 2),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5))])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))) (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TVar 3))))),"FiniteMap","foldFM'")) 4 Private (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))) (FuncType (TVar 3) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 1,TVar 2]) (TVar 3))))) (Rule [(Just (TVar 0),1),(Just (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))),2),(Just (TVar 3),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),"FiniteMap","EmptyFM")) []) (Var ((Just (TVar 3),3))),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2])))))),"FiniteMap","Branch")) [(Just (TVar 1),5),(Just (TVar 2),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),9)]) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))) (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TVar 3))))),"FiniteMap","foldFM'")) [Var ((Just (TVar 0),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 3) (TVar 3)) (FuncType (TVar 3) (TVar 3))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3))) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))) (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3))))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))),2)),Var ((Just (TVar 1),5))],Var ((Just (TVar 2),6))],Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))) (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TVar 3))))),"FiniteMap","foldFM'")) [Var ((Just (TVar 0),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))),2)),Var ((Just (TVar 3),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),9))]],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),8))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 2]))),"FiniteMap","mapFM")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 2]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 2]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 2])))),"FiniteMap","mapFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 3])))),"FiniteMap","mapFM'")) 3 Private (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 1,TVar 2]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 1,TVar 3])))) (Rule [(Just (TVar 0),1),(Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 3]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2])))))),"FiniteMap","Branch")) [(Just (TVar 1),4),(Just (TVar 2),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),8)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 3]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 3]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 3])))))),"FiniteMap","Branch")) [Var ((Just (TVar 1),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 2) (TVar 3)) (FuncType (TVar 2) (TVar 3))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2)),Var ((Just (TVar 1),4))],Var ((Just (TVar 2),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 3])))),"FiniteMap","mapFM'")) [Var ((Just (TVar 0),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),7))],Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 3])))),"FiniteMap","mapFM'")) [Var ((Just (TVar 0),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 1,TVar 2]),8))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","filterFM")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","filterFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","filterFM'")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),4),(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 0),4))],Var ((Just (TVar 1),5))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkVBalBranch")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","filterFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","filterFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","glueVBal")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","filterFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","filterFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"Prelude","failed")) [])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM")) 1 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),4),(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),2),(Just (TVar 1),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"FiniteMap","eqFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","fmToList")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","fmToList")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM")) 1 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))],Lit (Intc  0)])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"FiniteMap","elemFM")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Maybe","isJust")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"FiniteMap","lookupFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),2)),Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"FiniteMap","lookupFM")) 2 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TVar 0),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"FiniteMap","lookupFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)),Var ((Just (TVar 0),2))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"FiniteMap","lookupFM'")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TVar 0),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),4),(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3))],Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"FiniteMap","lookupFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TVar 0),3))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),"Prelude","Just")) [Var ((Just (TVar 1),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"FiniteMap","lookupFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)),Var ((Just (TVar 0),3))])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 1) (FuncType (TVar 0) (TVar 1)))),"FiniteMap","lookupWithDefaultFM")) 3 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TVar 1) (FuncType (TVar 0) (TVar 1)))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1),(Just (TVar 1),2),(Just (TVar 0),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"FiniteMap","lookupFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)),Var ((Just (TVar 0),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),"Prelude","Nothing")) []) (Var ((Just (TVar 1),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),"Prelude","Just")) [(Just (TVar 1),4)]) (Var ((Just (TVar 1),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"FiniteMap","keyOrder")) 1 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)]) (Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","minFM")) 0 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","minFM.min.215")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])),"FiniteMap","tree")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","minFM.min.215")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),2),(Just (TVar 1),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","minFM.min.215")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","failed")) [])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","maxFM")) 0 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","maxFM.max.223")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])),"FiniteMap","tree")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","maxFM.max.223")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),2),(Just (TVar 1),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","maxFM.max.223")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","failed")) [])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","fmToList")) 1 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))),"FiniteMap","foldFM")) [Comb (FuncPartCall 3) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))),"FiniteMap","fmToList._#lambda8")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))])),Func ((Nothing,Just (FuncType (TVar 1237) (FuncType (TVar 1238) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1237,TVar 1238]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1237,TVar 1238]])))),"FiniteMap","fmToList._#lambda8")) 3 Private (FuncType (TVar 1237) (FuncType (TVar 1238) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1237,TVar 1238]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1237,TVar 1238]])))) (Rule [(Just (TVar 1237),1),(Just (TVar 1238),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1237,TVar 1238]]),3)] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1237,TVar 1238]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1237,TVar 1238]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1237,TVar 1238]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 1237) (FuncType (TVar 1238) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1237,TVar 1238]))),"Prelude","(,)")) [Var ((Just (TVar 1237),1)),Var ((Just (TVar 1238),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1237,TVar 1238]]),3))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"FiniteMap","keysFM")) 1 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"FiniteMap","foldFM")) [Comb (FuncPartCall 3) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"FiniteMap","keysFM._#lambda9")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))])),Func ((Nothing,Just (FuncType (TVar 1356) (FuncType (TVar 1353) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1356]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1356])))),"FiniteMap","keysFM._#lambda9")) 3 Private (FuncType (TVar 1356) (FuncType (TVar 1353) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1356]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1356])))) (Rule [(Just (TVar 1356),1),(Just (TVar 1353),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1356]),3)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 1356) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1356]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1356]))),"Prelude",":")) [Var ((Just (TVar 1356),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1356]),3))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])),"FiniteMap","eltsFM")) 1 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"FiniteMap","foldFM")) [Comb (FuncPartCall 3) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"FiniteMap","eltsFM._#lambda10")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))])),Func ((Nothing,Just (FuncType (TVar 1363) (FuncType (TVar 1367) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1367]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1367])))),"FiniteMap","eltsFM._#lambda10")) 3 Private (FuncType (TVar 1363) (FuncType (TVar 1367) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1367]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1367])))) (Rule [(Just (TVar 1363),1),(Just (TVar 1367),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1367]),3)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 1367) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1367]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1367]))),"Prelude",":")) [Var ((Just (TVar 1367),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1367]),3))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"FiniteMap","fmToListPreOrder")) 1 Public (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"FiniteMap","fmToListPreOrder.pre.243")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","[]")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"FiniteMap","fmToListPreOrder.pre.243")) 2 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),3),(Just (TVar 1),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 1),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"FiniteMap","fmToListPreOrder.pre.243")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"FiniteMap","fmToListPreOrder.pre.243")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),2))]]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"FiniteMap","fmSortBy")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 4]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"FiniteMap","keysFM")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 4]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 4])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 4]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 4]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 4]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 4]))),"FiniteMap","listToFM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 4]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 4]]))),"Prelude","zip")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)),Comb FuncCall ((Nothing,Just (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 4])),"Prelude","repeat")) [Comb ConsCall ((Nothing,Just (TVar 4),"Prelude","()")) []]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])),"FiniteMap","tree")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TVar 1]))),"FiniteMap","FM")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)]) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"FiniteMap","toGT")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TVar 0),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),2))],Var ((Just (TVar 0),3))]],Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 0),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1))],Lit (Intc  0)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"FiniteMap","sIZE_RATIO")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Int")) []) (Rule [] (Lit (Intc  5))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkBranch")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TVar 0),2),(Just (TVar 1),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 2,TVar 3]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 4,TVar 5]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5))])] (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","mkBranch.unbox.264")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Lit (Intc  1),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))]],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5))])))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","mkBranch.unbox.264")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) 4 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]))))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 181,TVar 182]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 183,TVar 184]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Lit (Intc  2)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkBranch")) [Lit (Intc  1),Var ((Just (TVar 0),1)),Var ((Just (TVar 1),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"FiniteMap","sIZE_RATIO")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),7),(Just (TVar 1),8),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),9),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch.single_L.273")) [Var ((Just (TVar 1),2)),Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch.double_L.273")) [Var ((Just (TVar 1),2)),Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"Prelude","failed")) [])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"FiniteMap","sIZE_RATIO")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),12),(Just (TVar 1),13),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),14),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch.single_R.273")) [Var ((Just (TVar 1),2)),Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch.double_R.273")) [Var ((Just (TVar 1),2)),Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"Prelude","failed")) [])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkBranch")) [Lit (Intc  2),Var ((Just (TVar 0),1)),Var ((Just (TVar 1),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"Prelude","failed")) [])])])])])))),Func ((Nothing,Just (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]))))),"FiniteMap","mkBalBranch.single_L.273")) 4 Private (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]))))) (Rule [(Just (TVar 170),1),(Just (TVar 169),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","Branch")) [(Just (TVar 169),5),(Just (TVar 170),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),9)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  3),Var ((Just (TVar 169),5)),Var ((Just (TVar 170),6)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  4),Var ((Just (TVar 169),2)),Var ((Just (TVar 170),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),8))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),9))])])),Func ((Nothing,Just (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]))))),"FiniteMap","mkBalBranch.double_L.273")) 4 Private (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]))))) (Rule [(Just (TVar 170),1),(Just (TVar 169),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","Branch")) [(Just (TVar 169),5),(Just (TVar 170),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","Branch")) [(Just (TVar 169),10),(Just (TVar 170),11),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),12),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),13),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),14)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  5),Var ((Just (TVar 169),10)),Var ((Just (TVar 170),11)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  6),Var ((Just (TVar 169),2)),Var ((Just (TVar 170),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),13))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  7),Var ((Just (TVar 169),5)),Var ((Just (TVar 170),6)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),14)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),9))]])])])),Func ((Nothing,Just (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]))))),"FiniteMap","mkBalBranch.single_R.273")) 4 Private (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]))))) (Rule [(Just (TVar 170),1),(Just (TVar 169),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","Branch")) [(Just (TVar 169),5),(Just (TVar 170),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),9)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  8),Var ((Just (TVar 169),5)),Var ((Just (TVar 170),6)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),8)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  9),Var ((Just (TVar 169),2)),Var ((Just (TVar 170),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),9)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),4))]])])),Func ((Nothing,Just (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]))))),"FiniteMap","mkBalBranch.double_R.273")) 4 Private (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 169,TVar 170]))))) (Rule [(Just (TVar 170),1),(Just (TVar 169),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","Branch")) [(Just (TVar 169),5),(Just (TVar 170),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","Branch")) [(Just (TVar 169),10),(Just (TVar 170),11),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),12),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),13),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),14)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  10),Var ((Just (TVar 169),10)),Var ((Just (TVar 170),11)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  11),Var ((Just (TVar 169),5)),Var ((Just (TVar 170),6)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),8)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),13))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 169) (FuncType (TVar 170) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170])))))),"FiniteMap","mkBranch")) [Lit (Intc  12),Var ((Just (TVar 169),2)),Var ((Just (TVar 170),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),14)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 169,TVar 170]),4))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkVBalBranch")) 5 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TVar 0),2),(Just (TVar 1),3),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","addToFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5)),Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),6),(Just (TVar 1),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","addToFM'")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),6)),Var ((Just (TVar 1),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10))],Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),11),(Just (TVar 1),12),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),13),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15)]) (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16),Comb ConsCall ((Nothing,Just (FuncType (TVar 659) (FuncType (TVar 660) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 659,TVar 660]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 659,TVar 660]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 659,TVar 660])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),6)),Var ((Just (TVar 1),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17),Comb ConsCall ((Nothing,Just (FuncType (TVar 661) (FuncType (TVar 662) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 661,TVar 662]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 661,TVar 662]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 661,TVar 662])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),11)),Var ((Just (TVar 1),12)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),13)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),18),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 663,TVar 664]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),19),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 665,TVar 666]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"FiniteMap","sIZE_RATIO")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),18))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),19))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),11)),Var ((Just (TVar 1),12)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkVBalBranch")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),14))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),15))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"FiniteMap","sIZE_RATIO")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),19))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),18))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),6)),Var ((Just (TVar 1),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),9)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkVBalBranch")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkBranch")) [Lit (Intc  13),Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),16)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),17))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"Prelude","failed")) [])])])])))))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","glueBal")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TVar 441),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 447,TVar 448]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 447,TVar 448])),"FiniteMap","findMax")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))])] (Let [((Just (TVar 0),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 449,TVar 450]) (TVar 449)),"FiniteMap","glueBal._#selFP8#mid_key1")) [Var ((Just (TVar 441),4))])] (Let [((Just (TVar 1),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 451,TVar 452]) (TVar 452)),"FiniteMap","glueBal._#selFP9#mid_elt1")) [Var ((Just (TVar 441),4))])] (Let [((Just (TVar 442),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 453,TVar 454]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 453,TVar 454])),"FiniteMap","findMin")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))])] (Let [((Just (TVar 0),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 455,TVar 456]) (TVar 455)),"FiniteMap","glueBal._#selFP6#mid_key2")) [Var ((Just (TVar 442),7))])] (Let [((Just (TVar 1),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 457,TVar 458]) (TVar 458)),"FiniteMap","glueBal._#selFP7#mid_elt2")) [Var ((Just (TVar 442),7))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),8)),Var ((Just (TVar 1),9)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","deleteMin")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),5)),Var ((Just (TVar 1),6)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","deleteMax")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))])])))))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]) (TVar 439)),"FiniteMap","glueBal._#selFP8#mid_key1")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 439,TVar 440]) (TVar 439)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 439) (FuncType (TVar 443) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]))),"Prelude","(,)")) [(Just (TVar 439),2),(Just (TVar 443),3)]) (Var ((Just (TVar 439),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]) (TVar 440)),"FiniteMap","glueBal._#selFP9#mid_elt1")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 439,TVar 440]) (TVar 440)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 442) (FuncType (TVar 440) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]))),"Prelude","(,)")) [(Just (TVar 442),2),(Just (TVar 440),3)]) (Var ((Just (TVar 440),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]) (TVar 439)),"FiniteMap","glueBal._#selFP6#mid_key2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 439,TVar 440]) (TVar 439)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 439) (FuncType (TVar 443) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]))),"Prelude","(,)")) [(Just (TVar 439),2),(Just (TVar 443),3)]) (Var ((Just (TVar 439),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]) (TVar 440)),"FiniteMap","glueBal._#selFP7#mid_elt2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 439,TVar 440]) (TVar 440)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 442) (FuncType (TVar 440) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 439,TVar 440]))),"Prelude","(,)")) [(Just (TVar 442),2),(Just (TVar 440),3)]) (Var ((Just (TVar 440),3)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","glueVBal")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TVar 878),4),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)))] (Let [((Just (TVar 0),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 884,TVar 885]) (TVar 884)),"FiniteMap","glueVBal._#selFP16#key_l")) [Var ((Just (TVar 878),4))])] (Let [((Just (TVar 1),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 886,TVar 887]) (TVar 887)),"FiniteMap","glueVBal._#selFP17#elt_l")) [Var ((Just (TVar 878),4))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 888,TVar 889]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 888,TVar 889])),"FiniteMap","glueVBal._#selFP18#fm_ll")) [Var ((Just (TVar 878),4))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 890,TVar 891]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 890,TVar 891])),"FiniteMap","glueVBal._#selFP19#fm_lr")) [Var ((Just (TVar 878),4))])] (Let [((Just (TVar 879),9),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3)))] (Let [((Just (TVar 0),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 892,TVar 893]) (TVar 892)),"FiniteMap","glueVBal._#selFP12#key_r")) [Var ((Just (TVar 879),9))])] (Let [((Just (TVar 1),11),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 894,TVar 895]) (TVar 895)),"FiniteMap","glueVBal._#selFP13#elt_r")) [Var ((Just (TVar 879),9))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),12),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 896,TVar 897]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 896,TVar 897])),"FiniteMap","glueVBal._#selFP14#fm_rl")) [Var ((Just (TVar 879),9))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),13),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 898,TVar 899]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 898,TVar 899])),"FiniteMap","glueVBal._#selFP15#fm_rr")) [Var ((Just (TVar 879),9))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),14),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 900,TVar 901]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),15),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 902,TVar 903]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM'")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"FiniteMap","sIZE_RATIO")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),14))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),15))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),10)),Var ((Just (TVar 1),11)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","glueVBal")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),12))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),13))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"FiniteMap","sIZE_RATIO")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),15))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),14))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),5)),Var ((Just (TVar 1),6)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","glueVBal")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","glueBal")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),3))])])])))))))))))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TVar 876)),"FiniteMap","glueVBal._#selFP16#key_l")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877]) (TVar 876)) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 876) (FuncType (TVar 877) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])))))),"FiniteMap","Branch")) [(Just (TVar 876),2),(Just (TVar 877),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)]) (Var ((Just (TVar 876),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TVar 877)),"FiniteMap","glueVBal._#selFP17#elt_l")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877]) (TVar 877)) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 876) (FuncType (TVar 877) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])))))),"FiniteMap","Branch")) [(Just (TVar 876),2),(Just (TVar 877),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)]) (Var ((Just (TVar 877),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])),"FiniteMap","glueVBal._#selFP18#fm_ll")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 876) (FuncType (TVar 877) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])))))),"FiniteMap","Branch")) [(Just (TVar 876),2),(Just (TVar 877),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)]) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])),"FiniteMap","glueVBal._#selFP19#fm_lr")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 876) (FuncType (TVar 877) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])))))),"FiniteMap","Branch")) [(Just (TVar 876),2),(Just (TVar 877),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)]) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TVar 876)),"FiniteMap","glueVBal._#selFP12#key_r")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877]) (TVar 876)) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 876) (FuncType (TVar 877) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])))))),"FiniteMap","Branch")) [(Just (TVar 876),2),(Just (TVar 877),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)]) (Var ((Just (TVar 876),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TVar 877)),"FiniteMap","glueVBal._#selFP13#elt_r")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877]) (TVar 877)) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 876) (FuncType (TVar 877) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])))))),"FiniteMap","Branch")) [(Just (TVar 876),2),(Just (TVar 877),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)]) (Var ((Just (TVar 877),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])),"FiniteMap","glueVBal._#selFP14#fm_rl")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 876) (FuncType (TVar 877) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])))))),"FiniteMap","Branch")) [(Just (TVar 876),2),(Just (TVar 877),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)]) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])),"FiniteMap","glueVBal._#selFP15#fm_rr")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 876,TVar 877])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 876) (FuncType (TVar 877) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877])))))),"FiniteMap","Branch")) [(Just (TVar 876),2),(Just (TVar 877),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)]) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 876,TVar 877]),6)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","splitLT")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TVar 0),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),4),(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3))],Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","splitLT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TVar 0),3))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkVBalBranch")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","splitLT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)),Var ((Just (TVar 0),3))]])])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","splitGT")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2),(Just (TVar 0),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),4),(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3))],Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","mkVBalBranch")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),4)),Var ((Just (TVar 1),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","splitGT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)),Var ((Just (TVar 0),3))],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))),"FiniteMap","splitGT")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),8)),Var ((Just (TVar 0),3))])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1])),"FiniteMap","findMin")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),2),(Just (TVar 1),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),7),(Just (TVar 1),8),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),9),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1])),"FiniteMap","findMin")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),7)),Var ((Just (TVar 1),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","deleteMin")) 2 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),3),(Just (TVar 1),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),8),(Just (TVar 1),9),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),10),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),12)]) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 1),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","deleteMin")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),8)),Var ((Just (TVar 1),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),10)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),12))]],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1])),"FiniteMap","findMax")) 1 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1])) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),2),(Just (TVar 1),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),7),(Just (TVar 1),8),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),9),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1])),"FiniteMap","findMax")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),7)),Var ((Just (TVar 1),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),10)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","deleteMax")) 2 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"FiniteMap","FiniteMap")) [TVar 0,TVar 1]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),3),(Just (TVar 1),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),7))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),"FiniteMap","EmptyFM")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [(Just (TVar 0),8),(Just (TVar 1),9),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),10),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11),(Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),12)]) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))))),"FiniteMap","mkBalBranch")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 1),4)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),6)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]))),"FiniteMap","deleteMax")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1])))))),"FiniteMap","Branch")) [Var ((Just (TVar 0),8)),Var ((Just (TVar 1),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),10)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),11)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FiniteMap") [TVar 0,TVar 1]),12))]]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []])),"FiniteMap","emptySet")) 0 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []])),"FiniteMap","emptyFM")) [])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]))),"FiniteMap","mkSet")) 2 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]))),"FiniteMap","listToFM")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []])),"FiniteMap","mkSet._#lambda13")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]])),Func ((Nothing,Just (FuncType (TVar 1421) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1421,TCons (Nothing,Nothing,"Prelude","()") []])),"FiniteMap","mkSet._#lambda13")) 1 Private (FuncType (TVar 1421) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1421,TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TVar 1421),1)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 1421) (FuncType (TVar 1424) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1421,TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","(,)")) [Var ((Just (TVar 1421),1)),Comb ConsCall ((Nothing,Just (TVar 1424),"Prelude","()")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptySet")) 0 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"FiniteMap","elementOf")) 0 Private (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"FiniteMap","elemFM")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]))),"FiniteMap","minusSet")) 0 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]))),"FiniteMap","minusFM")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"FiniteMap","setToList")) 0 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"FiniteMap","keysFM")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]))),"FiniteMap","union")) 0 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]) (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]))),"FiniteMap","plusFM")) []))] []
diff --git a/src/lib/Curry/Module/.curry/FiniteMap.fcy b/src/lib/Curry/Module/.curry/FiniteMap.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FiniteMap.fcy
@@ -0,0 +1,1 @@
+Prog "FiniteMap" ["Maybe","Prelude"] [TypeSyn ("FiniteMap","LeKey") Private [0] (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))),TypeSyn ("FiniteMap","FiniteSet") Private [0] (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]),Type ("FiniteMap","FM") Public [0,1] [Cons ("FiniteMap","FM") 2 Private [FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") [])),TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]]],Type ("FiniteMap","FiniteMap") Private [0,1] [Cons ("FiniteMap","EmptyFM") 0 Private [],Cons ("FiniteMap","Branch") 5 Private [TVar 0,TVar 1,TCons ("Prelude","Int") [],TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1],TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]]]] [Func ("FiniteMap","emptyFM") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("FiniteMap","FM") [TVar 0,TVar 1])) (Rule [1] (Comb ConsCall ("FiniteMap","FM") [Var 1,Comb ConsCall ("FiniteMap","EmptyFM") []])),Func ("FiniteMap","unitFM") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("FiniteMap","FM") [TVar 0,TVar 1])))) (Rule [1,2,3] (Comb ConsCall ("FiniteMap","FM") [Var 1,Comb FuncCall ("FiniteMap","unitFM'") [Var 2,Var 3]])),Func ("FiniteMap","unitFM'") 2 Private (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]))) (Rule [1,2] (Comb ConsCall ("FiniteMap","Branch") [Var 1,Var 2,Lit (Intc  1),Comb ConsCall ("FiniteMap","EmptyFM") [],Comb ConsCall ("FiniteMap","EmptyFM") []])),Func ("FiniteMap","listToFM") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [1] (Comb (FuncPartCall 1) ("FiniteMap","addListToFM") [Comb FuncCall ("FiniteMap","emptyFM") [Var 1]])),Func ("FiniteMap","addToFM") 3 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("FiniteMap","FM") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [4,5]) (Comb ConsCall ("FiniteMap","FM") [Var 4,Comb FuncCall ("FiniteMap","addToFM'") [Var 4,Var 5,Var 2,Var 3]])])),Func ("FiniteMap","addToFM'") 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]))))) (Rule [1,2,3,4] (Comb FuncCall ("FiniteMap","addToFM_C'") [Var 1,Comb (FuncPartCall 2) ("FiniteMap","addToFM'._#lambda2") [],Var 2,Var 3,Var 4])),Func ("FiniteMap","addToFM'._#lambda2") 2 Private (FuncType (TVar 270) (FuncType (TVar 270) (TVar 270))) (Rule [1,2] (Var 2)),Func ("FiniteMap","addToFM_C'") 5 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb FuncCall ("FiniteMap","unitFM'") [Var 4,Var 5]),Branch (Pattern ("FiniteMap","Branch") [6,7,8,9,10]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 6,Var 7,Comb FuncCall ("FiniteMap","addToFM_C'") [Var 1,Var 2,Var 9,Var 4,Var 5],Var 10]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FiniteMap","Branch") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 7],Var 5],Var 8,Var 9,Var 10]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 6,Var 7,Var 9,Comb FuncCall ("FiniteMap","addToFM_C'") [Var 1,Var 2,Var 10,Var 4,Var 5]])])])])),Func ("FiniteMap","addListToFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Comb ConsCall ("FiniteMap","FM") [Var 3,Comb FuncCall ("FiniteMap","addListToFM'") [Var 3,Var 4,Var 2]])])),Func ("FiniteMap","addListToFM'") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Comb FuncCall ("FiniteMap","addListToFM_C'") [Var 1,Comb (FuncPartCall 2) ("FiniteMap","addListToFM'._#lambda3") [],Var 2,Var 3])),Func ("FiniteMap","addListToFM'._#lambda3") 2 Private (FuncType (TVar 246) (FuncType (TVar 246) (TVar 246))) (Rule [1,2] (Var 2)),Func ("FiniteMap","addListToFM_C'") 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude","foldl") [Comb (FuncPartCall 2) ("FiniteMap","addListToFM_C'.add.30") [Var 2,Var 1],Var 3,Var 4])),Func ("FiniteMap","addListToFM_C'.add.30") 4 Private (FuncType (FuncType (TVar 235) (FuncType (TVar 235) (TVar 235))) (FuncType (FuncType (TVar 234) (FuncType (TVar 234) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 234,TVar 235]) (FuncType (TCons ("Prelude","(,)") [TVar 234,TVar 235]) (TCons ("FiniteMap","FiniteMap") [TVar 234,TVar 235]))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("Prelude","(,)") [5,6]) (Comb FuncCall ("FiniteMap","addToFM_C'") [Var 2,Var 1,Var 3,Var 5,Var 6])])),Func ("FiniteMap","addToFM_C") 4 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TVar 1) (FuncType (TVar 0) (TCons ("FiniteMap","FM") [TVar 1,TVar 0]))))) (Rule [1,2,3,4] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [5,6]) (Comb ConsCall ("FiniteMap","FM") [Var 5,Comb FuncCall ("FiniteMap","addToFM_C'") [Var 5,Var 1,Var 6,Var 3,Var 4]])])),Func ("FiniteMap","addListToFM_C") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TVar 0]]) (TCons ("FiniteMap","FM") [TVar 1,TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [4,5]) (Comb ConsCall ("FiniteMap","FM") [Var 4,Comb FuncCall ("FiniteMap","addListToFM_C'") [Var 4,Var 1,Var 5,Var 3]])])),Func ("FiniteMap","delFromFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Comb ConsCall ("FiniteMap","FM") [Var 3,Comb FuncCall ("FiniteMap","delFromFM'") [Var 3,Var 4,Var 2]])])),Func ("FiniteMap","delFromFM'") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 4,Var 5,Comb FuncCall ("FiniteMap","delFromFM'") [Var 1,Var 7,Var 3],Var 8]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","glueBal") [Var 1,Var 7,Var 8]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 4,Var 5,Var 7,Comb FuncCall ("FiniteMap","delFromFM'") [Var 1,Var 8,Var 3]])])])])),Func ("FiniteMap","delListFromFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Comb ConsCall ("FiniteMap","FM") [Var 3,Comb FuncCall ("Prelude","foldl") [Comb (FuncPartCall 2) ("FiniteMap","delFromFM'") [Var 3],Var 4,Var 2]])])),Func ("FiniteMap","updFM") 3 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 1)) (TCons ("FiniteMap","FM") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [4,5]) (Comb ConsCall ("FiniteMap","FM") [Var 4,Comb FuncCall ("FiniteMap","updFM.upd.49") [Var 3,Var 2,Var 4,Var 5]])])),Func ("FiniteMap","updFM.upd.49") 4 Private (FuncType (FuncType (TVar 523) (TVar 523)) (FuncType (TVar 535) (FuncType (FuncType (TVar 535) (FuncType (TVar 535) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 535,TVar 523]) (TCons ("FiniteMap","FiniteMap") [TVar 535,TVar 523]))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [5,6,7,8,9]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Var 5]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FiniteMap","Branch") [Var 5,Comb FuncCall ("Prelude","apply") [Var 1,Var 6],Var 7,Var 8,Var 9]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Var 2],Var 5]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FiniteMap","Branch") [Var 5,Var 6,Var 7,Comb FuncCall ("FiniteMap","updFM.upd.49") [Var 1,Var 2,Var 3,Var 8],Var 9]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FiniteMap","Branch") [Var 5,Var 6,Var 7,Var 8,Comb FuncCall ("FiniteMap","updFM.upd.49") [Var 1,Var 2,Var 3,Var 9]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("FiniteMap","splitFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TCons ("FiniteMap","FM") [TVar 0,TVar 1],TCons ("Prelude","(,)") [TVar 0,TVar 1]]]))) (Rule [1,2] (Comb FuncCall ("Prelude","maybe") [Comb ConsCall ("Prelude","Nothing") [],Comb (FuncPartCall 1) ("FiniteMap","splitFM._#lambda4") [Var 1,Var 2],Comb FuncCall ("FiniteMap","lookupFM") [Var 1,Var 2]])),Func ("FiniteMap","splitFM._#lambda4") 3 Private (FuncType (TCons ("FiniteMap","FM") [TVar 593,TVar 600]) (FuncType (TVar 593) (FuncType (TVar 600) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TCons ("FiniteMap","FM") [TVar 593,TVar 600],TCons ("Prelude","(,)") [TVar 593,TVar 600]]])))) (Rule [1,2,3] (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("FiniteMap","delFromFM") [Var 1,Var 2],Comb ConsCall ("Prelude","(,)") [Var 2,Var 3]]])),Func ("FiniteMap","plusFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [5,6]) (Comb ConsCall ("FiniteMap","FM") [Var 3,Comb FuncCall ("FiniteMap","plusFM'") [Var 3,Var 4,Var 6]])])])),Func ("FiniteMap","plusFM'") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Var 3),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","Branch") [Var 4,Var 5,Var 6,Var 7,Var 8]),Branch (Pattern ("FiniteMap","Branch") [9,10,11,12,13]) (Let [(14,Comb ConsCall ("FiniteMap","Branch") [Var 4,Var 5,Var 6,Var 7,Var 8])] (Let [(15,Comb FuncCall ("FiniteMap","splitLT") [Var 1,Var 14,Var 9])] (Let [(16,Comb FuncCall ("FiniteMap","splitGT") [Var 1,Var 14,Var 9])] (Comb FuncCall ("FiniteMap","mkVBalBranch") [Var 1,Var 9,Var 10,Comb FuncCall ("FiniteMap","plusFM'") [Var 1,Var 15,Var 12],Comb FuncCall ("FiniteMap","plusFM'") [Var 1,Var 16,Var 13]]))))])])),Func ("FiniteMap","plusFM_C") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TCons ("FiniteMap","FM") [TVar 1,TVar 0]) (TCons ("FiniteMap","FM") [TVar 1,TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [4,5]) (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","FM") [6,7]) (Comb ConsCall ("FiniteMap","FM") [Var 4,Comb FuncCall ("FiniteMap","plusFM_C'") [Var 4,Var 1,Var 5,Var 7]])])])),Func ("FiniteMap","plusFM_C'") 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]))))) (Rule [1,2,3,4] (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Var 4),Branch (Pattern ("FiniteMap","Branch") [5,6,7,8,9]) (Case  Flex (Var 4) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","Branch") [Var 5,Var 6,Var 7,Var 8,Var 9]),Branch (Pattern ("FiniteMap","Branch") [10,11,12,13,14]) (Let [(15,Comb ConsCall ("FiniteMap","Branch") [Var 5,Var 6,Var 7,Var 8,Var 9])] (Let [(16,Comb FuncCall ("FiniteMap","splitLT") [Var 1,Var 15,Var 10])] (Let [(17,Comb FuncCall ("FiniteMap","splitGT") [Var 1,Var 15,Var 10])] (Let [(18,Case  Rigid (Comb FuncCall ("FiniteMap","lookupFM'") [Var 1,Var 15,Var 10]) [Branch (Pattern ("Prelude","Nothing") []) (Var 11),Branch (Pattern ("Prelude","Just") [19]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 19],Var 11])])] (Comb FuncCall ("FiniteMap","mkVBalBranch") [Var 1,Var 10,Var 18,Comb FuncCall ("FiniteMap","plusFM_C'") [Var 1,Var 2,Var 16,Var 13],Comb FuncCall ("FiniteMap","plusFM_C'") [Var 1,Var 2,Var 17,Var 14]])))))])])),Func ("FiniteMap","minusFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [5,6]) (Comb ConsCall ("FiniteMap","FM") [Var 3,Comb FuncCall ("FiniteMap","minusFM'") [Var 3,Var 4,Var 6]])])])),Func ("FiniteMap","minusFM'") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","Branch") [Var 4,Var 5,Var 6,Var 7,Var 8]),Branch (Pattern ("FiniteMap","Branch") [9,10,11,12,13]) (Let [(14,Comb ConsCall ("FiniteMap","Branch") [Var 4,Var 5,Var 6,Var 7,Var 8])] (Let [(15,Comb FuncCall ("FiniteMap","splitLT") [Var 1,Var 14,Var 9])] (Let [(16,Comb FuncCall ("FiniteMap","splitGT") [Var 1,Var 14,Var 9])] (Comb FuncCall ("FiniteMap","glueVBal") [Var 1,Comb FuncCall ("FiniteMap","minusFM'") [Var 1,Var 15,Var 12],Comb FuncCall ("FiniteMap","minusFM'") [Var 1,Var 16,Var 13]]))))])])),Func ("FiniteMap","intersectFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [5,6]) (Comb ConsCall ("FiniteMap","FM") [Var 3,Comb FuncCall ("FiniteMap","intersectFM'") [Var 3,Var 4,Var 6]])])])),Func ("FiniteMap","intersectFM'") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 2])))) (Rule [1,2,3] (Comb FuncCall ("FiniteMap","intersectFM_C'") [Var 1,Comb (FuncPartCall 2) ("FiniteMap","intersectFM'._#lambda6") [],Var 2,Var 3])),Func ("FiniteMap","intersectFM'._#lambda6") 2 Private (FuncType (TVar 1051) (FuncType (TVar 1052) (TVar 1052))) (Rule [1,2] (Var 2)),Func ("FiniteMap","intersectFM_C") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 1))) (FuncType (TCons ("FiniteMap","FM") [TVar 2,TVar 0]) (FuncType (TCons ("FiniteMap","FM") [TVar 2,TVar 0]) (TCons ("FiniteMap","FM") [TVar 2,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [4,5]) (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","FM") [6,7]) (Comb ConsCall ("FiniteMap","FM") [Var 4,Comb FuncCall ("FiniteMap","intersectFM_C'") [Var 4,Var 1,Var 5,Var 7]])])])),Func ("FiniteMap","intersectFM_C'") 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 2]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 3]))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [5,6,7,8,9]) (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [10,11,12,13,14]) (Let [(15,Comb ConsCall ("FiniteMap","Branch") [Var 10,Var 11,Var 12,Var 13,Var 14])] (Let [(16,Comb FuncCall ("FiniteMap","splitLT") [Var 1,Var 15,Var 5])] (Let [(17,Comb FuncCall ("FiniteMap","splitGT") [Var 1,Var 15,Var 5])] (Let [(18,Comb FuncCall ("FiniteMap","lookupFM'") [Var 1,Var 15,Var 5])] (Let [(19,Var 18)] (Let [(20,Comb FuncCall ("FiniteMap","intersectFM_C'._#selFP3#elt1'") [Var 19])] (Case  Rigid (Comb FuncCall ("Maybe","isJust") [Var 18]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkVBalBranch") [Var 1,Var 5,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 20],Var 6],Comb FuncCall ("FiniteMap","intersectFM_C'") [Var 1,Var 2,Var 16,Var 8],Comb FuncCall ("FiniteMap","intersectFM_C'") [Var 1,Var 2,Var 17,Var 9]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","glueVBal") [Var 1,Comb FuncCall ("FiniteMap","intersectFM_C'") [Var 1,Var 2,Var 16,Var 8],Comb FuncCall ("FiniteMap","intersectFM_C'") [Var 1,Var 2,Var 17,Var 9]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])))))))])])),Func ("FiniteMap","intersectFM_C'._#selFP3#elt1'") 1 Private (FuncType (TCons ("Prelude","Maybe") [TVar 1000]) (TVar 1000)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Just") [2]) (Var 2)])),Func ("FiniteMap","foldFM") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2)))) (FuncType (TVar 2) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TVar 2)))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","FM") [4,5]) (Comb FuncCall ("FiniteMap","foldFM'") [Var 4,Var 1,Var 2,Var 5])])),Func ("FiniteMap","foldFM'") 4 Private (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 3)))) (FuncType (TVar 3) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TVar 3))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Var 3),Branch (Pattern ("FiniteMap","Branch") [5,6,7,8,9]) (Comb FuncCall ("FiniteMap","foldFM'") [Var 1,Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 5],Var 6],Comb FuncCall ("FiniteMap","foldFM'") [Var 1,Var 2,Var 3,Var 9]],Var 8])])),Func ("FiniteMap","mapFM") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 2]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Comb ConsCall ("FiniteMap","FM") [Var 3,Comb FuncCall ("FiniteMap","mapFM'") [Var 3,Var 1,Var 4]])])),Func ("FiniteMap","mapFM'") 3 Private (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 1,TVar 2]) (TCons ("FiniteMap","FiniteMap") [TVar 1,TVar 3])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Comb ConsCall ("FiniteMap","Branch") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 4],Var 5],Var 6,Comb FuncCall ("FiniteMap","mapFM'") [Var 1,Var 2,Var 7],Comb FuncCall ("FiniteMap","mapFM'") [Var 1,Var 2,Var 8]])])),Func ("FiniteMap","filterFM") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Comb ConsCall ("FiniteMap","FM") [Var 3,Comb FuncCall ("FiniteMap","filterFM'") [Var 3,Var 1,Var 4]])])),Func ("FiniteMap","filterFM'") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 4],Var 5]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkVBalBranch") [Var 1,Var 4,Var 5,Comb FuncCall ("FiniteMap","filterFM'") [Var 1,Var 2,Var 7],Comb FuncCall ("FiniteMap","filterFM'") [Var 1,Var 2,Var 8]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","glueVBal") [Var 1,Comb FuncCall ("FiniteMap","filterFM'") [Var 1,Var 2,Var 7],Comb FuncCall ("FiniteMap","filterFM'") [Var 1,Var 2,Var 8]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("FiniteMap","sizeFM") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Lit (Intc  0)),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Var 6)])])),Func ("FiniteMap","sizeFM'") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Lit (Intc  0)),Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 4)])),Func ("FiniteMap","eqFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Comb FuncCall ("FiniteMap","sizeFM") [Var 1],Comb FuncCall ("FiniteMap","sizeFM") [Var 2]],Comb FuncCall ("Prelude","==") [Comb FuncCall ("FiniteMap","fmToList") [Var 1],Comb FuncCall ("FiniteMap","fmToList") [Var 2]]])),Func ("FiniteMap","isEmptyFM") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Comb FuncCall ("FiniteMap","sizeFM") [Var 1],Lit (Intc  0)])),Func ("FiniteMap","elemFM") 2 Public (FuncType (TVar 0) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Maybe","isJust") [Comb FuncCall ("FiniteMap","lookupFM") [Var 2,Var 1]])),Func ("FiniteMap","lookupFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [3,4]) (Comb FuncCall ("FiniteMap","lookupFM'") [Var 3,Var 4,Var 2])])),Func ("FiniteMap","lookupFM'") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","lookupFM'") [Var 1,Var 7,Var 3]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","Just") [Var 5]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","lookupFM'") [Var 1,Var 8,Var 3])])])])),Func ("FiniteMap","lookupWithDefaultFM") 3 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 1) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("FiniteMap","lookupFM") [Var 1,Var 3]) [Branch (Pattern ("Prelude","Nothing") []) (Var 2),Branch (Pattern ("Prelude","Just") [4]) (Var 4)])),Func ("FiniteMap","keyOrder") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") [])))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [2,3]) (Var 2)])),Func ("FiniteMap","minFM") 0 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("FiniteMap","minFM.min.215") [],Comb (FuncPartCall 1) ("FiniteMap","tree") []])),Func ("FiniteMap","minFM.min.215") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 5,Comb ConsCall ("FiniteMap","EmptyFM") []]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","(,)") [Var 2,Var 3]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","minFM.min.215") [Var 5]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("FiniteMap","maxFM") 0 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("FiniteMap","maxFM.max.223") [],Comb (FuncPartCall 1) ("FiniteMap","tree") []])),Func ("FiniteMap","maxFM.max.223") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 6,Comb ConsCall ("FiniteMap","EmptyFM") []]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","(,)") [Var 2,Var 3]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","maxFM.max.223") [Var 6]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("FiniteMap","fmToList") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [1] (Comb FuncCall ("FiniteMap","foldFM") [Comb (FuncPartCall 3) ("FiniteMap","fmToList._#lambda8") [],Comb ConsCall ("Prelude","[]") [],Var 1])),Func ("FiniteMap","fmToList._#lambda8") 3 Private (FuncType (TVar 1237) (FuncType (TVar 1238) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1237,TVar 1238]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1237,TVar 1238]])))) (Rule [1,2,3] (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Var 1,Var 2],Var 3])),Func ("FiniteMap","keysFM") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Comb FuncCall ("FiniteMap","foldFM") [Comb (FuncPartCall 3) ("FiniteMap","keysFM._#lambda9") [],Comb ConsCall ("Prelude","[]") [],Var 1])),Func ("FiniteMap","keysFM._#lambda9") 3 Private (FuncType (TVar 1356) (FuncType (TVar 1353) (FuncType (TCons ("Prelude","[]") [TVar 1356]) (TCons ("Prelude","[]") [TVar 1356])))) (Rule [1,2,3] (Comb ConsCall ("Prelude",":") [Var 1,Var 3])),Func ("FiniteMap","eltsFM") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TVar 1])) (Rule [1] (Comb FuncCall ("FiniteMap","foldFM") [Comb (FuncPartCall 3) ("FiniteMap","eltsFM._#lambda10") [],Comb ConsCall ("Prelude","[]") [],Var 1])),Func ("FiniteMap","eltsFM._#lambda10") 3 Private (FuncType (TVar 1363) (FuncType (TVar 1367) (FuncType (TCons ("Prelude","[]") [TVar 1367]) (TCons ("Prelude","[]") [TVar 1367])))) (Rule [1,2,3] (Comb ConsCall ("Prelude",":") [Var 2,Var 3])),Func ("FiniteMap","fmToListPreOrder") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [2,3]) (Comb FuncCall ("FiniteMap","fmToListPreOrder.pre.243") [Var 3,Comb ConsCall ("Prelude","[]") []])])),Func ("FiniteMap","fmToListPreOrder.pre.243") 2 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Var 2),Branch (Pattern ("FiniteMap","Branch") [3,4,5,6,7]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Var 3,Var 4],Comb FuncCall ("FiniteMap","fmToListPreOrder.pre.243") [Var 6,Comb FuncCall ("FiniteMap","fmToListPreOrder.pre.243") [Var 7,Var 2]]])])),Func ("FiniteMap","fmSortBy") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("FiniteMap","keysFM") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FiniteMap","listToFM") [Var 1],Comb FuncCall ("Prelude","zip") [Var 2,Comb FuncCall ("Prelude","repeat") [Comb ConsCall ("Prelude","()") []]]]])),Func ("FiniteMap","tree") 1 Private (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","FM") [2,3]) (Var 3)])),Func ("FiniteMap","toGT") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 3]],Comb FuncCall ("Prelude","/=") [Var 2,Var 3]])),Func ("FiniteMap","isEmptyFM'") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Comb FuncCall ("FiniteMap","sizeFM'") [Var 1],Lit (Intc  0)])),Func ("FiniteMap","sIZE_RATIO") 0 Private (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  5))),Func ("FiniteMap","mkBranch") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))))) (Rule [1,2,3,4,5] (Let [(6,Comb FuncCall ("FiniteMap","sizeFM'") [Var 4])] (Let [(7,Comb FuncCall ("FiniteMap","sizeFM'") [Var 5])] (Comb ConsCall ("FiniteMap","Branch") [Var 2,Var 3,Comb FuncCall ("FiniteMap","mkBranch.unbox.264") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","+") [Lit (Intc  1),Var 6],Var 7]],Var 4,Var 5])))),Func ("FiniteMap","mkBranch.unbox.264") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Var 1)),Func ("FiniteMap","mkBalBranch") 4 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("FiniteMap","sizeFM'") [Var 3])] (Let [(6,Comb FuncCall ("FiniteMap","sizeFM'") [Var 4])] (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("Prelude","+") [Var 5,Var 6],Lit (Intc  2)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  1),Var 1,Var 2,Var 3,Var 4]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 6,Comb FuncCall ("Prelude","*") [Comb FuncCall ("FiniteMap","sIZE_RATIO") [],Var 5]]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Var 4) [Branch (Pattern ("FiniteMap","Branch") [7,8,9,10,11]) (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("FiniteMap","sizeFM'") [Var 10],Comb FuncCall ("Prelude","*") [Lit (Intc  2),Comb FuncCall ("FiniteMap","sizeFM'") [Var 11]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch.single_L.273") [Var 2,Var 1,Var 3,Var 4]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","mkBalBranch.double_L.273") [Var 2,Var 1,Var 3,Var 4])]),Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb FuncCall ("Prelude","failed") [])]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 5,Comb FuncCall ("Prelude","*") [Comb FuncCall ("FiniteMap","sIZE_RATIO") [],Var 6]]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Var 3) [Branch (Pattern ("FiniteMap","Branch") [12,13,14,15,16]) (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("FiniteMap","sizeFM'") [Var 16],Comb FuncCall ("Prelude","*") [Lit (Intc  2),Comb FuncCall ("FiniteMap","sizeFM'") [Var 15]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch.single_R.273") [Var 2,Var 1,Var 3,Var 4]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","mkBalBranch.double_R.273") [Var 2,Var 1,Var 3,Var 4])]),Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb FuncCall ("Prelude","failed") [])]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  2),Var 1,Var 2,Var 3,Var 4]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])))),Func ("FiniteMap","mkBalBranch.single_L.273") 4 Private (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("FiniteMap","Branch") [5,6,7,8,9]) (Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  3),Var 5,Var 6,Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  4),Var 2,Var 1,Var 3,Var 8],Var 9])])),Func ("FiniteMap","mkBalBranch.double_L.273") 4 Private (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("FiniteMap","Branch") [5,6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("FiniteMap","Branch") [10,11,12,13,14]) (Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  5),Var 10,Var 11,Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  6),Var 2,Var 1,Var 3,Var 13],Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  7),Var 5,Var 6,Var 14,Var 9]])])])),Func ("FiniteMap","mkBalBranch.single_R.273") 4 Private (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]))))) (Rule [1,2,3,4] (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","Branch") [5,6,7,8,9]) (Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  8),Var 5,Var 6,Var 8,Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  9),Var 2,Var 1,Var 9,Var 4]])])),Func ("FiniteMap","mkBalBranch.double_R.273") 4 Private (FuncType (TVar 170) (FuncType (TVar 169) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]) (TCons ("FiniteMap","FiniteMap") [TVar 169,TVar 170]))))) (Rule [1,2,3,4] (Case  Flex (Var 3) [Branch (Pattern ("FiniteMap","Branch") [5,6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("FiniteMap","Branch") [10,11,12,13,14]) (Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  10),Var 10,Var 11,Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  11),Var 5,Var 6,Var 8,Var 13],Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  12),Var 2,Var 1,Var 14,Var 4]])])])),Func ("FiniteMap","mkVBalBranch") 5 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 4) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb FuncCall ("FiniteMap","addToFM'") [Var 1,Var 5,Var 2,Var 3]),Branch (Pattern ("FiniteMap","Branch") [6,7,8,9,10]) (Case  Flex (Var 5) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb FuncCall ("FiniteMap","addToFM'") [Var 1,Comb ConsCall ("FiniteMap","Branch") [Var 6,Var 7,Var 8,Var 9,Var 10],Var 2,Var 3]),Branch (Pattern ("FiniteMap","Branch") [11,12,13,14,15]) (Let [(16,Comb ConsCall ("FiniteMap","Branch") [Var 6,Var 7,Var 8,Var 9,Var 10])] (Let [(17,Comb ConsCall ("FiniteMap","Branch") [Var 11,Var 12,Var 13,Var 14,Var 15])] (Let [(18,Comb FuncCall ("FiniteMap","sizeFM'") [Var 16])] (Let [(19,Comb FuncCall ("FiniteMap","sizeFM'") [Var 17])] (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("Prelude","*") [Comb FuncCall ("FiniteMap","sIZE_RATIO") [],Var 18],Var 19]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 11,Var 12,Comb FuncCall ("FiniteMap","mkVBalBranch") [Var 1,Var 2,Var 3,Var 16,Var 14],Var 15]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("Prelude","*") [Comb FuncCall ("FiniteMap","sIZE_RATIO") [],Var 19],Var 18]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 6,Var 7,Var 9,Comb FuncCall ("FiniteMap","mkVBalBranch") [Var 1,Var 2,Var 3,Var 10,Var 17]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBranch") [Lit (Intc  13),Var 2,Var 3,Var 16,Var 17]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])))))])])),Func ("FiniteMap","glueBal") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("FiniteMap","isEmptyFM'") [Var 2]) [Branch (Pattern ("Prelude","True") []) (Var 3),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("FiniteMap","isEmptyFM'") [Var 3]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Let [(4,Comb FuncCall ("FiniteMap","findMax") [Var 2])] (Let [(5,Comb FuncCall ("FiniteMap","glueBal._#selFP8#mid_key1") [Var 4])] (Let [(6,Comb FuncCall ("FiniteMap","glueBal._#selFP9#mid_elt1") [Var 4])] (Let [(7,Comb FuncCall ("FiniteMap","findMin") [Var 3])] (Let [(8,Comb FuncCall ("FiniteMap","glueBal._#selFP6#mid_key2") [Var 7])] (Let [(9,Comb FuncCall ("FiniteMap","glueBal._#selFP7#mid_elt2") [Var 7])] (Case  Rigid (Comb FuncCall ("Prelude",">") [Comb FuncCall ("FiniteMap","sizeFM'") [Var 3],Comb FuncCall ("FiniteMap","sizeFM'") [Var 2]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 8,Var 9,Var 2,Comb FuncCall ("FiniteMap","deleteMin") [Var 1,Var 3]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 5,Var 6,Comb FuncCall ("FiniteMap","deleteMax") [Var 1,Var 2],Var 3])])))))))])])),Func ("FiniteMap","glueBal._#selFP8#mid_key1") 1 Private (FuncType (TCons ("Prelude","(,)") [TVar 439,TVar 440]) (TVar 439)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("FiniteMap","glueBal._#selFP9#mid_elt1") 1 Private (FuncType (TCons ("Prelude","(,)") [TVar 439,TVar 440]) (TVar 440)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("FiniteMap","glueBal._#selFP6#mid_key2") 1 Private (FuncType (TCons ("Prelude","(,)") [TVar 439,TVar 440]) (TVar 439)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("FiniteMap","glueBal._#selFP7#mid_elt2") 1 Private (FuncType (TCons ("Prelude","(,)") [TVar 439,TVar 440]) (TVar 440)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("FiniteMap","glueVBal") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("FiniteMap","isEmptyFM'") [Var 2]) [Branch (Pattern ("Prelude","True") []) (Var 3),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("FiniteMap","isEmptyFM'") [Var 3]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Let [(4,Var 2)] (Let [(5,Comb FuncCall ("FiniteMap","glueVBal._#selFP16#key_l") [Var 4])] (Let [(6,Comb FuncCall ("FiniteMap","glueVBal._#selFP17#elt_l") [Var 4])] (Let [(7,Comb FuncCall ("FiniteMap","glueVBal._#selFP18#fm_ll") [Var 4])] (Let [(8,Comb FuncCall ("FiniteMap","glueVBal._#selFP19#fm_lr") [Var 4])] (Let [(9,Var 3)] (Let [(10,Comb FuncCall ("FiniteMap","glueVBal._#selFP12#key_r") [Var 9])] (Let [(11,Comb FuncCall ("FiniteMap","glueVBal._#selFP13#elt_r") [Var 9])] (Let [(12,Comb FuncCall ("FiniteMap","glueVBal._#selFP14#fm_rl") [Var 9])] (Let [(13,Comb FuncCall ("FiniteMap","glueVBal._#selFP15#fm_rr") [Var 9])] (Let [(14,Comb FuncCall ("FiniteMap","sizeFM'") [Var 2])] (Let [(15,Comb FuncCall ("FiniteMap","sizeFM'") [Var 3])] (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("Prelude","*") [Comb FuncCall ("FiniteMap","sIZE_RATIO") [],Var 14],Var 15]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 10,Var 11,Comb FuncCall ("FiniteMap","glueVBal") [Var 1,Var 2,Var 12],Var 13]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("Prelude","*") [Comb FuncCall ("FiniteMap","sIZE_RATIO") [],Var 15],Var 14]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 5,Var 6,Var 7,Comb FuncCall ("FiniteMap","glueVBal") [Var 1,Var 8,Var 3]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","glueBal") [Var 1,Var 2,Var 3])])])))))))))))))])])),Func ("FiniteMap","glueVBal._#selFP16#key_l") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TVar 876)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 2)])),Func ("FiniteMap","glueVBal._#selFP17#elt_l") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TVar 877)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 3)])),Func ("FiniteMap","glueVBal._#selFP18#fm_ll") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 5)])),Func ("FiniteMap","glueVBal._#selFP19#fm_lr") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 6)])),Func ("FiniteMap","glueVBal._#selFP12#key_r") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TVar 876)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 2)])),Func ("FiniteMap","glueVBal._#selFP13#elt_r") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TVar 877)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 3)])),Func ("FiniteMap","glueVBal._#selFP14#fm_rl") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 5)])),Func ("FiniteMap","glueVBal._#selFP15#fm_rr") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877]) (TCons ("FiniteMap","FiniteMap") [TVar 876,TVar 877])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Var 6)])),Func ("FiniteMap","splitLT") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","splitLT") [Var 1,Var 7,Var 3]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Var 4]) [Branch (Pattern ("Prelude","True") []) (Var 7),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","mkVBalBranch") [Var 1,Var 4,Var 5,Var 7,Comb FuncCall ("FiniteMap","splitLT") [Var 1,Var 8,Var 3]])])])])),Func ("FiniteMap","splitGT") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("FiniteMap","EmptyFM") []),Branch (Pattern ("FiniteMap","Branch") [4,5,6,7,8]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("FiniteMap","mkVBalBranch") [Var 1,Var 4,Var 5,Comb FuncCall ("FiniteMap","splitGT") [Var 1,Var 7,Var 3],Var 8]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Var 4]) [Branch (Pattern ("Prelude","True") []) (Var 8),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("FiniteMap","splitGT") [Var 1,Var 8,Var 3])])])])),Func ("FiniteMap","findMin") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TVar 0,TVar 1])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Case  Flex (Var 5) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("Prelude","(,)") [Var 2,Var 3]),Branch (Pattern ("FiniteMap","Branch") [7,8,9,10,11]) (Comb FuncCall ("FiniteMap","findMin") [Comb ConsCall ("FiniteMap","Branch") [Var 7,Var 8,Var 9,Var 10,Var 11]])])])),Func ("FiniteMap","deleteMin") 2 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","Branch") [3,4,5,6,7]) (Case  Flex (Var 6) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Var 7),Branch (Pattern ("FiniteMap","Branch") [8,9,10,11,12]) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 3,Var 4,Comb FuncCall ("FiniteMap","deleteMin") [Var 1,Comb ConsCall ("FiniteMap","Branch") [Var 8,Var 9,Var 10,Var 11,Var 12]],Var 7])])])),Func ("FiniteMap","findMax") 1 Private (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TVar 0,TVar 1])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FiniteMap","Branch") [2,3,4,5,6]) (Case  Flex (Var 6) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Comb ConsCall ("Prelude","(,)") [Var 2,Var 3]),Branch (Pattern ("FiniteMap","Branch") [7,8,9,10,11]) (Comb FuncCall ("FiniteMap","findMax") [Comb ConsCall ("FiniteMap","Branch") [Var 7,Var 8,Var 9,Var 10,Var 11]])])])),Func ("FiniteMap","deleteMax") 2 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]) (TCons ("FiniteMap","FiniteMap") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("FiniteMap","Branch") [3,4,5,6,7]) (Case  Flex (Var 7) [Branch (Pattern ("FiniteMap","EmptyFM") []) (Var 6),Branch (Pattern ("FiniteMap","Branch") [8,9,10,11,12]) (Comb FuncCall ("FiniteMap","mkBalBranch") [Var 3,Var 4,Var 6,Comb FuncCall ("FiniteMap","deleteMax") [Var 1,Comb ConsCall ("FiniteMap","Branch") [Var 8,Var 9,Var 10,Var 11,Var 12]]])])])),Func ("FiniteMap","emptySet") 0 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []])) (Rule [] (Comb (FuncPartCall 1) ("FiniteMap","emptyFM") [])),Func ("FiniteMap","mkSet") 2 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FiniteMap","listToFM") [Var 1],Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("FiniteMap","mkSet._#lambda13") [],Var 2]])),Func ("FiniteMap","mkSet._#lambda13") 1 Private (FuncType (TVar 1421) (TCons ("Prelude","(,)") [TVar 1421,TCons ("Prelude","()") []])) (Rule [1] (Comb ConsCall ("Prelude","(,)") [Var 1,Comb ConsCall ("Prelude","()") []])),Func ("FiniteMap","isEmptySet") 0 Private (FuncType (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]) (TCons ("Prelude","Bool") [])) (Rule [] (Comb (FuncPartCall 1) ("FiniteMap","isEmptyFM") [])),Func ("FiniteMap","elementOf") 0 Private (FuncType (TVar 0) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]) (TCons ("Prelude","Bool") []))) (Rule [] (Comb (FuncPartCall 2) ("FiniteMap","elemFM") [])),Func ("FiniteMap","minusSet") 0 Private (FuncType (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]) (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]))) (Rule [] (Comb (FuncPartCall 2) ("FiniteMap","minusFM") [])),Func ("FiniteMap","setToList") 0 Private (FuncType (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ("FiniteMap","keysFM") [])),Func ("FiniteMap","union") 0 Private (FuncType (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]) (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]))) (Rule [] (Comb (FuncPartCall 2) ("FiniteMap","plusFM") []))] []
diff --git a/src/lib/Curry/Module/.curry/FiniteMap.fint b/src/lib/Curry/Module/.curry/FiniteMap.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FiniteMap.fint
@@ -0,0 +1,1 @@
+Prog "FiniteMap" ["Maybe","Prelude"] [TypeSyn ("FiniteMap","LeKey") Private [0] (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))),TypeSyn ("FiniteMap","FiniteSet") Private [0] (TCons ("FiniteMap","FM") [TVar 0,TCons ("Prelude","()") []]),Type ("FiniteMap","FM") Public [0,1] []] [Func ("FiniteMap","emptyFM") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("FiniteMap","FM") [TVar 0,TVar 1])) (Rule [] (Var 0)),Func ("FiniteMap","unitFM") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("FiniteMap","FM") [TVar 0,TVar 1])))) (Rule [] (Var 0)),Func ("FiniteMap","listToFM") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","addToFM") 3 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("FiniteMap","FM") [TVar 0,TVar 1])))) (Rule [] (Var 0)),Func ("FiniteMap","addListToFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","addToFM_C") 4 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TVar 1) (FuncType (TVar 0) (TCons ("FiniteMap","FM") [TVar 1,TVar 0]))))) (Rule [] (Var 0)),Func ("FiniteMap","addListToFM_C") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TVar 0]]) (TCons ("FiniteMap","FM") [TVar 1,TVar 0])))) (Rule [] (Var 0)),Func ("FiniteMap","delFromFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","delListFromFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","updFM") 3 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 1)) (TCons ("FiniteMap","FM") [TVar 0,TVar 1])))) (Rule [] (Var 0)),Func ("FiniteMap","splitFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TCons ("FiniteMap","FM") [TVar 0,TVar 1],TCons ("Prelude","(,)") [TVar 0,TVar 1]]]))) (Rule [] (Var 0)),Func ("FiniteMap","plusFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","plusFM_C") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("FiniteMap","FM") [TVar 1,TVar 0]) (FuncType (TCons ("FiniteMap","FM") [TVar 1,TVar 0]) (TCons ("FiniteMap","FM") [TVar 1,TVar 0])))) (Rule [] (Var 0)),Func ("FiniteMap","minusFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","intersectFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","intersectFM_C") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 1))) (FuncType (TCons ("FiniteMap","FM") [TVar 2,TVar 0]) (FuncType (TCons ("FiniteMap","FM") [TVar 2,TVar 0]) (TCons ("FiniteMap","FM") [TVar 2,TVar 1])))) (Rule [] (Var 0)),Func ("FiniteMap","foldFM") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 2)))) (FuncType (TVar 2) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TVar 2)))) (Rule [] (Var 0)),Func ("FiniteMap","mapFM") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 2]))) (Rule [] (Var 0)),Func ("FiniteMap","filterFM") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("FiniteMap","FM") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","sizeFM") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("FiniteMap","eqFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("FiniteMap","isEmptyFM") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("FiniteMap","elemFM") 2 Public (FuncType (TVar 0) (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("FiniteMap","lookupFM") 2 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1]))) (Rule [] (Var 0)),Func ("FiniteMap","lookupWithDefaultFM") 3 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 1) (FuncType (TVar 0) (TVar 1)))) (Rule [] (Var 0)),Func ("FiniteMap","keyOrder") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") [])))) (Rule [] (Var 0)),Func ("FiniteMap","minFM") 0 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Var 0)),Func ("FiniteMap","maxFM") 0 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Var 0)),Func ("FiniteMap","fmToList") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Var 0)),Func ("FiniteMap","keysFM") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("FiniteMap","eltsFM") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TVar 1])) (Rule [] (Var 0)),Func ("FiniteMap","fmToListPreOrder") 1 Public (FuncType (TCons ("FiniteMap","FM") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Var 0)),Func ("FiniteMap","fmSortBy") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/FiniteMap.uacy b/src/lib/Curry/Module/.curry/FiniteMap.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/FiniteMap.uacy
@@ -0,0 +1,78 @@
+CurryProg "FiniteMap"
+ ["Prelude","Maybe"]
+ [CTypeSyn ("FiniteMap","LeKey") Private [(0,"key")] (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (0,"key")) (CTCons ("Prelude","Bool") []))),
+  CType ("FiniteMap","FM") Public [(0,"key"),(1,"elt")] [CCons ("FiniteMap","FM") 2 Public [CTCons ("FiniteMap","LeKey") [CTVar (0,"key")],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]]],
+  CType ("FiniteMap","FiniteMap") Private [(0,"key"),(1,"elt")] [CCons ("FiniteMap","EmptyFM") 0 Private [],CCons ("FiniteMap","Branch") 5 Private [CTVar (0,"key"),CTVar (1,"elt"),CTCons ("Prelude","Int") [],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]]],
+  CTypeSyn ("FiniteMap","FiniteSet") Private [(0,"key")] (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTCons ("Prelude","()") []])]
+ [CFunc ("FiniteMap","addListToFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"elt")]]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key_elt_pairs"))))] []]),
+  CFunc ("FiniteMap","addListToFM'") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm"),CPVar (2,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (3,"_"),CPVar (4,"new")] (CVar (4,"new")))) (CVar (1,"fm"))) (CVar (2,"key_elt_pairs")))] []]),
+  CFunc ("FiniteMap","addListToFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"elt")) (CFuncType (CTVar (0,"elt")) (CTVar (0,"elt")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"key"),CTVar (0,"elt")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"key"),CTVar (0,"elt")]]) (CTCons ("FiniteMap","FM") [CTVar (1,"key"),CTVar (0,"elt")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")],CPVar (3,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM_C'")) (CVar (1,"le"))) (CVar (0,"combiner"))) (CVar (2,"fm"))) (CVar (3,"key_elt_pairs"))))] []]),
+  CFunc ("FiniteMap","addListToFM_C'") 4 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"combiner"),CPVar (2,"fm"),CPVar (3,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CSymbol ("FiniteMap","add"))) (CVar (2,"fm"))) (CVar (3,"key_elt_pairs")))] [CLocalFunc (CFunc ("FiniteMap","add") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (4,"fmap"),CPComb ("Prelude","(,)") [CPVar (5,"key"),CPVar (6,"elt")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (0,"le"))) (CVar (1,"combiner"))) (CVar (4,"fmap"))) (CVar (5,"key"))) (CVar (6,"elt")))] []]))]]),
+  CFunc ("FiniteMap","addToFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"elt")) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key"))) (CVar (3,"elt"))))] []]),
+  CFunc ("FiniteMap","addToFM'") 4 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm"),CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (4,"_"),CPVar (5,"new")] (CVar (5,"new")))) (CVar (1,"fm"))) (CVar (2,"key"))) (CVar (3,"elt")))] []]),
+  CFunc ("FiniteMap","addToFM_C") 4 Public (CFuncType (CFuncType (CTVar (0,"elt")) (CFuncType (CTVar (0,"elt")) (CTVar (0,"elt")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"key"),CTVar (0,"elt")]) (CFuncType (CTVar (1,"key")) (CFuncType (CTVar (0,"elt")) (CTCons ("FiniteMap","FM") [CTVar (1,"key"),CTVar (0,"elt")]))))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")],CPVar (3,"key"),CPVar (4,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (1,"le"))) (CVar (0,"combiner"))) (CVar (2,"fm"))) (CVar (3,"key"))) (CVar (4,"elt"))))] []]),
+  CFunc ("FiniteMap","addToFM_C'") 5 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","unitFM'")) (CVar (2,"key"))) (CVar (3,"elt")))] [],CRule [CPVar (4,"le"),CPVar (5,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"size"),CPVar (9,"fm_l"),CPVar (10,"fm_r")],CPVar (11,"new_key"),CPVar (12,"new_elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (4,"le")) (CVar (11,"new_key"))) (CVar (6,"key")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (4,"le"))) (CVar (5,"combiner"))) (CVar (9,"fm_l"))) (CVar (11,"new_key"))) (CVar (12,"new_elt")))) (CVar (10,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (11,"new_key"))) (CVar (6,"key")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (11,"new_key"))) (CApply (CApply (CVar (5,"combiner")) (CVar (7,"elt"))) (CVar (12,"new_elt")))) (CVar (8,"size"))) (CVar (9,"fm_l"))) (CVar (10,"fm_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CVar (9,"fm_l"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (4,"le"))) (CVar (5,"combiner"))) (CVar (10,"fm_r"))) (CVar (11,"new_key"))) (CVar (12,"new_elt"))))))] []]),
+  CFunc ("FiniteMap","delFromFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTVar (0,"key")) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"del_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"del_key"))))] []]),
+  CFunc ("FiniteMap","delFromFM'") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"del_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"del_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key"))) (CVar (4,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"del_key")))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"del_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueBal")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key"))) (CVar (4,"elt"))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"del_key"))))))] []]),
+  CFunc ("FiniteMap","delListFromFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"key")]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"keys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (0,"le")))) (CVar (1,"fm"))) (CVar (2,"keys"))))] []]),
+  CFunc ("FiniteMap","deleteMax") 2 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","Branch") [CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"fm_l"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CVar (4,"fm_l"))] [],CRule [CPVar (5,"le"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPVar (9,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_r"),CPVar (11,"elt_r"),CPVar (12,"s_r"),CPVar (13,"fm_rl"),CPVar (14,"fm_rr")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CVar (9,"fm_l"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMax")) (CVar (5,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (10,"key_r"))) (CVar (11,"elt_r"))) (CVar (12,"s_r"))) (CVar (13,"fm_rl"))) (CVar (14,"fm_rr")))))] []]),
+  CFunc ("FiniteMap","deleteMin") 2 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","Branch") [CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (4,"fm_r")]] [(CSymbol ("Prelude","success"),CVar (4,"fm_r"))] [],CRule [CPVar (5,"le"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPComb ("FiniteMap","Branch") [CPVar (9,"key_l"),CPVar (10,"elt_l"),CPVar (11,"s_l"),CPVar (12,"fm_ll"),CPVar (13,"fm_lr")],CPVar (14,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMin")) (CVar (5,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"key_l"))) (CVar (10,"elt_l"))) (CVar (11,"s_l"))) (CVar (12,"fm_ll"))) (CVar (13,"fm_lr"))))) (CVar (14,"fm_r")))] []]),
+  CFunc ("FiniteMap","elemFM") 2 Public (CFuncType (CTVar (0,"key")) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"_")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"fm")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Maybe","isJust")) (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (1,"fm"))) (CVar (0,"key"))))] []]),
+  CFunc ("FiniteMap","elementOf") 0 Private (CFuncType (CTVar (0,"key")) (CFuncType (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","elemFM"))] []]),
+  CFunc ("FiniteMap","eltsFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"_"),CTVar (1,"elt")]) (CTCons ("Prelude","[]") [CTVar (1,"elt")])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"_"),CPVar (2,"elt"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"elt"))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]),
+  CFunc ("FiniteMap","emptyFM") 1 Public (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"_")])) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CSymbol ("FiniteMap","EmptyFM")))] []]),
+  CFunc ("FiniteMap","emptySet") 0 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","emptyFM"))] []]),
+  CFunc ("FiniteMap","eqFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"fm_1"),CPVar (1,"fm_2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (0,"fm_1")))) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (1,"fm_2"))))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"fm_1")))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (1,"fm_2")))))] []]),
+  CFunc ("FiniteMap","filterFM") 2 Public (CFuncType (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"elt")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (1,"le"))) (CVar (0,"p"))) (CVar (2,"fm"))))] []]),
+  CFunc ("FiniteMap","filterFM'") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPVar (3,"p"),CPComb ("FiniteMap","Branch") [CPVar (4,"key"),CPVar (5,"elt"),CPVar (6,"_"),CPVar (7,"fm_l"),CPVar (8,"fm_r")]] [(CApply (CApply (CVar (3,"p")) (CVar (4,"key"))) (CVar (5,"elt")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (4,"key"))) (CVar (5,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (8,"fm_r")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (2,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (8,"fm_r"))))] []]),
+  CFunc ("FiniteMap","findMax") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"elt")])) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"_"),CPVar (3,"_"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CVar (1,"elt")))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_"),CPComb ("FiniteMap","Branch") [CPVar (8,"key_r"),CPVar (9,"elt_r"),CPVar (10,"s_r"),CPVar (11,"fm_rl"),CPVar (12,"fm_rr")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","findMax")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (8,"key_r"))) (CVar (9,"elt_r"))) (CVar (10,"s_r"))) (CVar (11,"fm_rl"))) (CVar (12,"fm_rr"))))] []]),
+  CFunc ("FiniteMap","findMin") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"elt")])) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CVar (1,"elt")))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_l"),CPVar (8,"elt_l"),CPVar (9,"s_l"),CPVar (10,"fm_ll"),CPVar (11,"fm_lr")],CPVar (12,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","findMin")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (7,"key_l"))) (CVar (8,"elt_l"))) (CVar (9,"s_l"))) (CVar (10,"fm_ll"))) (CVar (11,"fm_lr"))))] []]),
+  CFunc ("FiniteMap","fmSortBy") 2 Public (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"key")]) (CTCons ("Prelude","[]") [CTVar (0,"key")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","keysFM")) (CApply (CApply (CSymbol ("FiniteMap","listToFM")) (CVar (0,"p"))) (CApply (CApply (CSymbol ("Prelude","zip")) (CVar (1,"l"))) (CApply (CSymbol ("Prelude","repeat")) (CSymbol ("Prelude","()"))))))] []]),
+  CFunc ("FiniteMap","fmToList") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"elt")]])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"key"),CPVar (2,"elt"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"key"))) (CVar (2,"elt")))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]),
+  CFunc ("FiniteMap","fmToListPreOrder") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"elt")]])) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPVar (1,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (1,"fm"))) (CSymbol ("Prelude","[]")))] [CLocalFunc (CFunc ("FiniteMap","pre") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"xs")] [(CSymbol ("Prelude","success"),CVar (2,"xs"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (3,"k"),CPVar (4,"x"),CPVar (5,"_"),CPVar (6,"l"),CPVar (7,"r")],CPVar (8,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"k"))) (CVar (4,"x")))) (CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (6,"l"))) (CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (7,"r"))) (CVar (8,"xs")))))] []]))]]),
+  CFunc ("FiniteMap","foldFM") 3 Public (CFuncType (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"elt")) (CFuncType (CTVar (2,"a")) (CTVar (2,"a"))))) (CFuncType (CTVar (2,"a")) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CTVar (2,"a"))))) (CRules CFlex [CRule [CPVar (0,"k"),CPVar (1,"z"),CPComb ("FiniteMap","FM") [CPVar (2,"le"),CPVar (3,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (2,"le"))) (CVar (0,"k"))) (CVar (1,"z"))) (CVar (3,"fm")))] []]),
+  CFunc ("FiniteMap","foldFM'") 4 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"z"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CVar (2,"z"))] [],CRule [CPVar (3,"le"),CPVar (4,"k"),CPVar (5,"z"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPVar (9,"fm_l"),CPVar (10,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (3,"le"))) (CVar (4,"k"))) (CApply (CApply (CApply (CVar (4,"k")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (3,"le"))) (CVar (4,"k"))) (CVar (5,"z"))) (CVar (10,"fm_r"))))) (CVar (9,"fm_l")))] []]),
+  CFunc ("FiniteMap","glueBal") 3 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm1"),CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (1,"fm1")))) (CVar (2,"fm2"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (2,"fm2")))) (CVar (1,"fm1"))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"mid_key1"),CPVar (4,"mid_elt1")]) (CApply (CSymbol ("FiniteMap","findMax")) (CVar (1,"fm1"))) [],CLocalPat (CPComb ("Prelude","(,)") [CPVar (5,"mid_key2"),CPVar (6,"mid_elt2")]) (CApply (CSymbol ("FiniteMap","findMin")) (CVar (2,"fm2"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm2")))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (1,"fm1"))))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (5,"mid_key2"))) (CVar (6,"mid_elt2"))) (CVar (1,"fm1"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMin")) (CVar (0,"le"))) (CVar (2,"fm2"))))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"mid_key1"))) (CVar (4,"mid_elt1"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMax")) (CVar (0,"le"))) (CVar (1,"fm1")))) (CVar (2,"fm2")))))))] []]),
+  CFunc ("FiniteMap","glueVBal") 3 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm_l"),CPVar (2,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (1,"fm_l")))) (CVar (2,"fm_r"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (2,"fm_r")))) (CVar (1,"fm_l"))) (CLetDecl [CLocalPat (CPComb ("FiniteMap","Branch") [CPVar (3,"key_l"),CPVar (4,"elt_l"),CPVar (5,"_"),CPVar (6,"fm_ll"),CPVar (7,"fm_lr")]) (CVar (1,"fm_l")) [],CLocalPat (CPComb ("FiniteMap","Branch") [CPVar (8,"key_r"),CPVar (9,"elt_r"),CPVar (10,"_"),CPVar (11,"fm_rl"),CPVar (12,"fm_rr")]) (CVar (2,"fm_r")) [],CLocalPat (CPVar (13,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (1,"fm_l"))) [],CLocalPat (CPVar (14,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm_r"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (13,"size_l")))) (CVar (14,"size_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (8,"key_r"))) (CVar (9,"elt_r"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (0,"le"))) (CVar (1,"fm_l"))) (CVar (11,"fm_rl")))) (CVar (12,"fm_rr")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (14,"size_r")))) (CVar (13,"size_l")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key_l"))) (CVar (4,"elt_l"))) (CVar (6,"fm_ll"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (0,"le"))) (CVar (7,"fm_lr"))) (CVar (2,"fm_r"))))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueBal")) (CVar (0,"le"))) (CVar (1,"fm_l"))) (CVar (2,"fm_r"))))))))] []]),
+  CFunc ("FiniteMap","intersectFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]),
+  CFunc ("FiniteMap","intersectFM'") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm1"),CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (3,"_"),CPVar (4,"right")] (CVar (4,"right")))) (CVar (1,"fm1"))) (CVar (2,"fm2")))] []]),
+  CFunc ("FiniteMap","intersectFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"elt")) (CFuncType (CTVar (0,"elt")) (CTVar (1,"elt2")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (2,"key"),CTVar (0,"elt")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (2,"key"),CTVar (0,"elt")]) (CTCons ("FiniteMap","FM") [CTVar (2,"key"),CTVar (1,"elt2")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le1"),CPVar (2,"fm1")],CPComb ("FiniteMap","FM") [CPVar (3,"_"),CPVar (4,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le1"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (1,"le1"))) (CVar (0,"combiner"))) (CVar (2,"fm1"))) (CVar (4,"fm2"))))] []]),
+  CFunc ("FiniteMap","intersectFM_C'") 4 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (3,"_"),CPVar (4,"_"),CPComb ("FiniteMap","EmptyFM") [],CPComb ("FiniteMap","Branch") [CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_"),CPVar (8,"_"),CPVar (9,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (10,"le"),CPVar (11,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (12,"split_key1"),CPVar (13,"elt1"),CPVar (14,"s1"),CPVar (15,"left1"),CPVar (16,"right1")],CPComb ("FiniteMap","Branch") [CPVar (17,"split_key"),CPVar (18,"elt2"),CPVar (19,"_"),CPVar (20,"left"),CPVar (21,"right")]] [(CApply (CSymbol ("Maybe","isJust")) (CVar (25,"maybe_elt1")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (10,"le"))) (CVar (17,"split_key"))) (CApply (CApply (CVar (11,"combiner")) (CVar (26,"elt1'"))) (CVar (18,"elt2")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (10,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right"))))] [CLocalPat (CPVar (22,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (12,"split_key1"))) (CVar (13,"elt1"))) (CVar (14,"s1"))) (CVar (15,"left1"))) (CVar (16,"right1"))) [],CLocalPat (CPVar (23,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (24,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (25,"maybe_elt1")) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPComb ("Prelude","Just") [CPVar (26,"elt1'")]) (CVar (25,"maybe_elt1")) []]]),
+  CFunc ("FiniteMap","isEmptyFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (0,"fm")))) (CLit (CIntc 0)))] []]),
+  CFunc ("FiniteMap","isEmptyFM'") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (0,"fm")))) (CLit (CIntc 0)))] []]),
+  CFunc ("FiniteMap","isEmptySet") 0 Private (CFuncType (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","isEmptyFM"))] []]),
+  CFunc ("FiniteMap","keyOrder") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"_")]) (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (0,"key")) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"lt"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"lt"))] []]),
+  CFunc ("FiniteMap","keysFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"_")]) (CTCons ("Prelude","[]") [CTVar (0,"key")])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"key"),CPVar (2,"_"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"key"))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]),
+  CFunc ("FiniteMap","listToFM") 1 Public (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"elt")]]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","addListToFM")) (CApply (CSymbol ("FiniteMap","emptyFM")) (CVar (0,"le"))))] []]),
+  CFunc ("FiniteMap","lookupFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTVar (0,"key")) (CTCons ("Prelude","Maybe") [CTVar (1,"elt")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key")))] []]),
+  CFunc ("FiniteMap","lookupFM'") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"key_to_find")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"key_to_find"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"key_to_find")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"key_to_find"))) (CVar (3,"key")))) (CApply (CSymbol ("Prelude","Just")) (CVar (4,"elt")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"key_to_find")))))] []]),
+  CFunc ("FiniteMap","lookupWithDefaultFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTVar (1,"elt")) (CFuncType (CTVar (0,"key")) (CTVar (1,"elt"))))) (CRules CFlex [CRule [CPVar (0,"fm"),CPVar (1,"deflt"),CPVar (2,"key")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (0,"fm"))) (CVar (2,"key"))) [CBranch (CPComb ("Prelude","Nothing") []) (CVar (1,"deflt")),CBranch (CPComb ("Prelude","Just") [CPVar (3,"elt")]) (CVar (3,"elt"))])] []]),
+  CFunc ("FiniteMap","mapFM") 2 Public (CFuncType (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"elt1")) (CTVar (2,"elt2")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt1")]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (2,"elt2")]))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (1,"le"))) (CVar (0,"f"))) (CVar (2,"fm"))))] []]),
+  CFunc ("FiniteMap","mapFM'") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPVar (3,"f"),CPComb ("FiniteMap","Branch") [CPVar (4,"key"),CPVar (5,"elt"),CPVar (6,"size"),CPVar (7,"fm_l"),CPVar (8,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"key"))) (CApply (CApply (CVar (3,"f")) (CVar (4,"key"))) (CVar (5,"elt")))) (CVar (6,"size"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (2,"le"))) (CVar (3,"f"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (2,"le"))) (CVar (3,"f"))) (CVar (8,"fm_r"))))] []]),
+  CFunc ("FiniteMap","maxFM") 0 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FiniteMap","max"))) (CSymbol ("FiniteMap","tree")))] [CLocalFunc (CFunc ("FiniteMap","max") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"k"),CPVar (1,"x"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"r")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"r"))) (CSymbol ("FiniteMap","EmptyFM")),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"x")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("FiniteMap","max")) (CVar (4,"r")))] []]))]]),
+  CFunc ("FiniteMap","minFM") 0 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FiniteMap","min"))) (CSymbol ("FiniteMap","tree")))] [CLocalFunc (CFunc ("FiniteMap","min") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"k"),CPVar (1,"x"),CPVar (2,"_"),CPVar (3,"l"),CPVar (4,"_")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"l"))) (CSymbol ("FiniteMap","EmptyFM")),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"x")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("FiniteMap","min")) (CVar (3,"l")))] []]))]]),
+  CFunc ("FiniteMap","minusFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]),
+  CFunc ("FiniteMap","minusFM'") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"_"),CPComb ("FiniteMap","Branch") [CPVar (3,"split_key1"),CPVar (4,"elt1"),CPVar (5,"s1"),CPVar (6,"left1"),CPVar (7,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (3,"split_key1"))) (CVar (4,"elt1"))) (CVar (5,"s1"))) (CVar (6,"left1"))) (CVar (7,"right1")))] [],CRule [CPVar (8,"le"),CPComb ("FiniteMap","Branch") [CPVar (9,"split_key1"),CPVar (10,"elt1"),CPVar (11,"s1"),CPVar (12,"left1"),CPVar (13,"right1")],CPComb ("FiniteMap","Branch") [CPVar (14,"split_key"),CPVar (15,"_"),CPVar (16,"_"),CPVar (17,"left"),CPVar (18,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (8,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (8,"le"))) (CVar (20,"lts"))) (CVar (17,"left")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (8,"le"))) (CVar (21,"gts"))) (CVar (18,"right"))))] [CLocalPat (CPVar (19,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"split_key1"))) (CVar (10,"elt1"))) (CVar (11,"s1"))) (CVar (12,"left1"))) (CVar (13,"right1"))) [],CLocalPat (CPVar (20,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) [],CLocalPat (CPVar (21,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) []]]),
+  CFunc ("FiniteMap","minusSet") 0 Private (CFuncType (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]) (CFuncType (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]) (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","minusFM"))] []]),
+  CFunc ("FiniteMap","mkBalBranch") 4 Private (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"elt")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]))))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"fm_L"),CPVar (3,"fm_R")] [(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"size_l"))) (CVar (5,"size_r")))) (CLit (CIntc 2)),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 1))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (5,"size_r"))) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (4,"size_l"))),CCase (CVar (3,"fm_R")) [CBranch (CPComb ("FiniteMap","Branch") [CPVar (6,"_"),CPVar (7,"_"),CPVar (8,"_"),CPVar (9,"fm_rl"),CPVar (10,"fm_rr")]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (9,"fm_rl")))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (10,"fm_rr")))))) (CApply (CApply (CSymbol ("FiniteMap","single_L")) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))) (CApply (CApply (CSymbol ("FiniteMap","double_L")) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))))]),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (4,"size_l"))) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (5,"size_r"))),CCase (CVar (2,"fm_L")) [CBranch (CPComb ("FiniteMap","Branch") [CPVar (11,"_"),CPVar (12,"_"),CPVar (13,"_"),CPVar (14,"fm_ll"),CPVar (15,"fm_lr")]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (15,"fm_lr")))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (14,"fm_ll")))))) (CApply (CApply (CSymbol ("FiniteMap","single_R")) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))) (CApply (CApply (CSymbol ("FiniteMap","double_R")) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))))]),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 2))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))] [CLocalPat (CPVar (4,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm_L"))) [],CLocalPat (CPVar (5,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (3,"fm_R"))) [],CLocalFunc (CFunc ("FiniteMap","single_L") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (6,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_r"),CPVar (8,"elt_r"),CPVar (9,"_"),CPVar (10,"fm_rl"),CPVar (11,"fm_rr")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 3))) (CVar (7,"key_r"))) (CVar (8,"elt_r"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 4))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (6,"fm_l"))) (CVar (10,"fm_rl")))) (CVar (11,"fm_rr")))] []])),CLocalFunc (CFunc ("FiniteMap","double_L") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (6,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_r"),CPVar (8,"elt_r"),CPVar (9,"_"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_rl"),CPVar (11,"elt_rl"),CPVar (12,"_"),CPVar (13,"fm_rll"),CPVar (14,"fm_rlr")],CPVar (15,"fm_rr")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 5))) (CVar (10,"key_rl"))) (CVar (11,"elt_rl"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 6))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (6,"fm_l"))) (CVar (13,"fm_rll")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 7))) (CVar (7,"key_r"))) (CVar (8,"elt_r"))) (CVar (14,"fm_rlr"))) (CVar (15,"fm_rr"))))] []])),CLocalFunc (CFunc ("FiniteMap","single_R") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (6,"key_l"),CPVar (7,"elt_l"),CPVar (8,"_"),CPVar (9,"fm_ll"),CPVar (10,"fm_lr")],CPVar (11,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 8))) (CVar (6,"key_l"))) (CVar (7,"elt_l"))) (CVar (9,"fm_ll"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 9))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (10,"fm_lr"))) (CVar (11,"fm_r"))))] []])),CLocalFunc (CFunc ("FiniteMap","double_R") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (6,"key_l"),CPVar (7,"elt_l"),CPVar (8,"_"),CPVar (9,"fm_ll"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_lr"),CPVar (11,"elt_lr"),CPVar (12,"_"),CPVar (13,"fm_lrl"),CPVar (14,"fm_lrr")]],CPVar (15,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 10))) (CVar (10,"key_lr"))) (CVar (11,"elt_lr"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 11))) (CVar (6,"key_l"))) (CVar (7,"elt_l"))) (CVar (9,"fm_ll"))) (CVar (13,"fm_lrl")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 12))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (14,"fm_lrr"))) (CVar (15,"fm_r"))))] []]))]]),
+  CFunc ("FiniteMap","mkBranch") 5 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"elt")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")])))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"key"),CPVar (2,"elt"),CPVar (3,"fm_l"),CPVar (4,"fm_r")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (7,"result")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (1,"key"))) (CVar (2,"elt"))) (CApply (CSymbol ("FiniteMap","unbox")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CLit (CIntc 1))) (CVar (5,"left_size")))) (CVar (6,"right_size"))))) (CVar (3,"fm_l"))) (CVar (4,"fm_r"))) []] (CVar (7,"result")))] [CLocalPat (CPVar (5,"left_size")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (3,"fm_l"))) [],CLocalPat (CPVar (6,"right_size")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (4,"fm_r"))) [],CLocalFunc (CFunc ("FiniteMap","unbox") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (7,"x")] [(CSymbol ("Prelude","success"),CVar (7,"x"))] []]))]]),
+  CFunc ("FiniteMap","mkSet") 2 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"key")]) (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","listToFM")) (CVar (0,"le"))) (CListComp (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (2,"x"))) (CSymbol ("Prelude","()"))) [CSPat (CPVar (2,"x")) (CVar (1,"xs"))]))] []]),
+  CFunc ("FiniteMap","mkVBalBranch") 5 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"elt")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")])))))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"key"),CPVar (2,"elt"),CPComb ("FiniteMap","EmptyFM") [],CPVar (3,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (0,"le"))) (CVar (3,"fm_r"))) (CVar (1,"key"))) (CVar (2,"elt")))] [],CRule [CPVar (4,"le"),CPVar (5,"key"),CPVar (6,"elt"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_l"),CPVar (8,"elt_l"),CPVar (9,"s_l"),CPVar (10,"fm_ll"),CPVar (11,"fm_lr")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (4,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (7,"key_l"))) (CVar (8,"elt_l"))) (CVar (9,"s_l"))) (CVar (10,"fm_ll"))) (CVar (11,"fm_lr")))) (CVar (5,"key"))) (CVar (6,"elt")))] [],CRule [CPVar (12,"le"),CPVar (13,"key"),CPVar (14,"elt"),CPComb ("FiniteMap","Branch") [CPVar (15,"key_l"),CPVar (16,"elt_l"),CPVar (17,"s_l"),CPVar (18,"fm_ll"),CPVar (19,"fm_lr")],CPComb ("FiniteMap","Branch") [CPVar (20,"key_r"),CPVar (21,"elt_r"),CPVar (22,"s_r"),CPVar (23,"fm_rl"),CPVar (24,"fm_rr")]] [(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (27,"size_l")))) (CVar (28,"size_r")),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (20,"key_r"))) (CVar (21,"elt_r"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (12,"le"))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (25,"fm_l"))) (CVar (23,"fm_rl")))) (CVar (24,"fm_rr"))),(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (28,"size_r")))) (CVar (27,"size_l")),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (15,"key_l"))) (CVar (16,"elt_l"))) (CVar (18,"fm_ll"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (12,"le"))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (19,"fm_lr"))) (CVar (26,"fm_r")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 13))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (25,"fm_l"))) (CVar (26,"fm_r")))] [CLocalPat (CPVar (25,"fm_l")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (15,"key_l"))) (CVar (16,"elt_l"))) (CVar (17,"s_l"))) (CVar (18,"fm_ll"))) (CVar (19,"fm_lr"))) [],CLocalPat (CPVar (26,"fm_r")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (20,"key_r"))) (CVar (21,"elt_r"))) (CVar (22,"s_r"))) (CVar (23,"fm_rl"))) (CVar (24,"fm_rr"))) [],CLocalPat (CPVar (27,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (25,"fm_l"))) [],CLocalPat (CPVar (28,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (26,"fm_r"))) []]]),
+  CFunc ("FiniteMap","plusFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]),
+  CFunc ("FiniteMap","plusFM'") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"fm2")] [(CSymbol ("Prelude","success"),CVar (1,"fm2"))] [],CRule [CPVar (2,"_"),CPComb ("FiniteMap","Branch") [CPVar (3,"split_key1"),CPVar (4,"elt1"),CPVar (5,"s1"),CPVar (6,"left1"),CPVar (7,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (3,"split_key1"))) (CVar (4,"elt1"))) (CVar (5,"s1"))) (CVar (6,"left1"))) (CVar (7,"right1")))] [],CRule [CPVar (8,"le"),CPComb ("FiniteMap","Branch") [CPVar (9,"split_key1"),CPVar (10,"elt1"),CPVar (11,"s1"),CPVar (12,"left1"),CPVar (13,"right1")],CPComb ("FiniteMap","Branch") [CPVar (14,"split_key"),CPVar (15,"elt2"),CPVar (16,"_"),CPVar (17,"left"),CPVar (18,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (8,"le"))) (CVar (14,"split_key"))) (CVar (15,"elt2"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (8,"le"))) (CVar (20,"lts"))) (CVar (17,"left")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (8,"le"))) (CVar (21,"gts"))) (CVar (18,"right"))))] [CLocalPat (CPVar (19,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"split_key1"))) (CVar (10,"elt1"))) (CVar (11,"s1"))) (CVar (12,"left1"))) (CVar (13,"right1"))) [],CLocalPat (CPVar (20,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) [],CLocalPat (CPVar (21,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) []]]),
+  CFunc ("FiniteMap","plusFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"elt")) (CFuncType (CTVar (0,"elt")) (CTVar (0,"elt")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"key"),CTVar (0,"elt")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"key"),CTVar (0,"elt")]) (CTCons ("FiniteMap","FM") [CTVar (1,"key"),CTVar (0,"elt")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le1"),CPVar (2,"fm1")],CPComb ("FiniteMap","FM") [CPVar (3,"_"),CPVar (4,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le1"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (1,"le1"))) (CVar (0,"combiner"))) (CVar (2,"fm1"))) (CVar (4,"fm2"))))] []]),
+  CFunc ("FiniteMap","plusFM_C'") 4 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CVar (2,"fm2"))] [],CRule [CPVar (3,"_"),CPVar (4,"_"),CPComb ("FiniteMap","Branch") [CPVar (5,"split_key1"),CPVar (6,"elt1"),CPVar (7,"s1"),CPVar (8,"left1"),CPVar (9,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (5,"split_key1"))) (CVar (6,"elt1"))) (CVar (7,"s1"))) (CVar (8,"left1"))) (CVar (9,"right1")))] [],CRule [CPVar (10,"le"),CPVar (11,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (12,"split_key1"),CPVar (13,"elt1"),CPVar (14,"s1"),CPVar (15,"left1"),CPVar (16,"right1")],CPComb ("FiniteMap","Branch") [CPVar (17,"split_key"),CPVar (18,"elt2"),CPVar (19,"_"),CPVar (20,"left"),CPVar (21,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (10,"le"))) (CVar (17,"split_key"))) (CVar (25,"new_elt"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right"))))] [CLocalPat (CPVar (22,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (12,"split_key1"))) (CVar (13,"elt1"))) (CVar (14,"s1"))) (CVar (15,"left1"))) (CVar (16,"right1"))) [],CLocalPat (CPVar (23,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (24,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (25,"new_elt")) (CCase (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [CBranch (CPComb ("Prelude","Nothing") []) (CVar (18,"elt2")),CBranch (CPComb ("Prelude","Just") [CPVar (26,"elt1'")]) (CApply (CApply (CVar (11,"combiner")) (CVar (26,"elt1'"))) (CVar (18,"elt2")))]) []]]),
+  CFunc ("FiniteMap","sIZE_RATIO") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 5))] []]),
+  CFunc ("FiniteMap","setToList") 0 Private (CFuncType (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]) (CTCons ("Prelude","[]") [CTVar (0,"key")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","keysFM"))] []]),
+  CFunc ("FiniteMap","sizeFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("FiniteMap","FM") [CPVar (1,"_"),CPComb ("FiniteMap","Branch") [CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"size"),CPVar (5,"_"),CPVar (6,"_")]]] [(CSymbol ("Prelude","success"),CVar (4,"size"))] []]),
+  CFunc ("FiniteMap","sizeFM'") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"size"),CPVar (3,"_"),CPVar (4,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"size"))] []]),
+  CFunc ("FiniteMap","splitFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")],CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CSymbol ("Prelude","Nothing"))) (CLambda [CPVar (2,"x")] (CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("FiniteMap","delFromFM")) (CVar (0,"g"))) (CVar (1,"v")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"v"))) (CVar (2,"x"))))))) (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (0,"g"))) (CVar (1,"v"))))] []]),
+  CFunc ("FiniteMap","splitGT") 3 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTVar (0,"key")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"split_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (3,"key"))) (CVar (4,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"split_key")))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CVar (7,"fm_r"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"split_key")))))] []]),
+  CFunc ("FiniteMap","splitLT") 3 Private (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]) (CFuncType (CTVar (0,"key")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"split_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"split_key")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (3,"key"))) (CVar (4,"elt"))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"split_key"))))))] []]),
+  CFunc ("FiniteMap","toGT") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"x"),CPVar (2,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","not")) (CApply (CApply (CVar (0,"le")) (CVar (1,"x"))) (CVar (2,"y"))))) (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (1,"x"))) (CVar (2,"y"))))] []]),
+  CFunc ("FiniteMap","tree") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPVar (1,"fm")]] [(CSymbol ("Prelude","success"),CVar (1,"fm"))] []]),
+  CFunc ("FiniteMap","union") 0 Private (CFuncType (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]) (CFuncType (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]) (CTCons ("FiniteMap","FiniteSet") [CTVar (0,"key")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","plusFM"))] []]),
+  CFunc ("FiniteMap","unitFM") 3 Public (CFuncType (CTCons ("FiniteMap","LeKey") [CTVar (0,"key")]) (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"elt")) (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTVar (1,"elt")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"key"),CPVar (2,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CSymbol ("FiniteMap","unitFM'")) (CVar (1,"key"))) (CVar (2,"elt"))))] []]),
+  CFunc ("FiniteMap","unitFM'") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (0,"key"))) (CVar (1,"elt"))) (CLit (CIntc 1))) (CSymbol ("FiniteMap","EmptyFM"))) (CSymbol ("FiniteMap","EmptyFM")))] []]),
+  CFunc ("FiniteMap","updFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (1,"b"))) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"lt"),CPVar (1,"fm")],CPVar (2,"i"),CPVar (3,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"lt"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (1,"fm"))))] [CLocalFunc (CFunc ("FiniteMap","upd") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"k"),CPVar (5,"x"),CPVar (6,"h"),CPVar (7,"l"),CPVar (8,"r")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"i"))) (CVar (4,"k")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CApply (CVar (3,"f")) (CVar (5,"x")))) (CVar (6,"h"))) (CVar (7,"l"))) (CVar (8,"r"))),(CApply (CApply (CVar (0,"lt")) (CVar (2,"i"))) (CVar (4,"k")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CVar (5,"x"))) (CVar (6,"h"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (7,"l")))) (CVar (8,"r"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CVar (5,"x"))) (CVar (6,"h"))) (CVar (7,"l"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (8,"r"))))] []]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Float.acy b/src/lib/Curry/Module/.curry/Float.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Float.acy
@@ -0,0 +1,40 @@
+CurryProg "Float"
+ ["Prelude"]
+ []
+ [CFunc ("Float","*.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_times"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","+.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_plus"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","-.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_minus"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","/.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_divide"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","<.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_lt"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","<=.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_leq"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float",">.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_gt"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float",">=.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_geq"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","atan") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_atan"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","cos") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_cos"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","exp") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_exp"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","i2f") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_i2f"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","log") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_log"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","prim_Float_divide") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CExternal "prim_Float_divide"),
+  CFunc ("Float","prim_Float_geq") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CExternal "prim_Float_geq"),
+  CFunc ("Float","prim_Float_gt") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CExternal "prim_Float_gt"),
+  CFunc ("Float","prim_Float_leq") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CExternal "prim_Float_leq"),
+  CFunc ("Float","prim_Float_lt") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CExternal "prim_Float_lt"),
+  CFunc ("Float","prim_Float_minus") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CExternal "prim_Float_minus"),
+  CFunc ("Float","prim_Float_plus") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CExternal "prim_Float_plus"),
+  CFunc ("Float","prim_Float_times") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CExternal "prim_Float_times"),
+  CFunc ("Float","prim_atan") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_atan"),
+  CFunc ("Float","prim_cos") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_cos"),
+  CFunc ("Float","prim_exp") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_exp"),
+  CFunc ("Float","prim_i2f") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_i2f"),
+  CFunc ("Float","prim_log") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_log"),
+  CFunc ("Float","prim_round") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Int") [])) (CExternal "prim_round"),
+  CFunc ("Float","prim_sin") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_sin"),
+  CFunc ("Float","prim_sqrt") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_sqrt"),
+  CFunc ("Float","prim_tan") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_tan"),
+  CFunc ("Float","prim_truncate") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Int") [])) (CExternal "prim_truncate"),
+  CFunc ("Float","round") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_round"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","sin") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_sin"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","sqrt") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_sqrt"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","tan") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_tan"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","truncate") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_truncate"))) (CVar (0,"x")))] []])]
+ [COp ("Float","/.") CInfixlOp 7,COp ("Float","*.") CInfixlOp 7,COp ("Float","-.") CInfixlOp 6,COp ("Float","+.") CInfixlOp 6,COp ("Float",">=.") CInfixOp 4,COp ("Float","<=.") CInfixOp 4,COp ("Float",">.") CInfixOp 4,COp ("Float","<.") CInfixOp 4]
diff --git a/src/lib/Curry/Module/.curry/Float.cy b/src/lib/Curry/Module/.curry/Float.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Float.cy
@@ -0,0 +1,79 @@
+Module "Float"
+(Just (Exporting (5,14) [(Export (QualIdent Nothing (Ident "*." 0))),(Export (QualIdent Nothing (Ident "/." 0))),(Export (QualIdent Nothing (Ident "+." 0))),(Export (QualIdent Nothing (Ident "-." 0))),(Export (QualIdent Nothing (Ident "<." 0))),(Export (QualIdent Nothing (Ident ">." 0))),(Export (QualIdent Nothing (Ident "<=." 0))),(Export (QualIdent Nothing (Ident ">=." 0))),(Export (QualIdent Nothing (Ident "i2f" 0))),(Export (QualIdent Nothing (Ident "truncate" 0))),(Export (QualIdent Nothing (Ident "round" 0))),(Export (QualIdent Nothing (Ident "sqrt" 0))),(Export (QualIdent Nothing (Ident "log" 0))),(Export (QualIdent Nothing (Ident "exp" 0))),(Export (QualIdent Nothing (Ident "sin" 0))),(Export (QualIdent Nothing (Ident "cos" 0))),(Export (QualIdent Nothing (Ident "tan" 0))),(Export (QualIdent Nothing (Ident "atan" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(InfixDecl (15,1) InfixL 7 [(Ident "*." 0),(Ident "/." 0)])
+,(InfixDecl (16,1) InfixL 6 [(Ident "+." 0),(Ident "-." 0)])
+,(InfixDecl (17,1) Infix 4 [(Ident "<." 0),(Ident ">." 0),(Ident "<=." 0),(Ident ">=." 0)])
+,(TypeSig (25,1) [(Ident "+." 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []))))
+,(FunctionDecl (26,1) (Ident "+." 0) [(Equation (26,1) (OpLhs (VariablePattern (Ident "x" 2)) (Ident "+." 0) (VariablePattern (Ident "y" 2))) (SimpleRhs (26,10) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_Float_plus" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 2))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "y" 2)))) []))])
+,(TypeSig (28,1) [(Ident "prim_Float_plus" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []))))
+,(FlatExternalDecl (29,1) [(Ident "prim_Float_plus" 0)])
+,(TypeSig (33,1) [(Ident "-." 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []))))
+,(FunctionDecl (34,1) (Ident "-." 0) [(Equation (34,1) (OpLhs (VariablePattern (Ident "x" 4)) (Ident "-." 0) (VariablePattern (Ident "y" 4))) (SimpleRhs (34,10) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_Float_minus" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 4))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "y" 4)))) []))])
+,(TypeSig (36,1) [(Ident "prim_Float_minus" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []))))
+,(FlatExternalDecl (37,1) [(Ident "prim_Float_minus" 0)])
+,(TypeSig (41,1) [(Ident "*." 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []))))
+,(FunctionDecl (42,1) (Ident "*." 0) [(Equation (42,1) (OpLhs (VariablePattern (Ident "x" 6)) (Ident "*." 0) (VariablePattern (Ident "y" 6))) (SimpleRhs (42,10) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_Float_times" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 6))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "y" 6)))) []))])
+,(TypeSig (44,1) [(Ident "prim_Float_times" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []))))
+,(FlatExternalDecl (45,1) [(Ident "prim_Float_times" 0)])
+,(TypeSig (49,1) [(Ident "/." 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []))))
+,(FunctionDecl (50,1) (Ident "/." 0) [(Equation (50,1) (OpLhs (VariablePattern (Ident "x" 8)) (Ident "/." 0) (VariablePattern (Ident "y" 8))) (SimpleRhs (50,10) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_Float_divide" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 8))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "y" 8)))) []))])
+,(TypeSig (52,1) [(Ident "prim_Float_divide" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []))))
+,(FlatExternalDecl (53,1) [(Ident "prim_Float_divide" 0)])
+,(TypeSig (57,1) [(Ident "<." 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (58,1) (Ident "<." 0) [(Equation (58,1) (OpLhs (VariablePattern (Ident "x" 10)) (Ident "<." 0) (VariablePattern (Ident "y" 10))) (SimpleRhs (58,10) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_Float_lt" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 10))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "y" 10)))) []))])
+,(TypeSig (60,1) [(Ident "prim_Float_lt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FlatExternalDecl (61,1) [(Ident "prim_Float_lt" 0)])
+,(TypeSig (65,1) [(Ident ">." 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (66,1) (Ident ">." 0) [(Equation (66,1) (OpLhs (VariablePattern (Ident "x" 12)) (Ident ">." 0) (VariablePattern (Ident "y" 12))) (SimpleRhs (66,10) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_Float_gt" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 12))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "y" 12)))) []))])
+,(TypeSig (68,1) [(Ident "prim_Float_gt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FlatExternalDecl (69,1) [(Ident "prim_Float_gt" 0)])
+,(TypeSig (73,1) [(Ident "<=." 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (74,1) (Ident "<=." 0) [(Equation (74,1) (OpLhs (VariablePattern (Ident "x" 14)) (Ident "<=." 0) (VariablePattern (Ident "y" 14))) (SimpleRhs (74,11) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_Float_leq" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 14))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "y" 14)))) []))])
+,(TypeSig (76,1) [(Ident "prim_Float_leq" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FlatExternalDecl (77,1) [(Ident "prim_Float_leq" 0)])
+,(TypeSig (81,1) [(Ident ">=." 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (82,1) (Ident ">=." 0) [(Equation (82,1) (OpLhs (VariablePattern (Ident "x" 16)) (Ident ">=." 0) (VariablePattern (Ident "y" 16))) (SimpleRhs (82,11) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_Float_geq" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 16))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "y" 16)))) []))])
+,(TypeSig (84,1) [(Ident "prim_Float_geq" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FlatExternalDecl (85,1) [(Ident "prim_Float_geq" 0)])
+,(TypeSig (90,1) [(Ident "i2f" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FunctionDecl (91,1) (Ident "i2f" 0) [(Equation (91,1) (FunLhs (Ident "i2f" 0) [(VariablePattern (Ident "x" 18))]) (SimpleRhs (91,9) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_i2f" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 18)))) []))])
+,(TypeSig (93,1) [(Ident "prim_i2f" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FlatExternalDecl (94,1) [(Ident "prim_i2f" 0)])
+,(TypeSig (99,1) [(Ident "truncate" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (100,1) (Ident "truncate" 0) [(Equation (100,1) (FunLhs (Ident "truncate" 0) [(VariablePattern (Ident "x" 20))]) (SimpleRhs (100,14) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_truncate" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 20)))) []))])
+,(TypeSig (102,1) [(Ident "prim_truncate" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FlatExternalDecl (103,1) [(Ident "prim_truncate" 0)])
+,(TypeSig (110,1) [(Ident "round" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (111,1) (Ident "round" 0) [(Equation (111,1) (FunLhs (Ident "round" 0) [(VariablePattern (Ident "x" 22))]) (SimpleRhs (111,11) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_round" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 22)))) []))])
+,(TypeSig (113,1) [(Ident "prim_round" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FlatExternalDecl (114,1) [(Ident "prim_round" 0)])
+,(TypeSig (118,1) [(Ident "sqrt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FunctionDecl (119,1) (Ident "sqrt" 0) [(Equation (119,1) (FunLhs (Ident "sqrt" 0) [(VariablePattern (Ident "x" 24))]) (SimpleRhs (119,10) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_sqrt" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 24)))) []))])
+,(TypeSig (121,1) [(Ident "prim_sqrt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FlatExternalDecl (122,1) [(Ident "prim_sqrt" 0)])
+,(TypeSig (126,1) [(Ident "log" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FunctionDecl (127,1) (Ident "log" 0) [(Equation (127,1) (FunLhs (Ident "log" 0) [(VariablePattern (Ident "x" 26))]) (SimpleRhs (127,9) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_log" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 26)))) []))])
+,(TypeSig (129,1) [(Ident "prim_log" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FlatExternalDecl (130,1) [(Ident "prim_log" 0)])
+,(TypeSig (134,1) [(Ident "exp" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FunctionDecl (135,1) (Ident "exp" 0) [(Equation (135,1) (FunLhs (Ident "exp" 0) [(VariablePattern (Ident "x" 28))]) (SimpleRhs (135,9) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_exp" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 28)))) []))])
+,(TypeSig (137,1) [(Ident "prim_exp" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FlatExternalDecl (138,1) [(Ident "prim_exp" 0)])
+,(TypeSig (142,1) [(Ident "sin" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FunctionDecl (143,1) (Ident "sin" 0) [(Equation (143,1) (FunLhs (Ident "sin" 0) [(VariablePattern (Ident "x" 30))]) (SimpleRhs (143,9) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_sin" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 30)))) []))])
+,(TypeSig (145,1) [(Ident "prim_sin" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FlatExternalDecl (146,1) [(Ident "prim_sin" 0)])
+,(TypeSig (150,1) [(Ident "cos" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FunctionDecl (151,1) (Ident "cos" 0) [(Equation (151,1) (FunLhs (Ident "cos" 0) [(VariablePattern (Ident "x" 32))]) (SimpleRhs (151,9) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_cos" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 32)))) []))])
+,(TypeSig (153,1) [(Ident "prim_cos" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FlatExternalDecl (154,1) [(Ident "prim_cos" 0)])
+,(TypeSig (158,1) [(Ident "tan" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FunctionDecl (159,1) (Ident "tan" 0) [(Equation (159,1) (FunLhs (Ident "tan" 0) [(VariablePattern (Ident "x" 34))]) (SimpleRhs (159,9) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_tan" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 34)))) []))])
+,(TypeSig (161,1) [(Ident "prim_tan" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FlatExternalDecl (162,1) [(Ident "prim_tan" 0)])
+,(TypeSig (164,1) [(Ident "atan" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FunctionDecl (165,1) (Ident "atan" 0) [(Equation (165,1) (FunLhs (Ident "atan" 0) [(VariablePattern (Ident "x" 36))]) (SimpleRhs (165,10) (InfixApply (Variable (QualIdent (Just "Float") (Ident "prim_atan" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 36)))) []))])
+,(TypeSig (167,1) [(Ident "prim_atan" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Float" 0)) [])))
+,(FlatExternalDecl (168,1) [(Ident "prim_atan" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/Float.efc b/src/lib/Curry/Module/.curry/Float.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Float.efc
@@ -0,0 +1,1 @@
+Prog "Float" ["Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","+.")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Float") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","prim_Float_plus")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","prim_Float_plus")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) []))) (External "Float.prim_Float_plus"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","-.")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Float") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","prim_Float_minus")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","prim_Float_minus")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) []))) (External "Float.prim_Float_minus"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","*.")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Float") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","prim_Float_times")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","prim_Float_times")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) []))) (External "Float.prim_Float_times"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","/.")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Float") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","prim_Float_divide")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","prim_Float_divide")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) []))) (External "Float.prim_Float_divide"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","<.")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Float") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","prim_Float_lt")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","prim_Float_lt")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (External "Float.prim_Float_lt"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float",">.")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Float") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","prim_Float_gt")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","prim_Float_gt")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (External "Float.prim_Float_gt"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","<=.")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Float") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","prim_Float_leq")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","prim_Float_leq")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (External "Float.prim_Float_leq"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float",">=.")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Float") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","prim_Float_geq")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","prim_Float_geq")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (External "Float.prim_Float_geq"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","i2f")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_i2f")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_i2f")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (External "Float.prim_i2f"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Float","truncate")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Float","prim_truncate")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Float","prim_truncate")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (External "Float.prim_truncate"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Float","round")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Float","prim_round")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Float","prim_round")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (External "Float.prim_round"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","sqrt")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_sqrt")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_sqrt")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (External "Float.prim_sqrt"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","log")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_log")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_log")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (External "Float.prim_log"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","exp")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_exp")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_exp")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (External "Float.prim_exp"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","sin")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_sin")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_sin")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (External "Float.prim_sin"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","cos")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_cos")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_cos")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (External "Float.prim_cos"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","tan")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_tan")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_tan")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (External "Float.prim_tan"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","atan")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_atan")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") [])),"Float","prim_atan")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Prelude","Float")) [])) (External "Float.prim_atan")] [Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","*.")) InfixlOp 7,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","/.")) InfixlOp 7,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","+.")) InfixlOp 6,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Float") []))),"Float","-.")) InfixlOp 6,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","<.")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float",">.")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float","<=.")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Float",">=.")) InfixOp 4]
diff --git a/src/lib/Curry/Module/.curry/Float.fcy b/src/lib/Curry/Module/.curry/Float.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Float.fcy
@@ -0,0 +1,1 @@
+Prog "Float" ["Prelude"] [] [Func ("Float","+.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Float","prim_Float_plus") [],Var 1],Var 2])),Func ("Float","prim_Float_plus") 2 Private (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (External "Float.prim_Float_plus"),Func ("Float","-.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Float","prim_Float_minus") [],Var 1],Var 2])),Func ("Float","prim_Float_minus") 2 Private (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (External "Float.prim_Float_minus"),Func ("Float","*.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Float","prim_Float_times") [],Var 1],Var 2])),Func ("Float","prim_Float_times") 2 Private (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (External "Float.prim_Float_times"),Func ("Float","/.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Float","prim_Float_divide") [],Var 1],Var 2])),Func ("Float","prim_Float_divide") 2 Private (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (External "Float.prim_Float_divide"),Func ("Float","<.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Float","prim_Float_lt") [],Var 1],Var 2])),Func ("Float","prim_Float_lt") 2 Private (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (External "Float.prim_Float_lt"),Func ("Float",">.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Float","prim_Float_gt") [],Var 1],Var 2])),Func ("Float","prim_Float_gt") 2 Private (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (External "Float.prim_Float_gt"),Func ("Float","<=.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Float","prim_Float_leq") [],Var 1],Var 2])),Func ("Float","prim_Float_leq") 2 Private (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (External "Float.prim_Float_leq"),Func ("Float",">=.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Float","prim_Float_geq") [],Var 1],Var 2])),Func ("Float","prim_Float_geq") 2 Private (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (External "Float.prim_Float_geq"),Func ("Float","i2f") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Float") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_i2f") [],Var 1])),Func ("Float","prim_i2f") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Float") [])) (External "Float.prim_i2f"),Func ("Float","truncate") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_truncate") [],Var 1])),Func ("Float","prim_truncate") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Int") [])) (External "Float.prim_truncate"),Func ("Float","round") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_round") [],Var 1])),Func ("Float","prim_round") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Int") [])) (External "Float.prim_round"),Func ("Float","sqrt") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_sqrt") [],Var 1])),Func ("Float","prim_sqrt") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (External "Float.prim_sqrt"),Func ("Float","log") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_log") [],Var 1])),Func ("Float","prim_log") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (External "Float.prim_log"),Func ("Float","exp") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_exp") [],Var 1])),Func ("Float","prim_exp") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (External "Float.prim_exp"),Func ("Float","sin") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_sin") [],Var 1])),Func ("Float","prim_sin") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (External "Float.prim_sin"),Func ("Float","cos") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_cos") [],Var 1])),Func ("Float","prim_cos") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (External "Float.prim_cos"),Func ("Float","tan") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_tan") [],Var 1])),Func ("Float","prim_tan") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (External "Float.prim_tan"),Func ("Float","atan") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Float","prim_atan") [],Var 1])),Func ("Float","prim_atan") 1 Private (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (External "Float.prim_atan")] [Op ("Float","*.") InfixlOp 7,Op ("Float","/.") InfixlOp 7,Op ("Float","+.") InfixlOp 6,Op ("Float","-.") InfixlOp 6,Op ("Float","<.") InfixOp 4,Op ("Float",">.") InfixOp 4,Op ("Float","<=.") InfixOp 4,Op ("Float",">=.") InfixOp 4]
diff --git a/src/lib/Curry/Module/.curry/Float.fint b/src/lib/Curry/Module/.curry/Float.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Float.fint
@@ -0,0 +1,1 @@
+Prog "Float" ["Prelude"] [] [Func ("Float","+.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (Rule [] (Var 0)),Func ("Float","-.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (Rule [] (Var 0)),Func ("Float","*.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (Rule [] (Var 0)),Func ("Float","/.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") []))) (Rule [] (Var 0)),Func ("Float","<.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Float",">.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Float","<=.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Float",">=.") 2 Public (FuncType (TCons ("Prelude","Float") []) (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Float","i2f") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Float") [])) (Rule [] (Var 0)),Func ("Float","truncate") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Float","round") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Float","sqrt") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [] (Var 0)),Func ("Float","log") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [] (Var 0)),Func ("Float","exp") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [] (Var 0)),Func ("Float","sin") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [] (Var 0)),Func ("Float","cos") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [] (Var 0)),Func ("Float","tan") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [] (Var 0)),Func ("Float","atan") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Prelude","Float") [])) (Rule [] (Var 0))] [Op ("Float","*.") InfixlOp 7,Op ("Float","/.") InfixlOp 7,Op ("Float","+.") InfixlOp 6,Op ("Float","-.") InfixlOp 6,Op ("Float","<.") InfixOp 4,Op ("Float",">.") InfixOp 4,Op ("Float","<=.") InfixOp 4,Op ("Float",">=.") InfixOp 4]
diff --git a/src/lib/Curry/Module/.curry/Float.uacy b/src/lib/Curry/Module/.curry/Float.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Float.uacy
@@ -0,0 +1,40 @@
+CurryProg "Float"
+ ["Prelude"]
+ []
+ [CFunc ("Float","*.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_times"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","+.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_plus"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","-.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_minus"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","/.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_divide"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","<.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_lt"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","<=.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_leq"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float",">.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_gt"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float",">=.") 2 Public (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_Float_geq"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Float","atan") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_atan"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","cos") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_cos"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","exp") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_exp"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","i2f") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_i2f"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","log") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_log"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","prim_Float_divide") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CExternal "prim_Float_divide"),
+  CFunc ("Float","prim_Float_geq") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CExternal "prim_Float_geq"),
+  CFunc ("Float","prim_Float_gt") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CExternal "prim_Float_gt"),
+  CFunc ("Float","prim_Float_leq") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CExternal "prim_Float_leq"),
+  CFunc ("Float","prim_Float_lt") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Bool") []))) (CExternal "prim_Float_lt"),
+  CFunc ("Float","prim_Float_minus") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CExternal "prim_Float_minus"),
+  CFunc ("Float","prim_Float_plus") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CExternal "prim_Float_plus"),
+  CFunc ("Float","prim_Float_times") 2 Private (CFuncType (CTCons ("Prelude","Float") []) (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") []))) (CExternal "prim_Float_times"),
+  CFunc ("Float","prim_atan") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_atan"),
+  CFunc ("Float","prim_cos") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_cos"),
+  CFunc ("Float","prim_exp") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_exp"),
+  CFunc ("Float","prim_i2f") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_i2f"),
+  CFunc ("Float","prim_log") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_log"),
+  CFunc ("Float","prim_round") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Int") [])) (CExternal "prim_round"),
+  CFunc ("Float","prim_sin") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_sin"),
+  CFunc ("Float","prim_sqrt") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_sqrt"),
+  CFunc ("Float","prim_tan") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CExternal "prim_tan"),
+  CFunc ("Float","prim_truncate") 1 Private (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Int") [])) (CExternal "prim_truncate"),
+  CFunc ("Float","round") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_round"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","sin") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_sin"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","sqrt") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_sqrt"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","tan") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Float") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_tan"))) (CVar (0,"x")))] []]),
+  CFunc ("Float","truncate") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Float","prim_truncate"))) (CVar (0,"x")))] []])]
+ [COp ("Float","/.") CInfixlOp 7,COp ("Float","*.") CInfixlOp 7,COp ("Float","-.") CInfixlOp 6,COp ("Float","+.") CInfixlOp 6,COp ("Float",">=.") CInfixOp 4,COp ("Float","<=.") CInfixOp 4,COp ("Float",">.") CInfixOp 4,COp ("Float","<.") CInfixOp 4]
diff --git a/src/lib/Curry/Module/.curry/Global.acy b/src/lib/Curry/Module/.curry/Global.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Global.acy
@@ -0,0 +1,10 @@
+CurryProg "Global"
+ ["Prelude"]
+ [CType ("Global","Global") Public [(0,"a")] [],
+  CType ("Global","GlobalSpec") Public [] [CCons ("Global","Temporary") 0 Public [],CCons ("Global","Persistent") 1 Public [CTCons ("Prelude","String") []]]]
+ [CFunc ("Global","global") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Global","GlobalSpec") []) (CTCons ("Global","Global") [CTVar (0,"a")]))) (CExternal "global"),
+  CFunc ("Global","prim_readGlobal") 1 Private (CFuncType (CTCons ("Global","Global") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "prim_readGlobal"),
+  CFunc ("Global","prim_writeGlobal") 2 Private (CFuncType (CTCons ("Global","Global") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_writeGlobal"),
+  CFunc ("Global","readGlobal") 1 Public (CFuncType (CTCons ("Global","Global") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Global","prim_readGlobal"))) (CVar (0,"g")))] []]),
+  CFunc ("Global","writeGlobal") 2 Public (CFuncType (CTCons ("Global","Global") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Global","prim_writeGlobal"))) (CVar (0,"g")))) (CVar (1,"v")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Global.cy b/src/lib/Curry/Module/.curry/Global.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Global.cy
@@ -0,0 +1,16 @@
+Module "Global"
+(Just (Exporting (26,14) [(Export (QualIdent Nothing (Ident "Global" 0))),(ExportTypeAll (QualIdent Nothing (Ident "GlobalSpec" 0))),(Export (QualIdent Nothing (Ident "global" 0))),(Export (QualIdent Nothing (Ident "readGlobal" 0))),(Export (QualIdent Nothing (Ident "writeGlobal" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(DataDecl (31,1) (Ident "Global" 0) [(Ident "a" 0)] [])
+,(DataDecl (43,1) (Ident "GlobalSpec" 0) [] [(ConstrDecl (43,19) [] (Ident "Temporary" 0) []),(ConstrDecl (43,32) [] (Ident "Persistent" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])])
+,(TypeSig (35,1) [(Ident "global" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "GlobalSpec" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Global" 0)) [(VariableType (Ident "a" 0))]))))
+,(FlatExternalDecl (36,1) [(Ident "global" 0)])
+,(TypeSig (47,1) [(Ident "readGlobal" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Global" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (48,1) (Ident "readGlobal" 0) [(Equation (48,1) (FunLhs (Ident "readGlobal" 0) [(VariablePattern (Ident "g" 2))]) (SimpleRhs (48,16) (InfixApply (Variable (QualIdent (Just "Global") (Ident "prim_readGlobal" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "g" 2)))) []))])
+,(TypeSig (50,1) [(Ident "prim_readGlobal" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Global" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))
+,(FlatExternalDecl (51,1) [(Ident "prim_readGlobal" 0)])
+,(TypeSig (56,1) [(Ident "writeGlobal" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Global" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (57,1) (Ident "writeGlobal" 0) [(Equation (57,1) (FunLhs (Ident "writeGlobal" 0) [(VariablePattern (Ident "g" 4)),(VariablePattern (Ident "v" 4))]) (SimpleRhs (57,19) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Global") (Ident "prim_writeGlobal" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "g" 4))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "v" 4)))) []))])
+,(TypeSig (59,1) [(Ident "prim_writeGlobal" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Global" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (60,1) [(Ident "prim_writeGlobal" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/Global.efc b/src/lib/Curry/Module/.curry/Global.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Global.efc
@@ -0,0 +1,1 @@
+Prog "Global" ["Prelude"] [Type ((Nothing,Nothing,"Global","Global")) Public [0] [],Type ((Nothing,Nothing,"Global","GlobalSpec")) Public [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"Global","GlobalSpec") []),"Global","Temporary")) 0 Public [],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Global","GlobalSpec") [])),"Global","Persistent")) 1 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]] [Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Global","GlobalSpec") []) (TCons (Nothing,Nothing,"Global","Global") [TVar 0]))),"Global","global")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Global","GlobalSpec")) []) (TCons ((Nothing,Nothing,"Global","Global")) [TVar 0]))) (External "Global.global"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Global","readGlobal")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Global","Global")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Global","Global") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Global","prim_readGlobal")) [],Var ((Just (TCons (Nothing,Nothing,"Global","Global") [TVar 0]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Global","prim_readGlobal")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Global","Global")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (External "Global.prim_readGlobal"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Global","writeGlobal")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Global","Global")) [TVar 0]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Global","Global") [TVar 0]),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Global","prim_writeGlobal")) [],Var ((Just (TCons (Nothing,Nothing,"Global","Global") [TVar 0]),1))],Var ((Just (TVar 0),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Global","prim_writeGlobal")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Global","Global")) [TVar 0]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "Global.prim_writeGlobal")] []
diff --git a/src/lib/Curry/Module/.curry/Global.fcy b/src/lib/Curry/Module/.curry/Global.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Global.fcy
@@ -0,0 +1,1 @@
+Prog "Global" ["Prelude"] [Type ("Global","Global") Public [0] [],Type ("Global","GlobalSpec") Public [] [Cons ("Global","Temporary") 0 Public [],Cons ("Global","Persistent") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]] [Func ("Global","global") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Global","GlobalSpec") []) (TCons ("Global","Global") [TVar 0]))) (External "Global.global"),Func ("Global","readGlobal") 1 Public (FuncType (TCons ("Global","Global") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Global","prim_readGlobal") [],Var 1])),Func ("Global","prim_readGlobal") 1 Private (FuncType (TCons ("Global","Global") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (External "Global.prim_readGlobal"),Func ("Global","writeGlobal") 2 Public (FuncType (TCons ("Global","Global") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("Global","prim_writeGlobal") [],Var 1],Var 2])),Func ("Global","prim_writeGlobal") 2 Private (FuncType (TCons ("Global","Global") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "Global.prim_writeGlobal")] []
diff --git a/src/lib/Curry/Module/.curry/Global.fint b/src/lib/Curry/Module/.curry/Global.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Global.fint
@@ -0,0 +1,1 @@
+Prog "Global" ["Prelude"] [Type ("Global","Global") Public [0] [],Type ("Global","GlobalSpec") Public [] [Cons ("Global","Temporary") 0 Public [],Cons ("Global","Persistent") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]] [Func ("Global","global") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Global","GlobalSpec") []) (TCons ("Global","Global") [TVar 0]))) (External "Global.global"),Func ("Global","readGlobal") 1 Public (FuncType (TCons ("Global","Global") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (Rule [] (Var 0)),Func ("Global","writeGlobal") 2 Public (FuncType (TCons ("Global","Global") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Global.uacy b/src/lib/Curry/Module/.curry/Global.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Global.uacy
@@ -0,0 +1,10 @@
+CurryProg "Global"
+ ["Prelude"]
+ [CType ("Global","Global") Public [(0,"a")] [],
+  CType ("Global","GlobalSpec") Public [] [CCons ("Global","Temporary") 0 Public [],CCons ("Global","Persistent") 1 Public [CTCons ("Prelude","String") []]]]
+ [CFunc ("Global","global") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Global","GlobalSpec") []) (CTCons ("Global","Global") [CTVar (0,"a")]))) (CExternal "global"),
+  CFunc ("Global","prim_readGlobal") 1 Private (CFuncType (CTCons ("Global","Global") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "prim_readGlobal"),
+  CFunc ("Global","prim_writeGlobal") 2 Private (CFuncType (CTCons ("Global","Global") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_writeGlobal"),
+  CFunc ("Global","readGlobal") 1 Public (CFuncType (CTCons ("Global","Global") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Global","prim_readGlobal"))) (CVar (0,"g")))] []]),
+  CFunc ("Global","writeGlobal") 2 Public (CFuncType (CTCons ("Global","Global") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Global","prim_writeGlobal"))) (CVar (0,"g")))) (CVar (1,"v")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/GraphInductive.acy b/src/lib/Curry/Module/.curry/GraphInductive.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/GraphInductive.acy
@@ -0,0 +1,97 @@
+CurryProg "GraphInductive"
+ ["Prelude","FiniteMap","Sort","Maybe"]
+ [CType ("GraphInductive","Graph") Public [(0,"nodeLabel"),(1,"edgeLabel")] [CCons ("GraphInductive","Gr") 1 Private [CTCons ("GraphInductive","GraphRep") [CTVar (0,"nodeLabel"),CTVar (1,"edgeLabel")]]],
+  CTypeSyn ("GraphInductive","Node") Public [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("GraphInductive","LNode") Public [(0,"a")] (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTVar (0,"a")]),
+  CTypeSyn ("GraphInductive","UNode") Public [] (CTCons ("GraphInductive","LNode") [CTCons ("Prelude","()") []]),
+  CTypeSyn ("GraphInductive","Edge") Public [] (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTCons ("GraphInductive","Node") []]),
+  CTypeSyn ("GraphInductive","LEdge") Public [(0,"b")] (CTCons ("Prelude","(,,)") [CTCons ("GraphInductive","Node") [],CTCons ("GraphInductive","Node") [],CTVar (0,"b")]),
+  CTypeSyn ("GraphInductive","UEdge") Public [] (CTCons ("GraphInductive","LEdge") [CTCons ("Prelude","()") []]),
+  CTypeSyn ("GraphInductive","Context") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","(,,,)") [CTCons ("GraphInductive","Adj") [CTVar (1,"b")],CTCons ("GraphInductive","Node") [],CTVar (0,"a"),CTCons ("GraphInductive","Adj") [CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","Adj") Private [(0,"b")] (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"b"),CTCons ("GraphInductive","Node") []]]),
+  CTypeSyn ("GraphInductive","MContext") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","Maybe") [CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","Context'") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","(,,)") [CTCons ("GraphInductive","Adj") [CTVar (1,"b")],CTVar (0,"a"),CTCons ("GraphInductive","Adj") [CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","UContext") Public [] (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []],CTCons ("GraphInductive","Node") [],CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]]),
+  CTypeSyn ("GraphInductive","GDecomp") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"b")],CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","Decomp") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","MContext") [CTVar (0,"a"),CTVar (1,"b")],CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","UDecomp") Public [(0,"g")] (CTCons ("Prelude","(,)") [CTCons ("Prelude","Maybe") [CTCons ("GraphInductive","UContext") []],CTVar (0,"g")]),
+  CTypeSyn ("GraphInductive","Path") Public [] (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]),
+  CTypeSyn ("GraphInductive","LPath") Public [(0,"a")] (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LNode") [CTVar (0,"a")]]),
+  CTypeSyn ("GraphInductive","UPath") Public [] (CTCons ("Prelude","[]") [CTCons ("GraphInductive","UNode") []]),
+  CTypeSyn ("GraphInductive","GraphRep") Private [(0,"a"),(1,"b")] (CTCons ("FiniteMap","FM") [CTCons ("GraphInductive","Node") [],CTCons ("GraphInductive","Context'") [CTVar (0,"a"),CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","UGr") Public [] (CTCons ("GraphInductive","Graph") [CTCons ("Prelude","()") [],CTCons ("Prelude","()") []])]
+ [CFunc ("GraphInductive",".:") 0 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CFuncType (CTVar (2,"c")) (CFuncType (CTVar (3,"d")) (CTVar (0,"a")))) (CFuncType (CTVar (2,"c")) (CFuncType (CTVar (3,"d")) (CTVar (1,"b")))))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","."))) (CSymbol ("Prelude",".")))] []]),
+  CFunc ("GraphInductive",":&") 2 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")]) (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"v"),CPVar (2,"l"),CPVar (3,"s")],CPComb ("GraphInductive","Gr") [CPVar (4,"g")]] [(CApply (CApply (CSymbol ("FiniteMap","elemFM")) (CVar (1,"v"))) (CVar (4,"g")),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (1,"v")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","show")) (CVar (2,"l"))))))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("GraphInductive","Gr")) (CVar (7,"g3")))] [CLocalPat (CPVar (5,"g1")) (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM")) (CVar (4,"g"))) (CVar (1,"v"))) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (0,"p"))) (CVar (2,"l"))) (CVar (3,"s")))) [],CLocalPat (CPVar (6,"g2")) (CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CVar (5,"g1"))) (CVar (0,"p"))) (CApply (CSymbol ("GraphInductive","addSucc")) (CVar (1,"v")))) [],CLocalPat (CPVar (7,"g3")) (CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CVar (6,"g2"))) (CVar (3,"s"))) (CApply (CSymbol ("GraphInductive","addPred")) (CVar (1,"v")))) []]]),
+  CFunc ("GraphInductive","addPred") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTVar (0,"a")]],CTVar (2,"c"),CTVar (3,"d")]) (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTVar (0,"a")]],CTVar (2,"c"),CTVar (3,"d")])))) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"l"),CPComb ("Prelude","(,,)") [CPVar (2,"p"),CPVar (3,"l'"),CPVar (4,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"l"))) (CVar (0,"v")))) (CVar (2,"p")))) (CVar (3,"l'"))) (CVar (4,"s")))] []]),
+  CFunc ("GraphInductive","addSucc") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","(,,)") [CTVar (2,"c"),CTVar (3,"d"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTVar (0,"a")]]]) (CTCons ("Prelude","(,,)") [CTVar (2,"c"),CTVar (3,"d"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTVar (0,"a")]]])))) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"l"),CPComb ("Prelude","(,,)") [CPVar (2,"p"),CPVar (3,"l'"),CPVar (4,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (2,"p"))) (CVar (3,"l'"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"l"))) (CVar (0,"v")))) (CVar (4,"s"))))] []]),
+  CFunc ("GraphInductive","buildGr") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]]) (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("GraphInductive",":&"))) (CSymbol ("GraphInductive","empty")))] []]),
+  CFunc ("GraphInductive","clearPred") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (2,"c"),CTVar (0,"a")]],CTVar (3,"d"),CTVar (4,"e")]) (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (2,"c"),CTVar (0,"a")]],CTVar (3,"d"),CTVar (4,"e")])))) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"_"),CPComb ("Prelude","(,,)") [CPVar (2,"p"),CPVar (3,"l"),CPVar (4,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (5,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (5,"x0"))) (CVar (0,"v"))))) (CSymbol ("Prelude","snd")))) (CVar (2,"p")))) (CVar (3,"l"))) (CVar (4,"s")))] []]),
+  CFunc ("GraphInductive","clearSucc") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","(,,)") [CTVar (2,"c"),CTVar (3,"d"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (4,"e"),CTVar (0,"a")]]]) (CTCons ("Prelude","(,,)") [CTVar (2,"c"),CTVar (3,"d"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (4,"e"),CTVar (0,"a")]]])))) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"_"),CPComb ("Prelude","(,,)") [CPVar (2,"p"),CPVar (3,"l"),CPVar (4,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (2,"p"))) (CVar (3,"l"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (5,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (5,"x0"))) (CVar (0,"v"))))) (CSymbol ("Prelude","snd")))) (CVar (4,"s"))))] []]),
+  CFunc ("GraphInductive","context") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTCons ("Prelude","Int") []]]]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (1,"v"))) (CVar (0,"g"))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Nothing") [],CPVar (2,"_")]) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","show")) (CVar (1,"v"))))),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Just") [CPVar (3,"c")],CPVar (4,"_")]) (CVar (3,"c"))])] []]),
+  CFunc ("GraphInductive","context1") 0 Private (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTCons ("Prelude","Int") []]]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CSymbol ("GraphInductive","fst4"))) (CSymbol ("GraphInductive","context")))] []]),
+  CFunc ("GraphInductive","context4") 0 Private (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTCons ("Prelude","Int") []]]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CSymbol ("GraphInductive","fth4"))) (CSymbol ("GraphInductive","context")))] []]),
+  CFunc ("GraphInductive","deg") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CLambda [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","length")) (CVar (0,"p")))) (CApply (CSymbol ("Prelude","length")) (CVar (3,"s")))))) (CSymbol ("GraphInductive","context")))] []]),
+  CFunc ("GraphInductive","deg'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","length")) (CVar (0,"p")))) (CApply (CSymbol ("Prelude","length")) (CVar (3,"s"))))] []]),
+  CFunc ("GraphInductive","delEdge") 2 Public (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"v"),CPVar (1,"w")],CPVar (2,"g")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (0,"v"))) (CVar (2,"g"))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Nothing") [],CPVar (3,"_")]) (CVar (2,"g")),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Just") [CPComb ("Prelude","(,,,)") [CPVar (4,"p"),CPVar (5,"v'"),CPVar (6,"l"),CPVar (7,"s")]],CPVar (8,"g'")]) (CApply (CApply (CSymbol ("GraphInductive",":&")) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CVar (4,"p"))) (CVar (5,"v'"))) (CVar (6,"l"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (9,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (9,"x0"))) (CVar (1,"w"))))) (CSymbol ("Prelude","snd")))) (CVar (7,"s"))))) (CVar (8,"g'")))])] []]),
+  CFunc ("GraphInductive","delEdges") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"es"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("GraphInductive","delEdge"))) (CVar (1,"g"))) (CVar (0,"es")))] []]),
+  CFunc ("GraphInductive","delNode") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"v")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("GraphInductive","delNodes")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"v"))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("GraphInductive","delNodes") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"g")] [(CSymbol ("Prelude","success"),CVar (0,"g"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"v"),CPVar (2,"vs")],CPVar (3,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive","delNodes")) (CVar (2,"vs"))) (CApply (CSymbol ("Prelude","snd")) (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (1,"v"))) (CVar (3,"g")))))] []]),
+  CFunc ("GraphInductive","edgeComp") 2 Private (CFuncType (CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (0,"a")]) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"e"),CPVar (1,"e'")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"e"))) (CVar (1,"e'")),CSymbol ("Prelude","EQ")),(CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (2,"v"))) (CVar (5,"x")))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"v"))) (CVar (5,"x")))) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (3,"w"))) (CVar (6,"y")))),CSymbol ("Prelude","LT")),(CSymbol ("Prelude","otherwise"),CSymbol ("Prelude","GT"))] [CLocalPat (CPComb ("Prelude","(,,)") [CPVar (2,"v"),CPVar (3,"w"),CPVar (4,"_")]) (CVar (0,"e")) [],CLocalPat (CPComb ("Prelude","(,,)") [CPVar (5,"x"),CPVar (6,"y"),CPVar (7,"_")]) (CVar (1,"e'")) []]]),
+  CFunc ("GraphInductive","edges") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,,)") [CPVar (0,"v"),CPVar (1,"w"),CPVar (2,"_")]] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"v"))) (CVar (1,"w")))))) (CSymbol ("GraphInductive","labEdges")))] []]),
+  CFunc ("GraphInductive","emap") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (2,"c"),CTVar (0,"a")]) (CTCons ("GraphInductive","Graph") [CTVar (2,"c"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("GraphInductive","gmap")) (CLambda [CPComb ("Prelude","(,,,)") [CPVar (1,"p"),CPVar (2,"v"),CPVar (3,"l"),CPVar (4,"s")]] (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CApply (CApply (CSymbol ("GraphInductive","map1")) (CVar (0,"f"))) (CVar (1,"p")))) (CVar (2,"v"))) (CVar (3,"l"))) (CApply (CApply (CSymbol ("GraphInductive","map1")) (CVar (0,"f"))) (CVar (4,"s"))))))] [CLocalFunc (CFunc ("GraphInductive","map1") 1 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (2,"c")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTVar (2,"c")]]))) (CRules CFlex [CRule [CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (2,"l"),CPVar (3,"v")]] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CVar (1,"g")) (CVar (2,"l")))) (CVar (3,"v")))))] []]))]]),
+  CFunc ("GraphInductive","empty") 0 Public (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("GraphInductive","Gr")) (CApply (CSymbol ("FiniteMap","emptyFM")) (CSymbol ("Prelude","<"))))] []]),
+  CFunc ("GraphInductive","equal") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"g'")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("GraphInductive","slabNodes")) (CVar (0,"g")))) (CApply (CSymbol ("GraphInductive","slabNodes")) (CVar (1,"g'"))))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("GraphInductive","slabEdges")) (CVar (0,"g")))) (CApply (CSymbol ("GraphInductive","slabEdges")) (CVar (1,"g'")))))] []]),
+  CFunc ("GraphInductive","flip2") 1 Private (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","(,)") [CTVar (1,"b"),CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"x"),CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"y"))) (CVar (0,"x")))] []]),
+  CFunc ("GraphInductive","fst4") 1 Private (CFuncType (CTCons ("Prelude","(,,,)") [CTVar (0,"a"),CTVar (1,"b"),CTVar (2,"c"),CTVar (3,"d")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"x"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("GraphInductive","fth4") 1 Private (CFuncType (CTCons ("Prelude","(,,,)") [CTVar (0,"a"),CTVar (1,"b"),CTVar (2,"c"),CTVar (3,"d")]) (CTVar (3,"d"))) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"x")]] [(CSymbol ("Prelude","success"),CVar (3,"x"))] []]),
+  CFunc ("GraphInductive","gelem") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Maybe","isJust")) (CApply (CSymbol ("Prelude","fst")) (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (0,"v"))) (CVar (1,"g")))))] []]),
+  CFunc ("GraphInductive","gmap") 1 Public (CFuncType (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (2,"c"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (3,"d"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (2,"c"),CTCons ("Prelude","Int") []]]])) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")]) (CTCons ("GraphInductive","Graph") [CTVar (3,"d"),CTVar (2,"c")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive","ufold")) (CLambda [CPVar (1,"c")] (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("GraphInductive",":&")) (CApply (CVar (0,"f")) (CVar (1,"c")))) (CVar (2,"x0")))))) (CSymbol ("GraphInductive","empty")))] []]),
+  CFunc ("GraphInductive","indeg") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CSymbol ("Prelude","length"))) (CSymbol ("GraphInductive","context1")))] []]),
+  CFunc ("GraphInductive","indeg'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","length")) (CVar (0,"p")))] []]),
+  CFunc ("GraphInductive","inn") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (2,"l"),CPVar (3,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (3,"w"))) (CVar (1,"v"))) (CVar (2,"l"))))) (CApply (CApply (CSymbol ("GraphInductive","context1")) (CVar (0,"g"))) (CVar (1,"v"))))] []]),
+  CFunc ("GraphInductive","inn'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"v"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (4,"l"),CPVar (5,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (5,"w"))) (CVar (1,"v"))) (CVar (4,"l"))))) (CVar (0,"p")))] []]),
+  CFunc ("GraphInductive","insEdge") 2 Public (CFuncType (CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (0,"a")]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")]) (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","(,,)") [CPVar (0,"v"),CPVar (1,"w"),CPVar (2,"l")],CPVar (3,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",":&")) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CVar (4,"pr"))) (CVar (0,"v"))) (CVar (6,"la"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (2,"l"))) (CVar (1,"w")))) (CVar (7,"su"))))) (CVar (8,"g'")))] [CLocalPat (CPComb ("Prelude","(,)") [CPComb ("Prelude","Just") [CPComb ("Prelude","(,,,)") [CPVar (4,"pr"),CPVar (5,"_"),CPVar (6,"la"),CPVar (7,"su")]],CPVar (8,"g'")]) (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (0,"v"))) (CVar (3,"g"))) []]]),
+  CFunc ("GraphInductive","insEdges") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (0,"a")]]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")]) (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"es"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("GraphInductive","insEdge"))) (CVar (1,"g"))) (CVar (0,"es")))] []]),
+  CFunc ("GraphInductive","insNode") 1 Public (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"v"),CPVar (1,"l")]] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("GraphInductive",":&")) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CSymbol ("Prelude","[]"))) (CVar (0,"v"))) (CVar (1,"l"))) (CSymbol ("Prelude","[]")))) (CVar (2,"x0"))))] []]),
+  CFunc ("GraphInductive","insNodes") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"vs"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("GraphInductive","insNode"))) (CVar (1,"g"))) (CVar (0,"vs")))] []]),
+  CFunc ("GraphInductive","isEmpty") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","isEmptyFM")) (CVar (0,"g")))] []]),
+  CFunc ("GraphInductive","lab") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Maybe",">>-")) (CApply (CSymbol ("Prelude","fst")) (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (1,"v"))) (CVar (0,"g"))))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","Just"))) (CSymbol ("GraphInductive","lab'"))))] []]),
+  CFunc ("GraphInductive","lab'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTVar (1,"b"))) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"l"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"l"))] []]),
+  CFunc ("GraphInductive","labEdges") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CLambda [CPComb ("Prelude","(,)") [CPVar (1,"v"),CPComb ("Prelude","(,,)") [CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"s")]]] (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (5,"l"),CPVar (6,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (1,"v"))) (CVar (6,"w"))) (CVar (5,"l"))))) (CVar (4,"s"))))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"g"))))] []]),
+  CFunc ("GraphInductive","labNode'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (1,"b")])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"v"),CPVar (2,"l"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"v"))) (CVar (2,"l")))] []]),
+  CFunc ("GraphInductive","labNodes") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (1,"v"),CPComb ("Prelude","(,,)") [CPVar (2,"_"),CPVar (3,"l"),CPVar (4,"_")]]] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"v"))) (CVar (3,"l"))))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"g"))))] []]),
+  CFunc ("GraphInductive","labUEdges") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTVar (0,"a"),CTVar (1,"b"),CTCons ("Prelude","()") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (0,"v"),CPVar (1,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (0,"v"))) (CVar (1,"w"))) (CSymbol ("Prelude","()")))))] []]),
+  CFunc ("GraphInductive","labUNodes") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","()") []]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (0,"v")] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"v"))) (CSymbol ("Prelude","()")))))] []]),
+  CFunc ("GraphInductive","lpre") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (1,"b")]]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","flip2")))) (CSymbol ("GraphInductive","context1")))] []]),
+  CFunc ("GraphInductive","lpre'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","flip2"))) (CVar (0,"p")))] []]),
+  CFunc ("GraphInductive","lsuc") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (1,"b")]]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","flip2")))) (CSymbol ("GraphInductive","context4")))] []]),
+  CFunc ("GraphInductive","lsuc'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","flip2"))) (CVar (3,"s")))] []]),
+  CFunc ("GraphInductive","match") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTCons ("Prelude","Int") []]]]],CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"v"),CPComb ("GraphInductive","Gr") [CPVar (1,"g")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","Nothing"))) (CApply (CSymbol ("GraphInductive","Gr")) (CVar (1,"g"))))) (CLambda [CPComb ("Prelude","(,)") [CPVar (2,"g'"),CPComb ("Prelude","(,)") [CPVar (3,"_"),CPComb ("Prelude","(,,)") [CPVar (4,"p"),CPVar (5,"l"),CPVar (6,"s")]]]] (CLetDecl [CLocalPat (CPVar (7,"s'")) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (11,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (11,"x0"))) (CVar (0,"v"))))) (CSymbol ("Prelude","snd")))) (CVar (6,"s"))) [],CLocalPat (CPVar (8,"p'")) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (12,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (12,"x0"))) (CVar (0,"v"))))) (CSymbol ("Prelude","snd")))) (CVar (4,"p"))) [],CLocalPat (CPVar (9,"g1")) (CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CVar (2,"g'"))) (CVar (7,"s'"))) (CApply (CSymbol ("GraphInductive","clearPred")) (CVar (0,"v")))) [],CLocalPat (CPVar (10,"g2")) (CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CVar (9,"g1"))) (CVar (8,"p'"))) (CApply (CSymbol ("GraphInductive","clearSucc")) (CVar (0,"v")))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CVar (8,"p'"))) (CVar (0,"v"))) (CVar (5,"l"))) (CVar (6,"s"))))) (CApply (CSymbol ("GraphInductive","Gr")) (CVar (10,"g2"))))))) (CApply (CApply (CSymbol ("FiniteMap","splitFM")) (CVar (1,"g"))) (CVar (0,"v"))))] []]),
+  CFunc ("GraphInductive","matchAny") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTCons ("Prelude","Int") []]]],CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CApply (CSymbol ("FiniteMap","isEmptyFM")) (CVar (0,"g")),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'G'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))),(CSymbol ("Prelude","otherwise"),CCase (CApply (CSymbol ("Prelude","head")) (CApply (CSymbol ("FiniteMap","fmToListPreOrder")) (CVar (0,"g")))) [CBranch (CPComb ("Prelude","(,)") [CPVar (1,"v"),CPVar (2,"_")]) (CCase (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (1,"v"))) (CApply (CSymbol ("GraphInductive","Gr")) (CVar (0,"g")))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Just") [CPVar (3,"c")],CPVar (4,"g'")]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"c"))) (CVar (4,"g'")))])])] []]),
+  CFunc ("GraphInductive","mkGraph") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (1,"b")]]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"vs"),CPVar (1,"es")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("GraphInductive","insEdges")) (CVar (1,"es")))) (CApply (CSymbol ("GraphInductive","insNodes")) (CVar (0,"vs")))) (CSymbol ("GraphInductive","empty")))] []]),
+  CFunc ("GraphInductive","mkUGraph") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]]) (CTCons ("GraphInductive","Graph") [CTCons ("Prelude","()") [],CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"vs"),CPVar (1,"es")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive","mkGraph")) (CApply (CSymbol ("GraphInductive","labUNodes")) (CVar (0,"vs")))) (CApply (CSymbol ("GraphInductive","labUEdges")) (CVar (1,"es"))))] []]),
+  CFunc ("GraphInductive","neighbors") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CLambda [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"p"))) (CVar (3,"s")))))) (CSymbol ("GraphInductive","context")))] []]),
+  CFunc ("GraphInductive","neighbors'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CVar (0,"p")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CVar (3,"s"))))] []]),
+  CFunc ("GraphInductive","newNodes") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"i"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","enumFromTo")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"n"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"n"))) (CVar (0,"i"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"_"),CPVar (3,"n")]) (CApply (CSymbol ("GraphInductive","nodeRange")) (CVar (1,"g"))) []]]),
+  CFunc ("GraphInductive","nmap") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (2,"c")]) (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (2,"c")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("GraphInductive","gmap")) (CLambda [CPComb ("Prelude","(,,,)") [CPVar (1,"p"),CPVar (2,"v"),CPVar (3,"l"),CPVar (4,"s")]] (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CVar (1,"p"))) (CVar (2,"v"))) (CApply (CVar (0,"f")) (CVar (3,"l")))) (CVar (4,"s")))))] []]),
+  CFunc ("GraphInductive","noNodes") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (0,"g")))] []]),
+  CFunc ("GraphInductive","node'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"v"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"v"))] []]),
+  CFunc ("GraphInductive","nodeComp") 2 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"n'")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CVar (1,"n'")),CSymbol ("Prelude","EQ")),(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("Prelude","fst")) (CVar (0,"n")))) (CApply (CSymbol ("Prelude","fst")) (CVar (1,"n'"))),CSymbol ("Prelude","LT")),(CSymbol ("Prelude","otherwise"),CSymbol ("Prelude","GT"))] []]),
+  CFunc ("GraphInductive","nodeRange") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CApply (CSymbol ("FiniteMap","isEmptyFM")) (CVar (0,"g")),CApply (CApply (CSymbol ("Prelude","(,)")) (CLit (CIntc 0))) (CLit (CIntc 0))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CVar (1,"ix")) (CApply (CSymbol ("FiniteMap","minFM")) (CVar (0,"g"))))) (CApply (CVar (1,"ix")) (CApply (CSymbol ("FiniteMap","maxFM")) (CVar (0,"g")))))] [CLocalPat (CPVar (1,"ix")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","fst"))) (CSymbol ("Maybe","fromJust"))) []]]),
+  CFunc ("GraphInductive","nodes") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","fst")))) (CSymbol ("GraphInductive","labNodes")))] []]),
+  CFunc ("GraphInductive","out") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (2,"l"),CPVar (3,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (1,"v"))) (CVar (3,"w"))) (CVar (2,"l"))))) (CApply (CApply (CSymbol ("GraphInductive","context4")) (CVar (0,"g"))) (CVar (1,"v"))))] []]),
+  CFunc ("GraphInductive","out'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"v"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (4,"l"),CPVar (5,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (1,"v"))) (CVar (5,"w"))) (CVar (4,"l"))))) (CVar (3,"s")))] []]),
+  CFunc ("GraphInductive","outdeg") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CSymbol ("Prelude","length"))) (CSymbol ("GraphInductive","context4")))] []]),
+  CFunc ("GraphInductive","outdeg'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","length")) (CVar (3,"s")))] []]),
+  CFunc ("GraphInductive","pre") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd")))) (CSymbol ("GraphInductive","context1")))] []]),
+  CFunc ("GraphInductive","pre'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CVar (0,"p")))] []]),
+  CFunc ("GraphInductive","showGraph") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","unlines")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","showNode"))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"g")))))] []]),
+  CFunc ("GraphInductive","showNode") 1 Private (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","(,,)") [CTVar (1,"b"),CTVar (2,"c"),CTVar (3,"d")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"v"),CPComb ("Prelude","(,,)") [CPVar (1,"_"),CPVar (2,"l'"),CPVar (3,"s")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"v")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"l'")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '>'))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","show")) (CVar (3,"s")))))))] []]),
+  CFunc ("GraphInductive","slabEdges") 0 Private (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("GraphInductive","sortBy")) (CSymbol ("GraphInductive","edgeComp")))) (CSymbol ("GraphInductive","labEdges")))] []]),
+  CFunc ("GraphInductive","slabNodes") 0 Private (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTVar (0,"a")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("GraphInductive","sortBy")) (CSymbol ("GraphInductive","nodeComp")))) (CSymbol ("GraphInductive","labNodes")))] []]),
+  CFunc ("GraphInductive","sortBy") 1 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Ordering") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","mergeSort")) (CLambda [CPVar (1,"x"),CPVar (2,"y")] (CLetDecl [CLocalPat (CPVar (3,"pxy")) (CApply (CApply (CVar (0,"p")) (CVar (1,"x"))) (CVar (2,"y"))) []] (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"pxy"))) (CSymbol ("Prelude","EQ")))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"pxy"))) (CSymbol ("Prelude","LT")))))))] []]),
+  CFunc ("GraphInductive","suc") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd")))) (CSymbol ("GraphInductive","context4")))] []]),
+  CFunc ("GraphInductive","suc'") 1 Public (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CVar (3,"s")))] []]),
+  CFunc ("GraphInductive","ufold") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","(,,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTCons ("Prelude","Int") [],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CFuncType (CTVar (2,"c")) (CTVar (2,"c")))) (CFuncType (CTVar (2,"c")) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (1,"b"),CTVar (0,"a")]) (CTVar (2,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"u"),CPVar (2,"g")] [(CApply (CSymbol ("GraphInductive","isEmpty")) (CVar (2,"g")),CVar (1,"u")),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (0,"f")) (CVar (3,"c"))) (CApply (CApply (CApply (CSymbol ("GraphInductive","ufold")) (CVar (0,"f"))) (CVar (1,"u"))) (CVar (4,"g'"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"c"),CPVar (4,"g'")]) (CApply (CSymbol ("GraphInductive","matchAny")) (CVar (2,"g"))) []]]),
+  CFunc ("GraphInductive","updAdj") 3 Private (CFuncType (CTCons ("FiniteMap","FM") [CTCons ("Prelude","Int") [],CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]) (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]))) (CTCons ("FiniteMap","FM") [CTCons ("Prelude","Int") [],CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]],CTVar (1,"b"),CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","Int") []]]]])))) (CRules CFlex [CRule [CPVar (0,"g"),CPComb ("Prelude","[]") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CVar (0,"g"))] [],CRule [CPVar (2,"g"),CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (3,"l"),CPVar (4,"v")],CPVar (5,"vs")],CPVar (6,"f")] [(CApply (CApply (CSymbol ("FiniteMap","elemFM")) (CVar (4,"v"))) (CVar (2,"g")),CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CApply (CApply (CApply (CSymbol ("FiniteMap","updFM")) (CVar (2,"g"))) (CVar (4,"v"))) (CApply (CVar (6,"f")) (CVar (3,"l"))))) (CVar (5,"vs"))) (CVar (6,"f"))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","show")) (CVar (4,"v")))))] []])]
+ [COp ("GraphInductive",".:") CInfixrOp 5,COp ("GraphInductive",":&") CInfixrOp 5]
diff --git a/src/lib/Curry/Module/.curry/GraphInductive.cy b/src/lib/Curry/Module/.curry/GraphInductive.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/GraphInductive.cy
@@ -0,0 +1,165 @@
+Module "GraphInductive"
+(Just (Exporting (26,23) [(Export (QualIdent Nothing (Ident "empty" 0))),(Export (QualIdent Nothing (Ident "mkGraph" 0))),(Export (QualIdent Nothing (Ident "buildGr" 0))),(Export (QualIdent Nothing (Ident "mkUGraph" 0))),(Export (QualIdent Nothing (Ident ":&" 0))),(Export (QualIdent Nothing (Ident "insNode" 0))),(Export (QualIdent Nothing (Ident "insNodes" 0))),(Export (QualIdent Nothing (Ident "insEdge" 0))),(Export (QualIdent Nothing (Ident "insEdges" 0))),(Export (QualIdent Nothing (Ident "delNode" 0))),(Export (QualIdent Nothing (Ident "delNodes" 0))),(Export (QualIdent Nothing (Ident "delEdge" 0))),(Export (QualIdent Nothing (Ident "delEdges" 0))),(Export (QualIdent Nothing (Ident "isEmpty" 0))),(Export (QualIdent Nothing (Ident "match" 0))),(Export (QualIdent Nothing (Ident "matchAny" 0))),(Export (QualIdent Nothing (Ident "noNodes" 0))),(Export (QualIdent Nothing (Ident "nodeRange" 0))),(Export (QualIdent Nothing (Ident "context" 0))),(Export (QualIdent Nothing (Ident "lab" 0))),(Export (QualIdent Nothing (Ident "neighbors" 0))),(Export (QualIdent Nothing (Ident "suc" 0))),(Export (QualIdent Nothing (Ident "lsuc" 0))),(Export (QualIdent Nothing (Ident "pre" 0))),(Export (QualIdent Nothing (Ident "lpre" 0))),(Export (QualIdent Nothing (Ident "out" 0))),(Export (QualIdent Nothing (Ident "outdeg" 0))),(Export (QualIdent Nothing (Ident "inn" 0))),(Export (QualIdent Nothing (Ident "indeg" 0))),(Export (QualIdent Nothing (Ident "deg" 0))),(Export (QualIdent Nothing (Ident "gelem" 0))),(Export (QualIdent Nothing (Ident "equal" 0))),(Export (QualIdent Nothing (Ident "node'" 0))),(Export (QualIdent Nothing (Ident "lab'" 0))),(Export (QualIdent Nothing (Ident "labNode'" 0))),(Export (QualIdent Nothing (Ident "neighbors'" 0))),(Export (QualIdent Nothing (Ident "suc'" 0))),(Export (QualIdent Nothing (Ident "lsuc'" 0))),(Export (QualIdent Nothing (Ident "pre'" 0))),(Export (QualIdent Nothing (Ident "lpre'" 0))),(Export (QualIdent Nothing (Ident "out'" 0))),(Export (QualIdent Nothing (Ident "outdeg'" 0))),(Export (QualIdent Nothing (Ident "inn'" 0))),(Export (QualIdent Nothing (Ident "indeg'" 0))),(Export (QualIdent Nothing (Ident "deg'" 0))),(Export (QualIdent Nothing (Ident "labNodes" 0))),(Export (QualIdent Nothing (Ident "labEdges" 0))),(Export (QualIdent Nothing (Ident "nodes" 0))),(Export (QualIdent Nothing (Ident "edges" 0))),(Export (QualIdent Nothing (Ident "newNodes" 0))),(Export (QualIdent Nothing (Ident "ufold" 0))),(Export (QualIdent Nothing (Ident "gmap" 0))),(Export (QualIdent Nothing (Ident "nmap" 0))),(Export (QualIdent Nothing (Ident "emap" 0))),(Export (QualIdent Nothing (Ident "labUEdges" 0))),(Export (QualIdent Nothing (Ident "labUNodes" 0))),(Export (QualIdent Nothing (Ident "showGraph" 0))),(Export (QualIdent Nothing (Ident "Graph" 0))),(Export (QualIdent Nothing (Ident "Node" 0))),(Export (QualIdent Nothing (Ident "LNode" 0))),(Export (QualIdent Nothing (Ident "UNode" 0))),(Export (QualIdent Nothing (Ident "Edge" 0))),(Export (QualIdent Nothing (Ident "LEdge" 0))),(Export (QualIdent Nothing (Ident "UEdge" 0))),(Export (QualIdent Nothing (Ident "Context" 0))),(Export (QualIdent Nothing (Ident "MContext" 0))),(Export (QualIdent Nothing (Ident "Context'" 0))),(Export (QualIdent Nothing (Ident "UContext" 0))),(Export (QualIdent Nothing (Ident "GDecomp" 0))),(Export (QualIdent Nothing (Ident "Decomp" 0))),(Export (QualIdent Nothing (Ident "UDecomp" 0))),(Export (QualIdent Nothing (Ident "Path" 0))),(Export (QualIdent Nothing (Ident "LPath" 0))),(Export (QualIdent Nothing (Ident "UPath" 0))),(Export (QualIdent Nothing (Ident "UGr" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (85,1) "FiniteMap" False Nothing Nothing)
+,(ImportDecl (86,1) "Sort" False Nothing (Just (Importing (86,13) [(Import (Ident "mergeSort" 0))])))
+,(ImportDecl (87,1) "Maybe" False Nothing Nothing)
+,(DataDecl (119,1) (Ident "Graph" 0) [(Ident "nodeLabel" 0),(Ident "edgeLabel" 0)] [(ConstrDecl (119,34) [] (Ident "Gr" 0) [(ConstructorType (QualIdent Nothing (Ident "GraphRep" 0)) [(VariableType (Ident "nodeLabel" 0)),(VariableType (Ident "edgeLabel" 0))])])])
+,(TypeDecl (129,1) (Ident "Node" 0) [] (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))
+,(TypeDecl (131,1) (Ident "LNode" 0) [(Ident "a" 0)] (TupleType [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(VariableType (Ident "a" 0))]))
+,(TypeDecl (133,1) (Ident "UNode" 0) [] (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(TupleType [])]))
+,(TypeDecl (138,1) (Ident "Edge" 0) [] (TupleType [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])]))
+,(TypeDecl (140,1) (Ident "LEdge" 0) [(Ident "b" 0)] (TupleType [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(VariableType (Ident "b" 0))]))
+,(TypeDecl (142,1) (Ident "UEdge" 0) [] (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(TupleType [])]))
+,(TypeDecl (148,1) (Ident "Context" 0) [(Ident "a" 0),(Ident "b" 0)] (TupleType [(ConstructorType (QualIdent Nothing (Ident "Adj" 0)) [(VariableType (Ident "b" 0))]),(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Adj" 0)) [(VariableType (Ident "b" 0))])]))
+,(TypeDecl (151,1) (Ident "Adj" 0) [(Ident "b" 0)] (ListType (TupleType [(VariableType (Ident "b" 0)),(ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])])))
+,(TypeDecl (155,1) (Ident "MContext" 0) [(Ident "a" 0),(Ident "b" 0)] (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])]))
+,(TypeDecl (157,1) (Ident "Context'" 0) [(Ident "a" 0),(Ident "b" 0)] (TupleType [(ConstructorType (QualIdent Nothing (Ident "Adj" 0)) [(VariableType (Ident "b" 0))]),(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Adj" 0)) [(VariableType (Ident "b" 0))])]))
+,(TypeDecl (159,1) (Ident "UContext" 0) [] (TupleType [(ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])),(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []))]))
+,(TypeDecl (185,1) (Ident "GDecomp" 0) [(Ident "a" 0),(Ident "b" 0)] (TupleType [(ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]),(ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])]))
+,(TypeDecl (188,1) (Ident "Decomp" 0) [(Ident "a" 0),(Ident "b" 0)] (TupleType [(ConstructorType (QualIdent Nothing (Ident "MContext" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]),(ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])]))
+,(TypeDecl (191,1) (Ident "UDecomp" 0) [(Ident "g" 0)] (TupleType [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "UContext" 0)) [])]),(VariableType (Ident "g" 0))]))
+,(TypeDecl (464,1) (Ident "Path" 0) [] (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])))
+,(TypeDecl (466,1) (Ident "LPath" 0) [(Ident "a" 0)] (ListType (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(VariableType (Ident "a" 0))])))
+,(TypeDecl (468,1) (Ident "UPath" 0) [] (ListType (ConstructorType (QualIdent Nothing (Ident "UNode" 0)) [])))
+,(TypeDecl (470,1) (Ident "GraphRep" 0) [(Ident "a" 0),(Ident "b" 0)] (ConstructorType (QualIdent Nothing (Ident "FM" 0)) [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Context'" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])]))
+,(TypeDecl (473,1) (Ident "UGr" 0) [] (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(TupleType []),(TupleType [])]))
+,(InfixDecl (89,1) InfixR 5 [(Ident ".:" 0)])
+,(InfixDecl (96,1) InfixR 5 [(Ident ":&" 0)])
+,(TypeSig (108,1) [(Ident ":&" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "nl" 0)),(VariableType (Ident "el" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "nl" 0)),(VariableType (Ident "el" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "nl" 0)),(VariableType (Ident "el" 0))]))))
+,(FunctionDecl (109,1) (Ident ":&" 0) [(Equation (109,1) (OpLhs (TuplePattern [(VariablePattern (Ident "p" 2)),(VariablePattern (Ident "v" 2)),(VariablePattern (Ident "l" 2)),(VariablePattern (Ident "s" 2))]) (Ident ":&" 0) (ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 2))]))) (GuardedRhs [(CondExpr (110,3) (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "elemFM" 0))) (Variable (QualIdent Nothing (Ident "v" 2)))) (Variable (QualIdent Nothing (Ident "g" 2)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Paren (InfixApply (Literal (String "Node Exception, Node: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "v" 2)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ": ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "l" 2)))))))))),(CondExpr (111,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Constructor (QualIdent (Just "GraphInductive") (Ident "Gr" 0))) (Variable (QualIdent Nothing (Ident "g3" 3)))))] [(PatternDecl (112,13) (VariablePattern (Ident "g1" 3)) (SimpleRhs (112,18) (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "addToFM" 0))) (Variable (QualIdent Nothing (Ident "g" 2)))) (Variable (QualIdent Nothing (Ident "v" 2)))) (Tuple [(Variable (QualIdent Nothing (Ident "p" 2))),(Variable (QualIdent Nothing (Ident "l" 2))),(Variable (QualIdent Nothing (Ident "s" 2)))])) [])),(PatternDecl (113,13) (VariablePattern (Ident "g2" 3)) (SimpleRhs (113,18) (Apply (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "updAdj" 0))) (Variable (QualIdent Nothing (Ident "g1" 3)))) (Variable (QualIdent Nothing (Ident "p" 2)))) (Paren (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "addSucc" 0))) (Variable (QualIdent Nothing (Ident "v" 2)))))) [])),(PatternDecl (114,13) (VariablePattern (Ident "g3" 3)) (SimpleRhs (114,18) (Apply (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "updAdj" 0))) (Variable (QualIdent Nothing (Ident "g2" 3)))) (Variable (QualIdent Nothing (Ident "s" 2)))) (Paren (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "addPred" 0))) (Variable (QualIdent Nothing (Ident "v" 2)))))) []))]))])
+,(TypeSig (175,1) [(Ident "matchAny" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "GDecomp" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])))
+,(FunctionDecl (176,1) (Ident "matchAny" 0) [(Equation (176,1) (FunLhs (Ident "matchAny" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 7))]))]) (GuardedRhs [(CondExpr (177,3) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "isEmptyFM" 0))) (Variable (QualIdent Nothing (Ident "g" 7)))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Match Exception, Empty Graph")))),(CondExpr (178,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Case (Apply (Variable (QualIdent (Just "Prelude") (Ident "head" 0))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "fmToListPreOrder" 0))) (Variable (QualIdent Nothing (Ident "g" 7)))))) [(Alt (179,19) (TuplePattern [(VariablePattern (Ident "v" 9)),(VariablePattern (Ident "_" 10))]) (SimpleRhs (179,28) (Case (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "match" 0))) (Variable (QualIdent Nothing (Ident "v" 9)))) (Paren (Apply (Constructor (QualIdent (Just "GraphInductive") (Ident "Gr" 0))) (Variable (QualIdent Nothing (Ident "g" 7)))))) [(Alt (180,29) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "c" 12))]),(VariablePattern (Ident "g'" 12))]) (SimpleRhs (180,44) (Tuple [(Variable (QualIdent Nothing (Ident "c" 12))),(Variable (QualIdent Nothing (Ident "g'" 12)))]) []))]) []))]))] []))])
+,(TypeSig (203,1) [(Ident "empty" 0)] (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]))
+,(FunctionDecl (204,1) (Ident "empty" 0) [(Equation (204,1) (FunLhs (Ident "empty" 0) []) (SimpleRhs (204,9) (Apply (Constructor (QualIdent (Just "GraphInductive") (Ident "Gr" 0))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "emptyFM" 0))) (Variable (QualIdent (Just "Prelude") (Ident "<" 0)))))) []))])
+,(TypeSig (207,1) [(Ident "mkGraph" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(VariableType (Ident "a" 0))])) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))])) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (208,1) (Ident "mkGraph" 0) [(Equation (208,1) (FunLhs (Ident "mkGraph" 0) [(VariablePattern (Ident "vs" 16)),(VariablePattern (Ident "es" 16))]) (SimpleRhs (208,18) (Apply (Paren (InfixApply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "insEdges" 0))) (Variable (QualIdent Nothing (Ident "es" 16)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "insNodes" 0))) (Variable (QualIdent Nothing (Ident "vs" 16)))))) (Variable (QualIdent (Just "GraphInductive") (Ident "empty" 0)))) []))])
+,(TypeSig (211,1) [(Ident "buildGr" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])))
+,(FunctionDecl (212,1) (Ident "buildGr" 0) [(Equation (212,1) (FunLhs (Ident "buildGr" 0) []) (SimpleRhs (212,11) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident ":&" 0)))) (Variable (QualIdent (Just "GraphInductive") (Ident "empty" 0)))) []))])
+,(TypeSig (215,1) [(Ident "mkUGraph" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Edge" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(TupleType []),(TupleType [])]))))
+,(FunctionDecl (216,1) (Ident "mkUGraph" 0) [(Equation (216,1) (FunLhs (Ident "mkUGraph" 0) [(VariablePattern (Ident "vs" 20)),(VariablePattern (Ident "es" 20))]) (SimpleRhs (216,18) (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "mkGraph" 0))) (Paren (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "labUNodes" 0))) (Variable (QualIdent Nothing (Ident "vs" 20)))))) (Paren (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "labUEdges" 0))) (Variable (QualIdent Nothing (Ident "es" 20)))))) []))])
+,(TypeSig (224,1) [(Ident "insNode" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (225,1) (Ident "insNode" 0) [(Equation (225,1) (FunLhs (Ident "insNode" 0) [(TuplePattern [(VariablePattern (Ident "v" 22)),(VariablePattern (Ident "l" 22))])]) (SimpleRhs (225,17) (LeftSection (Tuple [(List []),(Variable (QualIdent Nothing (Ident "v" 22))),(Variable (QualIdent Nothing (Ident "l" 22))),(List [])]) (InfixOp (QualIdent (Just "GraphInductive") (Ident ":&" 0)))) []))])
+,(TypeSig (228,1) [(Ident "insEdge" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (229,1) (Ident "insEdge" 0) [(Equation (229,1) (FunLhs (Ident "insEdge" 0) [(TuplePattern [(VariablePattern (Ident "v" 24)),(VariablePattern (Ident "w" 24)),(VariablePattern (Ident "l" 24))]),(VariablePattern (Ident "g" 24))]) (SimpleRhs (229,21) (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "pr" 25))),(Variable (QualIdent Nothing (Ident "v" 24))),(Variable (QualIdent Nothing (Ident "la" 25))),(InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "l" 24))),(Variable (QualIdent Nothing (Ident "w" 24)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "su" 25))))]) (InfixOp (QualIdent (Just "GraphInductive") (Ident ":&" 0))) (Variable (QualIdent Nothing (Ident "g'" 25)))) [(PatternDecl (230,27) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(TuplePattern [(VariablePattern (Ident "pr" 25)),(VariablePattern (Ident "_" 26)),(VariablePattern (Ident "la" 25)),(VariablePattern (Ident "su" 25))])]),(VariablePattern (Ident "g'" 25))]) (SimpleRhs (230,52) (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "match" 0))) (Variable (QualIdent Nothing (Ident "v" 24)))) (Variable (QualIdent Nothing (Ident "g" 24)))) []))]))])
+,(TypeSig (233,1) [(Ident "delNode" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (234,1) (Ident "delNode" 0) [(Equation (234,1) (FunLhs (Ident "delNode" 0) [(VariablePattern (Ident "v" 28))]) (SimpleRhs (234,13) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "delNodes" 0))) (List [(Variable (QualIdent Nothing (Ident "v" 28)))])) []))])
+,(TypeSig (237,1) [(Ident "delEdge" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Edge" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (238,1) (Ident "delEdge" 0) [(Equation (238,1) (FunLhs (Ident "delEdge" 0) [(TuplePattern [(VariablePattern (Ident "v" 30)),(VariablePattern (Ident "w" 30))]),(VariablePattern (Ident "g" 30))]) (SimpleRhs (238,19) (Case (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "match" 0))) (Variable (QualIdent Nothing (Ident "v" 30)))) (Variable (QualIdent Nothing (Ident "g" 30)))) [(Alt (239,19) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) []),(VariablePattern (Ident "_" 33))]) (SimpleRhs (239,41) (Variable (QualIdent Nothing (Ident "g" 30))) [])),(Alt (240,19) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(TuplePattern [(VariablePattern (Ident "p" 35)),(VariablePattern (Ident "v'" 35)),(VariablePattern (Ident "l" 35)),(VariablePattern (Ident "s" 35))])]),(VariablePattern (Ident "g'" 35))]) (SimpleRhs (240,43) (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "p" 35))),(Variable (QualIdent Nothing (Ident "v'" 35))),(Variable (QualIdent Nothing (Ident "l" 35))),(Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Variable (QualIdent Nothing (Ident "w" 30)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))))) (Variable (QualIdent Nothing (Ident "s" 35))))]) (InfixOp (QualIdent (Just "GraphInductive") (Ident ":&" 0))) (Variable (QualIdent Nothing (Ident "g'" 35)))) []))]) []))])
+,(TypeSig (243,1) [(Ident "insNodes" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(VariableType (Ident "a" 0))])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (244,1) (Ident "insNodes" 0) [(Equation (244,1) (FunLhs (Ident "insNodes" 0) [(VariablePattern (Ident "vs" 37)),(VariablePattern (Ident "g" 37))]) (SimpleRhs (244,17) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "insNode" 0)))) (Variable (QualIdent Nothing (Ident "g" 37)))) (Variable (QualIdent Nothing (Ident "vs" 37)))) []))])
+,(TypeSig (247,1) [(Ident "insEdges" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (248,1) (Ident "insEdges" 0) [(Equation (248,1) (FunLhs (Ident "insEdges" 0) [(VariablePattern (Ident "es" 39)),(VariablePattern (Ident "g" 39))]) (SimpleRhs (248,17) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "insEdge" 0)))) (Variable (QualIdent Nothing (Ident "g" 39)))) (Variable (QualIdent Nothing (Ident "es" 39)))) []))])
+,(TypeSig (251,1) [(Ident "delNodes" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (252,1) (Ident "delNodes" 0) [(Equation (252,1) (FunLhs (Ident "delNodes" 0) [(ListPattern []),(VariablePattern (Ident "g" 41))]) (SimpleRhs (252,21) (Variable (QualIdent Nothing (Ident "g" 41))) [])),(Equation (253,1) (FunLhs (Ident "delNodes" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "v" 43)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "vs" 43)))),(VariablePattern (Ident "g" 43))]) (SimpleRhs (253,21) (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "delNodes" 0))) (Variable (QualIdent Nothing (Ident "vs" 43)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "snd" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "match" 0))) (Variable (QualIdent Nothing (Ident "v" 43)))) (Variable (QualIdent Nothing (Ident "g" 43)))))))) []))])
+,(TypeSig (256,1) [(Ident "delEdges" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Edge" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (257,1) (Ident "delEdges" 0) [(Equation (257,1) (FunLhs (Ident "delEdges" 0) [(VariablePattern (Ident "es" 45)),(VariablePattern (Ident "g" 45))]) (SimpleRhs (257,17) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "delEdge" 0)))) (Variable (QualIdent Nothing (Ident "g" 45)))) (Variable (QualIdent Nothing (Ident "es" 45)))) []))])
+,(TypeSig (265,1) [(Ident "isEmpty" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (266,1) (Ident "isEmpty" 0) [(Equation (266,1) (FunLhs (Ident "isEmpty" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 47))]))]) (SimpleRhs (266,19) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "isEmptyFM" 0))) (Variable (QualIdent Nothing (Ident "g" 47)))) []))])
+,(TypeSig (270,1) [(Ident "match" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Decomp" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (271,1) (Ident "match" 0) [(Equation (271,1) (FunLhs (Ident "match" 0) [(VariablePattern (Ident "v" 49)),(ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 49))]))]) (SimpleRhs (272,3) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Tuple [(Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))),(Apply (Constructor (QualIdent (Just "GraphInductive") (Ident "Gr" 0))) (Variable (QualIdent Nothing (Ident "g" 49))))])) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "g'" 51)),(TuplePattern [(VariablePattern (Ident "_" 52)),(TuplePattern [(VariablePattern (Ident "p" 51)),(VariablePattern (Ident "l" 51)),(VariablePattern (Ident "s" 51))])])])] (Let [(PatternDecl (275,18) (VariablePattern (Ident "s'" 53)) (SimpleRhs (275,25) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Variable (QualIdent Nothing (Ident "v" 49)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))))) (Variable (QualIdent Nothing (Ident "s" 51)))) [])),(PatternDecl (276,18) (VariablePattern (Ident "p'" 53)) (SimpleRhs (276,25) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Variable (QualIdent Nothing (Ident "v" 49)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))))) (Variable (QualIdent Nothing (Ident "p" 51)))) [])),(PatternDecl (277,18) (VariablePattern (Ident "g1" 53)) (SimpleRhs (277,25) (Apply (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "updAdj" 0))) (Variable (QualIdent Nothing (Ident "g'" 51)))) (Variable (QualIdent Nothing (Ident "s'" 53)))) (Paren (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "clearPred" 0))) (Variable (QualIdent Nothing (Ident "v" 49)))))) [])),(PatternDecl (278,18) (VariablePattern (Ident "g2" 53)) (SimpleRhs (278,25) (Apply (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "updAdj" 0))) (Variable (QualIdent Nothing (Ident "g1" 53)))) (Variable (QualIdent Nothing (Ident "p'" 53)))) (Paren (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "clearSucc" 0))) (Variable (QualIdent Nothing (Ident "v" 49)))))) []))] (Tuple [(Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "p'" 53))),(Variable (QualIdent Nothing (Ident "v" 49))),(Variable (QualIdent Nothing (Ident "l" 51))),(Variable (QualIdent Nothing (Ident "s" 51)))])),(Apply (Constructor (QualIdent (Just "GraphInductive") (Ident "Gr" 0))) (Variable (QualIdent Nothing (Ident "g2" 53))))]))))) (Paren (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "splitFM" 0))) (Variable (QualIdent Nothing (Ident "g" 49)))) (Variable (QualIdent Nothing (Ident "v" 49)))))) []))])
+,(TypeSig (285,1) [(Ident "noNodes" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (286,1) (Ident "noNodes" 0) [(Equation (286,1) (FunLhs (Ident "noNodes" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 58))]))]) (SimpleRhs (286,20) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "sizeFM" 0))) (Variable (QualIdent Nothing (Ident "g" 58)))) []))])
+,(TypeSig (289,1) [(Ident "nodeRange" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (TupleType [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])])))
+,(FunctionDecl (290,1) (Ident "nodeRange" 0) [(Equation (290,1) (FunLhs (Ident "nodeRange" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 60))]))]) (GuardedRhs [(CondExpr (290,18) (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "isEmptyFM" 0))) (Variable (QualIdent Nothing (Ident "g" 60)))) (Tuple [(Literal (Int (Ident "_" 63) 0)),(Literal (Int (Ident "_" 64) 0))])),(CondExpr (291,18) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Tuple [(Apply (Variable (QualIdent Nothing (Ident "ix" 61))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "minFM" 0))) (Variable (QualIdent Nothing (Ident "g" 60)))))),(Apply (Variable (QualIdent Nothing (Ident "ix" 61))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "maxFM" 0))) (Variable (QualIdent Nothing (Ident "g" 60))))))]))] [(PatternDecl (291,66) (VariablePattern (Ident "ix" 61)) (SimpleRhs (291,71) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Maybe") (Ident "fromJust" 0)))) []))]))])
+,(TypeSig (297,1) [(Ident "context" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (298,1) (Ident "context" 0) [(Equation (298,1) (FunLhs (Ident "context" 0) [(VariablePattern (Ident "g" 65)),(VariablePattern (Ident "v" 65))]) (SimpleRhs (298,15) (Case (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "match" 0))) (Variable (QualIdent Nothing (Ident "v" 65)))) (Variable (QualIdent Nothing (Ident "g" 65)))) [(Alt (299,17) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) []),(VariablePattern (Ident "_" 68))]) (SimpleRhs (299,32) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Paren (InfixApply (Literal (String "Match Exception, Node: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "v" 65))))))) [])),(Alt (300,17) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "c" 70))]),(VariablePattern (Ident "_" 71))]) (SimpleRhs (300,32) (Variable (QualIdent Nothing (Ident "c" 70))) []))]) []))])
+,(TypeSig (303,1) [(Ident "lab" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "_" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (304,1) (Ident "lab" 0) [(Equation (304,1) (FunLhs (Ident "lab" 0) [(VariablePattern (Ident "g" 73)),(VariablePattern (Ident "v" 73))]) (SimpleRhs (304,11) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "match" 0))) (Variable (QualIdent Nothing (Ident "v" 73)))) (Variable (QualIdent Nothing (Ident "g" 73)))))) (InfixOp (QualIdent (Just "Maybe") (Ident ">>-" 0))) (InfixApply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "lab'" 0))))) []))])
+,(TypeSig (307,1) [(Ident "neighbors" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])))))
+,(FunctionDecl (308,1) (Ident "neighbors" 0) [(Equation (308,1) (FunLhs (Ident "neighbors" 0) []) (SimpleRhs (308,13) (InfixApply (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "p" 77)),(VariablePattern (Ident "_" 78)),(VariablePattern (Ident "_" 79)),(VariablePattern (Ident "s" 77))])] (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 77))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "s" 77)))))))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context" 0)))) []))])
+,(TypeSig (311,1) [(Ident "suc" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])))))
+,(FunctionDecl (312,1) (Ident "suc" 0) [(Equation (312,1) (FunLhs (Ident "suc" 0) []) (SimpleRhs (312,7) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context4" 0)))) []))])
+,(TypeSig (315,1) [(Ident "pre" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])))))
+,(FunctionDecl (316,1) (Ident "pre" 0) [(Equation (316,1) (FunLhs (Ident "pre" 0) []) (SimpleRhs (316,7) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context1" 0)))) []))])
+,(TypeSig (319,1) [(Ident "lsuc" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ListType (TupleType [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (320,1) (Ident "lsuc" 0) [(Equation (320,1) (FunLhs (Ident "lsuc" 0) []) (SimpleRhs (320,8) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "flip2" 0)))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context4" 0)))) []))])
+,(TypeSig (323,1) [(Ident "lpre" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ListType (TupleType [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (324,1) (Ident "lpre" 0) [(Equation (324,1) (FunLhs (Ident "lpre" 0) []) (SimpleRhs (324,8) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "flip2" 0)))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context1" 0)))) []))])
+,(TypeSig (327,1) [(Ident "out" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (328,1) (Ident "out" 0) [(Equation (328,1) (FunLhs (Ident "out" 0) [(VariablePattern (Ident "g" 88)),(VariablePattern (Ident "v" 88))]) (SimpleRhs (328,11) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "l" 90)),(VariablePattern (Ident "w" 90))])] (Tuple [(Variable (QualIdent Nothing (Ident "v" 88))),(Variable (QualIdent Nothing (Ident "w" 90))),(Variable (QualIdent Nothing (Ident "l" 90)))])))) (Paren (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "context4" 0))) (Variable (QualIdent Nothing (Ident "g" 88)))) (Variable (QualIdent Nothing (Ident "v" 88)))))) []))])
+,(TypeSig (331,1) [(Ident "inn" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (332,1) (Ident "inn" 0) [(Equation (332,1) (FunLhs (Ident "inn" 0) [(VariablePattern (Ident "g" 91)),(VariablePattern (Ident "v" 91))]) (SimpleRhs (332,11) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "l" 93)),(VariablePattern (Ident "w" 93))])] (Tuple [(Variable (QualIdent Nothing (Ident "w" 93))),(Variable (QualIdent Nothing (Ident "v" 91))),(Variable (QualIdent Nothing (Ident "l" 93)))])))) (Paren (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "context1" 0))) (Variable (QualIdent Nothing (Ident "g" 91)))) (Variable (QualIdent Nothing (Ident "v" 91)))))) []))])
+,(TypeSig (335,1) [(Ident "outdeg" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (336,1) (Ident "outdeg" 0) [(Equation (336,1) (FunLhs (Ident "outdeg" 0) []) (SimpleRhs (336,10) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context4" 0)))) []))])
+,(TypeSig (339,1) [(Ident "indeg" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (340,1) (Ident "indeg" 0) [(Equation (340,1) (FunLhs (Ident "indeg" 0) []) (SimpleRhs (340,10) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context1" 0)))) []))])
+,(TypeSig (343,1) [(Ident "deg" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (344,1) (Ident "deg" 0) [(Equation (344,1) (FunLhs (Ident "deg" 0) []) (SimpleRhs (344,7) (InfixApply (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "p" 100)),(VariablePattern (Ident "_" 101)),(VariablePattern (Ident "_" 102)),(VariablePattern (Ident "s" 100))])] (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "p" 100)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "s" 100))))))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context" 0)))) []))])
+,(TypeSig (347,1) [(Ident "gelem" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (348,1) (Ident "gelem" 0) [(Equation (348,1) (FunLhs (Ident "gelem" 0) [(VariablePattern (Ident "v" 103)),(VariablePattern (Ident "g" 103))]) (SimpleRhs (348,13) (Apply (Variable (QualIdent (Just "Maybe") (Ident "isJust" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "match" 0))) (Variable (QualIdent Nothing (Ident "v" 103)))) (Variable (QualIdent Nothing (Ident "g" 103)))))))) []))])
+,(TypeSig (352,1) [(Ident "equal" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (353,1) (Ident "equal" 0) [(Equation (353,1) (FunLhs (Ident "equal" 0) [(VariablePattern (Ident "g" 105)),(VariablePattern (Ident "g'" 105))]) (SimpleRhs (353,14) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "slabNodes" 0))) (Variable (QualIdent Nothing (Ident "g" 105)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "slabNodes" 0))) (Variable (QualIdent Nothing (Ident "g'" 105))))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "slabEdges" 0))) (Variable (QualIdent Nothing (Ident "g" 105)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "slabEdges" 0))) (Variable (QualIdent Nothing (Ident "g'" 105)))))) []))])
+,(TypeSig (356,1) [(Ident "nodeComp" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (357,1) (Ident "nodeComp" 0) [(Equation (357,1) (FunLhs (Ident "nodeComp" 0) [(VariablePattern (Ident "n" 107)),(VariablePattern (Ident "n'" 107))]) (GuardedRhs [(CondExpr (357,15) (InfixApply (Variable (QualIdent Nothing (Ident "n" 107))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "n'" 107)))) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0)))),(CondExpr (358,15) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Variable (QualIdent Nothing (Ident "n" 107)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Variable (QualIdent Nothing (Ident "n'" 107))))) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0)))),(CondExpr (359,15) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))))] []))])
+,(TypeSig (362,1) [(Ident "slabNodes" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "_" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (363,1) (Ident "slabNodes" 0) [(Equation (363,1) (FunLhs (Ident "slabNodes" 0) []) (SimpleRhs (363,13) (InfixApply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "sortBy" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "nodeComp" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "labNodes" 0)))) []))])
+,(TypeSig (366,1) [(Ident "edgeComp" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (367,1) (Ident "edgeComp" 0) [(Equation (367,1) (FunLhs (Ident "edgeComp" 0) [(VariablePattern (Ident "e" 111)),(VariablePattern (Ident "e'" 111))]) (GuardedRhs [(CondExpr (367,15) (InfixApply (Variable (QualIdent Nothing (Ident "e" 111))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "e'" 111)))) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0)))),(CondExpr (368,15) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "v" 112))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "x" 112)))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "v" 112))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "x" 112)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "w" 112))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "y" 112))))))) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0)))),(CondExpr (369,15) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))))] [(PatternDecl (372,5) (TuplePattern [(VariablePattern (Ident "v" 112)),(VariablePattern (Ident "w" 112)),(VariablePattern (Ident "_" 113))]) (SimpleRhs (372,15) (Variable (QualIdent Nothing (Ident "e" 111))) [])),(PatternDecl (373,5) (TuplePattern [(VariablePattern (Ident "x" 112)),(VariablePattern (Ident "y" 112)),(VariablePattern (Ident "_" 114))]) (SimpleRhs (373,15) (Variable (QualIdent Nothing (Ident "e'" 111))) []))]))])
+,(TypeSig (376,1) [(Ident "slabEdges" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (377,1) (Ident "slabEdges" 0) [(Equation (377,1) (FunLhs (Ident "slabEdges" 0) []) (SimpleRhs (377,13) (InfixApply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "sortBy" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "edgeComp" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "labEdges" 0)))) []))])
+,(TypeSig (384,1) [(Ident "node'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])))
+,(FunctionDecl (385,1) (Ident "node'" 0) [(Equation (385,1) (FunLhs (Ident "node'" 0) [(TuplePattern [(VariablePattern (Ident "_" 120)),(VariablePattern (Ident "v" 119)),(VariablePattern (Ident "_" 121)),(VariablePattern (Ident "_" 122))])]) (SimpleRhs (385,19) (Variable (QualIdent Nothing (Ident "v" 119))) []))])
+,(TypeSig (388,1) [(Ident "lab'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "_" 0))]) (VariableType (Ident "a" 0))))
+,(FunctionDecl (389,1) (Ident "lab'" 0) [(Equation (389,1) (FunLhs (Ident "lab'" 0) [(TuplePattern [(VariablePattern (Ident "_" 125)),(VariablePattern (Ident "_" 126)),(VariablePattern (Ident "l" 124)),(VariablePattern (Ident "_" 127))])]) (SimpleRhs (389,18) (Variable (QualIdent Nothing (Ident "l" 124))) []))])
+,(TypeSig (392,1) [(Ident "labNode'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "LNode" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (393,1) (Ident "labNode'" 0) [(Equation (393,1) (FunLhs (Ident "labNode'" 0) [(TuplePattern [(VariablePattern (Ident "_" 130)),(VariablePattern (Ident "v" 129)),(VariablePattern (Ident "l" 129)),(VariablePattern (Ident "_" 131))])]) (SimpleRhs (393,22) (Tuple [(Variable (QualIdent Nothing (Ident "v" 129))),(Variable (QualIdent Nothing (Ident "l" 129)))]) []))])
+,(TypeSig (396,1) [(Ident "neighbors'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []))))
+,(FunctionDecl (397,1) (Ident "neighbors'" 0) [(Equation (397,1) (FunLhs (Ident "neighbors'" 0) [(TuplePattern [(VariablePattern (Ident "p" 133)),(VariablePattern (Ident "_" 134)),(VariablePattern (Ident "_" 135)),(VariablePattern (Ident "s" 133))])]) (SimpleRhs (397,24) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))) (Variable (QualIdent Nothing (Ident "p" 133)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))) (Variable (QualIdent Nothing (Ident "s" 133))))) []))])
+,(TypeSig (400,1) [(Ident "suc'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []))))
+,(FunctionDecl (401,1) (Ident "suc'" 0) [(Equation (401,1) (FunLhs (Ident "suc'" 0) [(TuplePattern [(VariablePattern (Ident "_" 138)),(VariablePattern (Ident "_" 139)),(VariablePattern (Ident "_" 140)),(VariablePattern (Ident "s" 137))])]) (SimpleRhs (401,18) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))) (Variable (QualIdent Nothing (Ident "s" 137)))) []))])
+,(TypeSig (404,1) [(Ident "pre'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []))))
+,(FunctionDecl (405,1) (Ident "pre'" 0) [(Equation (405,1) (FunLhs (Ident "pre'" 0) [(TuplePattern [(VariablePattern (Ident "p" 142)),(VariablePattern (Ident "_" 143)),(VariablePattern (Ident "_" 144)),(VariablePattern (Ident "_" 145))])]) (SimpleRhs (405,18) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))) (Variable (QualIdent Nothing (Ident "p" 142)))) []))])
+,(TypeSig (408,1) [(Ident "lpre'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ListType (TupleType [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (409,1) (Ident "lpre'" 0) [(Equation (409,1) (FunLhs (Ident "lpre'" 0) [(TuplePattern [(VariablePattern (Ident "p" 147)),(VariablePattern (Ident "_" 148)),(VariablePattern (Ident "_" 149)),(VariablePattern (Ident "_" 150))])]) (SimpleRhs (409,19) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "flip2" 0)))) (Variable (QualIdent Nothing (Ident "p" 147)))) []))])
+,(TypeSig (412,1) [(Ident "lsuc'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ListType (TupleType [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) []),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (413,1) (Ident "lsuc'" 0) [(Equation (413,1) (FunLhs (Ident "lsuc'" 0) [(TuplePattern [(VariablePattern (Ident "_" 153)),(VariablePattern (Ident "_" 154)),(VariablePattern (Ident "_" 155)),(VariablePattern (Ident "s" 152))])]) (SimpleRhs (413,19) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "flip2" 0)))) (Variable (QualIdent Nothing (Ident "s" 152)))) []))])
+,(TypeSig (416,1) [(Ident "out'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (417,1) (Ident "out'" 0) [(Equation (417,1) (FunLhs (Ident "out'" 0) [(TuplePattern [(VariablePattern (Ident "_" 158)),(VariablePattern (Ident "v" 157)),(VariablePattern (Ident "_" 159)),(VariablePattern (Ident "s" 157))])]) (SimpleRhs (417,18) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "l" 161)),(VariablePattern (Ident "w" 161))])] (Tuple [(Variable (QualIdent Nothing (Ident "v" 157))),(Variable (QualIdent Nothing (Ident "w" 161))),(Variable (QualIdent Nothing (Ident "l" 161)))])))) (Variable (QualIdent Nothing (Ident "s" 157)))) []))])
+,(TypeSig (420,1) [(Ident "inn'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (421,1) (Ident "inn'" 0) [(Equation (421,1) (FunLhs (Ident "inn'" 0) [(TuplePattern [(VariablePattern (Ident "p" 162)),(VariablePattern (Ident "v" 162)),(VariablePattern (Ident "_" 163)),(VariablePattern (Ident "_" 164))])]) (SimpleRhs (421,18) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "l" 166)),(VariablePattern (Ident "w" 166))])] (Tuple [(Variable (QualIdent Nothing (Ident "w" 166))),(Variable (QualIdent Nothing (Ident "v" 162))),(Variable (QualIdent Nothing (Ident "l" 166)))])))) (Variable (QualIdent Nothing (Ident "p" 162)))) []))])
+,(TypeSig (424,1) [(Ident "outdeg'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (425,1) (Ident "outdeg'" 0) [(Equation (425,1) (FunLhs (Ident "outdeg'" 0) [(TuplePattern [(VariablePattern (Ident "_" 168)),(VariablePattern (Ident "_" 169)),(VariablePattern (Ident "_" 170)),(VariablePattern (Ident "s" 167))])]) (SimpleRhs (425,21) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "s" 167)))) []))])
+,(TypeSig (428,1) [(Ident "indeg'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (429,1) (Ident "indeg'" 0) [(Equation (429,1) (FunLhs (Ident "indeg'" 0) [(TuplePattern [(VariablePattern (Ident "p" 172)),(VariablePattern (Ident "_" 173)),(VariablePattern (Ident "_" 174)),(VariablePattern (Ident "_" 175))])]) (SimpleRhs (429,20) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "p" 172)))) []))])
+,(TypeSig (432,1) [(Ident "deg'" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (433,1) (Ident "deg'" 0) [(Equation (433,1) (FunLhs (Ident "deg'" 0) [(TuplePattern [(VariablePattern (Ident "p" 177)),(VariablePattern (Ident "_" 178)),(VariablePattern (Ident "_" 179)),(VariablePattern (Ident "s" 177))])]) (SimpleRhs (433,18) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "p" 177)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "s" 177))))) []))])
+,(FunctionDecl (440,1) (Ident "labNodes" 0) [(Equation (440,1) (FunLhs (Ident "labNodes" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 181))]))]) (SimpleRhs (440,19) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "v" 183)),(TuplePattern [(VariablePattern (Ident "_" 184)),(VariablePattern (Ident "l" 183)),(VariablePattern (Ident "_" 185))])])] (Tuple [(Variable (QualIdent Nothing (Ident "v" 183))),(Variable (QualIdent Nothing (Ident "l" 183)))])))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "fmToList" 0))) (Variable (QualIdent Nothing (Ident "g" 181)))))) []))])
+,(TypeSig (443,1) [(Ident "labEdges" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "LEdge" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (444,1) (Ident "labEdges" 0) [(Equation (444,1) (FunLhs (Ident "labEdges" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 186))]))]) (SimpleRhs (444,20) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "concatMap" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "v" 188)),(TuplePattern [(VariablePattern (Ident "_" 189)),(VariablePattern (Ident "_" 190)),(VariablePattern (Ident "s" 188))])])] (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "l" 191)),(VariablePattern (Ident "w" 191))])] (Tuple [(Variable (QualIdent Nothing (Ident "v" 188))),(Variable (QualIdent Nothing (Ident "w" 191))),(Variable (QualIdent Nothing (Ident "l" 191)))])))) (Variable (QualIdent Nothing (Ident "s" 188))))))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "fmToList" 0))) (Variable (QualIdent Nothing (Ident "g" 186)))))) []))])
+,(TypeSig (447,1) [(Ident "nodes" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []))))
+,(FunctionDecl (448,1) (Ident "nodes" 0) [(Equation (448,1) (FunLhs (Ident "nodes" 0) []) (SimpleRhs (448,9) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "fst" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "labNodes" 0)))) []))])
+,(TypeSig (451,1) [(Ident "edges" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "Edge" 0)) []))))
+,(FunctionDecl (452,1) (Ident "edges" 0) [(Equation (452,1) (FunLhs (Ident "edges" 0) []) (SimpleRhs (452,9) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "v" 196)),(VariablePattern (Ident "w" 196)),(VariablePattern (Ident "_" 197))])] (Tuple [(Variable (QualIdent Nothing (Ident "v" 196))),(Variable (QualIdent Nothing (Ident "w" 196)))])))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "labEdges" 0)))) []))])
+,(TypeSig (455,1) [(Ident "newNodes" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ListType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])))))
+,(FunctionDecl (456,1) (Ident "newNodes" 0) [(Equation (456,1) (FunLhs (Ident "newNodes" 0) [(VariablePattern (Ident "i" 198)),(VariablePattern (Ident "g" 198))]) (SimpleRhs (456,16) (EnumFromTo (InfixApply (Variable (QualIdent Nothing (Ident "n" 199))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 202) 1))) (InfixApply (Variable (QualIdent Nothing (Ident "n" 199))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "i" 198))))) [(PatternDecl (456,33) (TuplePattern [(VariablePattern (Ident "_" 200)),(VariablePattern (Ident "n" 199))]) (SimpleRhs (456,41) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "nodeRange" 0))) (Variable (QualIdent Nothing (Ident "g" 198)))) []))]))])
+,(TypeSig (480,1) [(Ident "ufold" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (VariableType (Ident "c" 0)) (VariableType (Ident "c" 0)))) (ArrowType (VariableType (Ident "c" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (VariableType (Ident "c" 0))))))
+,(FunctionDecl (481,1) (Ident "ufold" 0) [(Equation (481,1) (FunLhs (Ident "ufold" 0) [(VariablePattern (Ident "f" 203)),(VariablePattern (Ident "u" 203)),(VariablePattern (Ident "g" 203))]) (GuardedRhs [(CondExpr (481,13) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "isEmpty" 0))) (Variable (QualIdent Nothing (Ident "g" 203)))) (Variable (QualIdent Nothing (Ident "u" 203)))),(CondExpr (482,13) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 203))) (Variable (QualIdent Nothing (Ident "c" 204)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "ufold" 0))) (Variable (QualIdent Nothing (Ident "f" 203)))) (Variable (QualIdent Nothing (Ident "u" 203)))) (Variable (QualIdent Nothing (Ident "g'" 204)))))))] [(PatternDecl (483,19) (TuplePattern [(VariablePattern (Ident "c" 204)),(VariablePattern (Ident "g'" 204))]) (SimpleRhs (483,28) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "matchAny" 0))) (Variable (QualIdent Nothing (Ident "g" 203)))) []))]))])
+,(TypeSig (486,1) [(Ident "gmap" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Context" 0)) [(VariableType (Ident "c" 0)),(VariableType (Ident "d" 0))])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "c" 0)),(VariableType (Ident "d" 0))]))))
+,(FunctionDecl (487,1) (Ident "gmap" 0) [(Equation (487,1) (FunLhs (Ident "gmap" 0) [(VariablePattern (Ident "f" 206))]) (SimpleRhs (487,10) (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "ufold" 0))) (Paren (Lambda [(VariablePattern (Ident "c" 208))] (LeftSection (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 206))) (Variable (QualIdent Nothing (Ident "c" 208))))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ":&" 0))))))) (Variable (QualIdent (Just "GraphInductive") (Ident "empty" 0)))) []))])
+,(TypeSig (490,1) [(Ident "nmap" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "c" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "c" 0)),(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (491,1) (Ident "nmap" 0) [(Equation (491,1) (FunLhs (Ident "nmap" 0) [(VariablePattern (Ident "f" 209))]) (SimpleRhs (491,10) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "gmap" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "p" 211)),(VariablePattern (Ident "v" 211)),(VariablePattern (Ident "l" 211)),(VariablePattern (Ident "s" 211))])] (Tuple [(Variable (QualIdent Nothing (Ident "p" 211))),(Variable (QualIdent Nothing (Ident "v" 211))),(Apply (Variable (QualIdent Nothing (Ident "f" 209))) (Variable (QualIdent Nothing (Ident "l" 211)))),(Variable (QualIdent Nothing (Ident "s" 211)))])))) []))])
+,(TypeSig (494,1) [(Ident "emap" 0)] (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "c" 0))]))))
+,(FunctionDecl (495,1) (Ident "emap" 0) [(Equation (495,1) (FunLhs (Ident "emap" 0) [(VariablePattern (Ident "f" 212))]) (SimpleRhs (495,10) (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "gmap" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "p" 217)),(VariablePattern (Ident "v" 217)),(VariablePattern (Ident "l" 217)),(VariablePattern (Ident "s" 217))])] (Tuple [(Apply (Apply (Variable (QualIdent Nothing (Ident "map1" 213))) (Variable (QualIdent Nothing (Ident "f" 212)))) (Variable (QualIdent Nothing (Ident "p" 217)))),(Variable (QualIdent Nothing (Ident "v" 217))),(Variable (QualIdent Nothing (Ident "l" 217))),(Apply (Apply (Variable (QualIdent Nothing (Ident "map1" 213))) (Variable (QualIdent Nothing (Ident "f" 212)))) (Variable (QualIdent Nothing (Ident "s" 217))))])))) [(FunctionDecl (496,16) (Ident "map1" 213) [(Equation (496,16) (FunLhs (Ident "map1" 213) [(VariablePattern (Ident "g" 214))]) (SimpleRhs (496,25) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "l" 216)),(VariablePattern (Ident "v" 216))])] (Tuple [(Apply (Variable (QualIdent Nothing (Ident "g" 214))) (Variable (QualIdent Nothing (Ident "l" 216)))),(Variable (QualIdent Nothing (Ident "v" 216)))])))) []))])]))])
+,(FunctionDecl (499,1) (Ident "labUEdges" 0) [(Equation (499,1) (FunLhs (Ident "labUEdges" 0) []) (SimpleRhs (499,13) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(TuplePattern [(VariablePattern (Ident "v" 220)),(VariablePattern (Ident "w" 220))])] (Tuple [(Variable (QualIdent Nothing (Ident "v" 220))),(Variable (QualIdent Nothing (Ident "w" 220))),(Tuple [])])))) []))])
+,(FunctionDecl (502,1) (Ident "labUNodes" 0) [(Equation (502,1) (FunLhs (Ident "labUNodes" 0) []) (SimpleRhs (502,13) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(VariablePattern (Ident "v" 223))] (Tuple [(Variable (QualIdent Nothing (Ident "v" 223))),(Tuple [])])))) []))])
+,(TypeSig (509,1) [(Ident "showGraph" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (510,1) (Ident "showGraph" 0) [(Equation (510,1) (FunLhs (Ident "showGraph" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "GraphInductive") (Ident "Gr" 0)) [(VariablePattern (Ident "g" 224))]))]) (SimpleRhs (510,20) (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "showNode" 0)))) (Paren (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "fmToList" 0))) (Variable (QualIdent Nothing (Ident "g" 224)))))))) []))])
+,(FunctionDecl (513,1) (Ident "showNode" 0) [(Equation (513,1) (FunLhs (Ident "showNode" 0) [(TuplePattern [(VariablePattern (Ident "v" 226)),(TuplePattern [(VariablePattern (Ident "_" 227)),(VariablePattern (Ident "l'" 226)),(VariablePattern (Ident "s" 226))])])]) (SimpleRhs (513,25) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "v" 226)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ":")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "l'" 226)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "->")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "s" 226)))))))) []))])
+,(TypeSig (521,1) [(Ident ".:" 0)] (ArrowType (ArrowType (VariableType (Ident "c" 0)) (VariableType (Ident "d" 0))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "d" 0)))))))
+,(FunctionDecl (526,1) (Ident ".:" 0) [(Equation (526,1) (FunLhs (Ident ".:" 0) []) (SimpleRhs (526,8) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "." 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "." 0)))) []))])
+,(FunctionDecl (528,1) (Ident "fst4" 0) [(Equation (528,1) (FunLhs (Ident "fst4" 0) [(TuplePattern [(VariablePattern (Ident "x" 231)),(VariablePattern (Ident "_" 232)),(VariablePattern (Ident "_" 233)),(VariablePattern (Ident "_" 234))])]) (SimpleRhs (528,18) (Variable (QualIdent Nothing (Ident "x" 231))) []))])
+,(FunctionDecl (533,1) (Ident "fth4" 0) [(Equation (533,1) (FunLhs (Ident "fth4" 0) [(TuplePattern [(VariablePattern (Ident "_" 237)),(VariablePattern (Ident "_" 238)),(VariablePattern (Ident "_" 239)),(VariablePattern (Ident "x" 236))])]) (SimpleRhs (533,18) (Variable (QualIdent Nothing (Ident "x" 236))) []))])
+,(FunctionDecl (541,1) (Ident "flip2" 0) [(Equation (541,1) (FunLhs (Ident "flip2" 0) [(TuplePattern [(VariablePattern (Ident "x" 241)),(VariablePattern (Ident "y" 241))])]) (SimpleRhs (541,15) (Tuple [(Variable (QualIdent Nothing (Ident "y" 241))),(Variable (QualIdent Nothing (Ident "x" 241)))]) []))])
+,(TypeSig (546,1) [(Ident "context1" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Adj" 0)) [(VariableType (Ident "b" 0))]))))
+,(TypeSig (551,1) [(Ident "context4" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Graph" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Node" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Adj" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (553,1) (Ident "context1" 0) [(Equation (553,1) (FunLhs (Ident "context1" 0) []) (SimpleRhs (553,12) (InfixApply (Variable (QualIdent (Just "GraphInductive") (Ident "fst4" 0))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context" 0)))) []))])
+,(FunctionDecl (558,1) (Ident "context4" 0) [(Equation (558,1) (FunLhs (Ident "context4" 0) []) (SimpleRhs (558,12) (InfixApply (Variable (QualIdent (Just "GraphInductive") (Ident "fth4" 0))) (InfixOp (QualIdent (Just "GraphInductive") (Ident ".:" 0))) (Variable (QualIdent (Just "GraphInductive") (Ident "context" 0)))) []))])
+,(FunctionDecl (560,1) (Ident "addSucc" 0) [(Equation (560,1) (FunLhs (Ident "addSucc" 0) [(VariablePattern (Ident "v" 247)),(VariablePattern (Ident "l" 247)),(TuplePattern [(VariablePattern (Ident "p" 247)),(VariablePattern (Ident "l'" 247)),(VariablePattern (Ident "s" 247))])]) (SimpleRhs (560,24) (Tuple [(Variable (QualIdent Nothing (Ident "p" 247))),(Variable (QualIdent Nothing (Ident "l'" 247))),(InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "l" 247))),(Variable (QualIdent Nothing (Ident "v" 247)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "s" 247))))]) []))])
+,(FunctionDecl (561,1) (Ident "addPred" 0) [(Equation (561,1) (FunLhs (Ident "addPred" 0) [(VariablePattern (Ident "v" 249)),(VariablePattern (Ident "l" 249)),(TuplePattern [(VariablePattern (Ident "p" 249)),(VariablePattern (Ident "l'" 249)),(VariablePattern (Ident "s" 249))])]) (SimpleRhs (561,24) (Tuple [(InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "l" 249))),(Variable (QualIdent Nothing (Ident "v" 249)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "p" 249)))),(Variable (QualIdent Nothing (Ident "l'" 249))),(Variable (QualIdent Nothing (Ident "s" 249)))]) []))])
+,(FunctionDecl (563,1) (Ident "clearSucc" 0) [(Equation (563,1) (FunLhs (Ident "clearSucc" 0) [(VariablePattern (Ident "v" 251)),(VariablePattern (Ident "_" 252)),(TuplePattern [(VariablePattern (Ident "p" 251)),(VariablePattern (Ident "l" 251)),(VariablePattern (Ident "s" 251))])]) (SimpleRhs (563,25) (Tuple [(Variable (QualIdent Nothing (Ident "p" 251))),(Variable (QualIdent Nothing (Ident "l" 251))),(Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Variable (QualIdent Nothing (Ident "v" 251)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))))) (Variable (QualIdent Nothing (Ident "s" 251))))]) []))])
+,(FunctionDecl (564,1) (Ident "clearPred" 0) [(Equation (564,1) (FunLhs (Ident "clearPred" 0) [(VariablePattern (Ident "v" 254)),(VariablePattern (Ident "_" 255)),(TuplePattern [(VariablePattern (Ident "p" 254)),(VariablePattern (Ident "l" 254)),(VariablePattern (Ident "s" 254))])]) (SimpleRhs (564,25) (Tuple [(Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Variable (QualIdent Nothing (Ident "v" 254)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))))) (Variable (QualIdent Nothing (Ident "p" 254)))),(Variable (QualIdent Nothing (Ident "l" 254))),(Variable (QualIdent Nothing (Ident "s" 254)))]) []))])
+,(TypeSig (566,1) [(Ident "updAdj" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "GraphRep" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Adj" 0)) [(VariableType (Ident "b" 0))]) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Context'" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "Context'" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]))) (ConstructorType (QualIdent Nothing (Ident "GraphRep" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (567,1) (Ident "updAdj" 0) [(Equation (567,1) (FunLhs (Ident "updAdj" 0) [(VariablePattern (Ident "g" 257)),(ListPattern []),(VariablePattern (Ident "_" 258))]) (SimpleRhs (567,38) (Variable (QualIdent Nothing (Ident "g" 257))) [])),(Equation (568,1) (FunLhs (Ident "updAdj" 0) [(VariablePattern (Ident "g" 260)),(ParenPattern (InfixPattern (TuplePattern [(VariablePattern (Ident "l" 260)),(VariablePattern (Ident "v" 260))]) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "vs" 260)))),(VariablePattern (Ident "f" 260))]) (GuardedRhs [(CondExpr (569,4) (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "elemFM" 0))) (Variable (QualIdent Nothing (Ident "v" 260)))) (Variable (QualIdent Nothing (Ident "g" 260)))) (Apply (Apply (Apply (Variable (QualIdent (Just "GraphInductive") (Ident "updAdj" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "FiniteMap") (Ident "updFM" 0))) (Variable (QualIdent Nothing (Ident "g" 260)))) (Variable (QualIdent Nothing (Ident "v" 260)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 260))) (Variable (QualIdent Nothing (Ident "l" 260)))))))) (Variable (QualIdent Nothing (Ident "vs" 260)))) (Variable (QualIdent Nothing (Ident "f" 260))))),(CondExpr (570,4) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Paren (InfixApply (Literal (String "Edge Exception, Node: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "v" 260))))))))] []))])
+,(FunctionDecl (572,1) (Ident "sortBy" 0) [(Equation (572,1) (FunLhs (Ident "sortBy" 0) [(VariablePattern (Ident "p" 262))]) (SimpleRhs (572,12) (Apply (Variable (QualIdent (Just "Sort") (Ident "mergeSort" 0))) (Paren (Lambda [(VariablePattern (Ident "x" 264)),(VariablePattern (Ident "y" 264))] (Let [(PatternDecl (572,35) (VariablePattern (Ident "pxy" 265)) (SimpleRhs (572,41) (Apply (Apply (Variable (QualIdent Nothing (Ident "p" 262))) (Variable (QualIdent Nothing (Ident "x" 264)))) (Variable (QualIdent Nothing (Ident "y" 264)))) []))] (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "pxy" 265))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "pxy" 265))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))))))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/GraphInductive.efc b/src/lib/Curry/Module/.curry/GraphInductive.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/GraphInductive.efc
@@ -0,0 +1,1 @@
+Prog "GraphInductive" ["FiniteMap","Maybe","Prelude","Sort"] [TypeSyn ((Nothing,Nothing,"GraphInductive","Node")) Public [] (TCons ((Nothing,Nothing,"Prelude","Int")) []),TypeSyn ((Nothing,Nothing,"GraphInductive","LNode")) Public [0] (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]),TypeSyn ((Nothing,Nothing,"GraphInductive","UNode")) Public [] (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","()")) []]),TypeSyn ((Nothing,Nothing,"GraphInductive","Edge")) Public [] (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]),TypeSyn ((Nothing,Nothing,"GraphInductive","LEdge")) Public [0] (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]),TypeSyn ((Nothing,Nothing,"GraphInductive","UEdge")) Public [] (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","()")) []]),TypeSyn ((Nothing,Nothing,"GraphInductive","Context")) Public [0,1] (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]),TypeSyn ((Nothing,Nothing,"GraphInductive","Adj")) Private [0] (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]),TypeSyn ((Nothing,Nothing,"GraphInductive","MContext")) Public [0,1] (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]]),TypeSyn ((Nothing,Nothing,"GraphInductive","Context'")) Public [0,1] (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]),TypeSyn ((Nothing,Nothing,"GraphInductive","UContext")) Public [] (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]]),TypeSyn ((Nothing,Nothing,"GraphInductive","GDecomp")) Public [0,1] (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]]),TypeSyn ((Nothing,Nothing,"GraphInductive","Decomp")) Public [0,1] (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]]),TypeSyn ((Nothing,Nothing,"GraphInductive","UDecomp")) Public [0] (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]]],TVar 0]),TypeSyn ((Nothing,Nothing,"GraphInductive","Path")) Public [] (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]),TypeSyn ((Nothing,Nothing,"GraphInductive","LPath")) Public [0] (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]]),TypeSyn ((Nothing,Nothing,"GraphInductive","UPath")) Public [] (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","()")) []]]),TypeSyn ((Nothing,Nothing,"GraphInductive","GraphRep")) Private [0,1] (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]]),TypeSyn ((Nothing,Nothing,"GraphInductive","UGr")) Public [] (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TCons ((Nothing,Nothing,"Prelude","()")) [],TCons ((Nothing,Nothing,"Prelude","()")) []]),Type ((Nothing,Nothing,"GraphInductive","Graph")) Public [0,1] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) 1 Private [TCons ((Nothing,Nothing,"FiniteMap","FM")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]]]]] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))),"GraphInductive",":&")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 65) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 67) (FuncType (TVar 68) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 65),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TVar 67),5),(Just (TVar 68),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),7)]) (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 74,TVar 75]) (FuncType (TVar 74) (FuncType (TVar 75) (TCons (Nothing,Nothing,"FiniteMap","FM") [TVar 74,TVar 75])))),"FiniteMap","addToFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb ConsCall ((Nothing,Just (TVar 73),"Prelude","(,,)")) [Var ((Just (TVar 65),3)),Var ((Just (TVar 67),5)),Var ((Just (TVar 68),6))]])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 81,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (FuncType (TVar 80) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 81,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 81,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 81,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 80,TCons (Nothing,Nothing,"Prelude","Int") []]]]])))),"GraphInductive","updAdj")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),8)),Var ((Just (TVar 65),3)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 76) (FuncType (TVar 77) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 78,TVar 79,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 77,TVar 76]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 78,TVar 79,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 77,TVar 76]]])))),"GraphInductive","addSucc")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 87,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (FuncType (TVar 86) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 87,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 87,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 87,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 86,TCons (Nothing,Nothing,"Prelude","Int") []]]]])))),"GraphInductive","updAdj")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),9)),Var ((Just (TVar 68),6)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 82) (FuncType (TVar 83) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 83,TVar 82]],TVar 84,TVar 85]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 83,TVar 82]],TVar 84,TVar 85])))),"GraphInductive","addPred")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"FiniteMap","elemFM")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),7))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0])),"Prelude","error")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'N'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'N'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]],Comb FuncCall ((Nothing,Just (FuncType (TVar 67) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 67),5))]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0])),"GraphInductive","Gr")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),10))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),"Prelude","failed")) [])])]))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]])),"GraphInductive","matchAny")) 1 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]])) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]])),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'G'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]])),"Prelude","head")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]])),"FiniteMap","fmToListPreOrder")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]]) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 6) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TVar 6),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"GraphInductive","match")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]]) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 10]) (FuncType (TVar 9) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 10]),5),(Just (TVar 9),6)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 10]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 10) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 10])),"Prelude","Just")) [(Just (TVar 10),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 10) (FuncType (TVar 9) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"Prelude","(,)")) [Var ((Just (TVar 10),7)),Var ((Just (TVar 9),6))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 10]),"Prelude","Nothing")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]),"Prelude","failed")) [])])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]),"Prelude","failed")) [])])])])),Func ((Nothing,Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),"GraphInductive","empty")) 0 Public (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (Rule [] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]])),"FiniteMap","emptyFM")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","mkGraph")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1]]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","insEdges")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]),2))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","insNodes")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]),1))]],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),"GraphInductive","empty")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0])),"GraphInductive","buildGr")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))),"GraphInductive",":&")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),"GraphInductive","empty")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TCons (Nothing,Nothing,"Prelude","()") [],TCons (Nothing,Nothing,"Prelude","()") []]))),"GraphInductive","mkUGraph")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TCons ((Nothing,Nothing,"Prelude","()")) [],TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","()") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","()") []]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TCons (Nothing,Nothing,"Prelude","()") [],TCons (Nothing,Nothing,"Prelude","()") []]))),"GraphInductive","mkGraph")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","()") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","()") []]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","()") []]])),"GraphInductive","labUNodes")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","()") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","()") []]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","()") []]])),"GraphInductive","labUEdges")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","insNode")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]))),"Prelude","(,)")) [(Just (TVar 3),2),(Just (TVar 4),3)]) (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive",":&")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 8) (FuncType (TVar 3) (FuncType (TVar 4) (FuncType (TVar 9) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [Comb ConsCall ((Nothing,Just (TVar 8),"Prelude","[]")) [],Var ((Just (TVar 3),2)),Var ((Just (TVar 4),3)),Comb ConsCall ((Nothing,Just (TVar 9),"Prelude","[]")) []]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))),"GraphInductive","insEdge")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 215) (FuncType (TVar 216) (FuncType (TVar 217) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])))),"Prelude","(,,)")) [(Just (TVar 215),3),(Just (TVar 216),4),(Just (TVar 217),5)]) (Let [((Just (TVar 218),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 221,TVar 222]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 222,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 221,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 222,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 221,TVar 222]]))),"GraphInductive","match")) [Var ((Just (TVar 215),3)),Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 223,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 224,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 223,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 224,TVar 223]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 223,TCons (Nothing,Nothing,"Prelude","Int") []]])),"GraphInductive","insEdge._#selFP3#pr")) [Var ((Just (TVar 218),6))])] (Let [((Just (TVar 1),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 225,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 226,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 225,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 226,TVar 225]]) (TVar 226)),"GraphInductive","insEdge._#selFP4#la")) [Var ((Just (TVar 218),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 227,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 228,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 227,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 228,TVar 227]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 227,TCons (Nothing,Nothing,"Prelude","Int") []]])),"GraphInductive","insEdge._#selFP5#su")) [Var ((Just (TVar 218),6))])] (Let [((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 229,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 230,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 229,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 230,TVar 229]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 230,TVar 229])),"GraphInductive","insEdge._#selFP6#g'")) [Var ((Just (TVar 218),6))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))),"GraphInductive",":&")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TVar 215) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),7)),Var ((Just (TVar 215),3)),Var ((Just (TVar 1),8)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 217) (FuncType (TVar 216) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Var ((Just (TVar 217),5)),Var ((Just (TVar 216),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),9))]],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),10))]))))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]])),"GraphInductive","insEdge._#selFP3#pr")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 212,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 212,TVar 213]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]) (FuncType (TVar 216) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]),2),(Just (TVar 216),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 217) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217])),"Prelude","Just")) [(Just (TVar 217),4)]) (Case  Flex (Var ((Just (TVar 217),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TVar 220) (FuncType (TVar 221) (FuncType (TVar 222) (TVar 217))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]),5),(Just (TVar 220),6),(Just (TVar 221),7),(Just (TVar 222),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]),5)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]) (TVar 212)),"GraphInductive","insEdge._#selFP4#la")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 212,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 212,TVar 213]]) (TVar 212)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]) (FuncType (TVar 216) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]),2),(Just (TVar 216),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 217) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217])),"Prelude","Just")) [(Just (TVar 217),4)]) (Case  Flex (Var ((Just (TVar 217),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 219) (FuncType (TVar 220) (FuncType (TVar 212) (FuncType (TVar 222) (TVar 217))))),"Prelude","(,,,)")) [(Just (TVar 219),5),(Just (TVar 220),6),(Just (TVar 212),7),(Just (TVar 222),8)]) (Var ((Just (TVar 212),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]])),"GraphInductive","insEdge._#selFP5#su")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 212,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 212,TVar 213]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]) (FuncType (TVar 216) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]),2),(Just (TVar 216),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 217) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217])),"Prelude","Just")) [(Just (TVar 217),4)]) (Case  Flex (Var ((Just (TVar 217),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 219) (FuncType (TVar 220) (FuncType (TVar 221) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TVar 217))))),"Prelude","(,,,)")) [(Just (TVar 219),5),(Just (TVar 220),6),(Just (TVar 221),7),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]),8)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213])),"GraphInductive","insEdge._#selFP6#g'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 212,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 213,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 212,TVar 213]]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 212,TVar 213])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 212,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 213,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]),2),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 217) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 217])),"Prelude","Just")) [(Just (TVar 217),4)]) (Case  Flex (Var ((Just (TVar 217),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 219) (FuncType (TVar 220) (FuncType (TVar 221) (FuncType (TVar 222) (TVar 217))))),"Prelude","(,,,)")) [(Just (TVar 219),5),(Just (TVar 220),6),(Just (TVar 221),7),(Just (TVar 222),8)]) (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 212,TVar 213]),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","delNode")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","delNodes")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","delEdge")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TVar 5),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"GraphInductive","match")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))]) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 9]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 9]),5),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),6)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 9]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 9]),"Prelude","Nothing")) []) (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 9) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 9])),"Prelude","Just")) [(Just (TVar 9),7)]) (Case  Rigid (Var ((Just (TVar 9),7))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 11) (FuncType (TVar 12) (FuncType (TVar 13) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]]) (TVar 9))))),"Prelude","(,,,)")) [(Just (TVar 11),8),(Just (TVar 12),9),(Just (TVar 13),10),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]]),11)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive",":&")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 11) (FuncType (TVar 12) (FuncType (TVar 13) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [Var ((Just (TVar 11),8)),Var ((Just (TVar 12),9)),Var ((Just (TVar 13),10)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]) (TVar 5)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 5) (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 5) (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 5) (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [],Var ((Just (TVar 5),4))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]) (TVar 5)),"Prelude","snd")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 5]]),11))]],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),6))])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","insNodes")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])))),"Prelude","foldr")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","insNode")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))),"GraphInductive","insEdges")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))),"GraphInductive","insEdge")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","delNodes")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","delNodes")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"Prelude","snd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"GraphInductive","match")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","delEdges")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]))),"GraphInductive","delEdge")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"GraphInductive","isEmpty")) 1 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"GraphInductive","match")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]])))),"Prelude","maybe")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 151]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 151]),"Prelude","Nothing")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),3))]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"GraphInductive","match._#lambda5")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]]))),"FiniteMap","splitFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 148,TVar 146]]))),"GraphInductive","match._#lambda5")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"FiniteMap","FM")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 146,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 148,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 146,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]],TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 146,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 148,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 146,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]]]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 146,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 148,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 146,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 148,TVar 146]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 150) (FuncType (TVar 151) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]))),"Prelude","(,)")) [(Just (TVar 150),3),(Just (TVar 151),4)]) (Case  Flex (Var ((Just (TVar 151),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 153) (FuncType (TVar 154) (TVar 151))),"Prelude","(,)")) [(Just (TVar 153),5),(Just (TVar 154),6)]) (Case  Flex (Var ((Just (TVar 154),6))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 156) (FuncType (TVar 157) (FuncType (TVar 158) (TVar 154)))),"Prelude","(,,)")) [(Just (TVar 156),7),(Just (TVar 157),8),(Just (TVar 158),9)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]),10),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 170) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 170]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 170]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 167) (TVar 168)) (FuncType (FuncType (TVar 169) (TVar 167)) (FuncType (TVar 169) (TVar 168)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 162) (FuncType (TVar 163) (TVar 164))) (FuncType (TVar 163) (FuncType (TVar 162) (TVar 164)))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 161) (FuncType (TVar 161) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 165,TVar 166]) (TVar 166)),"Prelude","snd")) []],Var ((Just (TVar 158),9))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]),11),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 180) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 180]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 180]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 177) (TVar 178)) (FuncType (FuncType (TVar 179) (TVar 177)) (FuncType (TVar 179) (TVar 178)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 172) (FuncType (TVar 173) (TVar 174))) (FuncType (TVar 173) (FuncType (TVar 172) (TVar 174)))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 171) (FuncType (TVar 171) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 175,TVar 176]) (TVar 176)),"Prelude","snd")) []],Var ((Just (TVar 156),7))])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),12),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 187,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (FuncType (TVar 186) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 187,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 187,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 187,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 186,TCons (Nothing,Nothing,"Prelude","Int") []]]]])))),"GraphInductive","updAdj")) [Var ((Just (TVar 150),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]),10)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 181) (FuncType (TVar 182) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 183,TVar 181]],TVar 184,TVar 185]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 183,TVar 181]],TVar 184,TVar 185])))),"GraphInductive","clearPred")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]])] (Let [((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),13),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 194,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (FuncType (TVar 193) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 194,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 194,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 194,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 193,TCons (Nothing,Nothing,"Prelude","Int") []]]]])))),"GraphInductive","updAdj")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),12)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]),11)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 188) (FuncType (TVar 189) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 190,TVar 191,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 192,TVar 188]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 190,TVar 191,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 192,TVar 188]]])))),"GraphInductive","clearSucc")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 196]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 148,TVar 146]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 148,TVar 146]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 196) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 196])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 157) (FuncType (TVar 158) (TVar 196))))),"Prelude","(,,,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]),11)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TVar 157),8)),Var ((Just (TVar 158),9))]],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 148,TVar 146])),"GraphInductive","Gr")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 148,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 146,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),13))]])))))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","noNodes")) 1 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"FiniteMap","sizeFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","nodeRange")) 1 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2)]) (Let [((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),3),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 339) (TVar 340)) (FuncType (FuncType (TVar 341) (TVar 339)) (FuncType (TVar 341) (TVar 340)))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 336,TVar 337]) (TVar 336)),"Prelude","fst")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 338]) (TVar 338)),"Maybe","fromJust")) []])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"FiniteMap","isEmptyFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Lit (Intc  0),Lit (Intc  0)]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]])) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]])),"FiniteMap","minFM")) [],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]])) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]])),"FiniteMap","maxFM")) [],Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","failed")) [])])]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","context")) 2 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]))) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"GraphInductive","match")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))]) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),3),(Just (TVar 4),4)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),"Prelude","Nothing")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]])),"Prelude","error")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'N'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]])),"Prelude","Just")) [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]),5)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]),5)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))),"GraphInductive","lab")) 2 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))),"Maybe",">>-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]])),"Prelude","fst")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"GraphInductive","match")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TVar 0)),"GraphInductive","lab'")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"GraphInductive","neighbors")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","neighbors._#lambda7")) []],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","context")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 416,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 415,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 416,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","neighbors._#lambda7")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 416,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 415,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 416,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 416,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 415,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 416,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 416,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 415,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 416,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TVar 419) (FuncType (TVar 420) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 416,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 415,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 416,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]),2),(Just (TVar 419),3),(Just (TVar 420),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","snd")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 422,TCons (Nothing,Nothing,"Prelude","Int") []]]),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"GraphInductive","suc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","snd")) []]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context4")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"GraphInductive","pre")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","snd")) []]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context1")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"GraphInductive","lsuc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1]]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1])),"GraphInductive","flip2")) []]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context4")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"GraphInductive","lpre")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1]]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1])),"GraphInductive","flip2")) []]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context1")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"GraphInductive","out")) 2 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1]]))) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]))),"GraphInductive","out._#lambda8")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context4")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 511,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 511]))),"GraphInductive","out._#lambda8")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 511,TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 511]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 511,TCons (Nothing,Nothing,"Prelude","Int") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 511,TCons (Nothing,Nothing,"Prelude","Int") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 513) (FuncType (TVar 514) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 511,TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 513),3),(Just (TVar 514),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 514) (FuncType (TVar 513) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 511])))),"Prelude","(,,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TVar 514),4)),Var ((Just (TVar 513),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"GraphInductive","inn")) 2 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1]]))) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]))),"GraphInductive","inn._#lambda9")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context1")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 521,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 521]))),"GraphInductive","inn._#lambda9")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 521,TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 521]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 521,TCons (Nothing,Nothing,"Prelude","Int") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 521,TCons (Nothing,Nothing,"Prelude","Int") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 523) (FuncType (TVar 524) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 521,TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 523),3),(Just (TVar 524),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 524) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 523) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 521])))),"Prelude","(,,)")) [Var ((Just (TVar 524),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TVar 523),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"GraphInductive","outdeg")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context4")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"GraphInductive","indeg")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context1")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"GraphInductive","deg")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","deg._#lambda10")) []],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","context")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 553,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 552,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 553,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","deg._#lambda10")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 553,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 552,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 553,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 553,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 552,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 553,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 553,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 552,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 553,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 559]) (FuncType (TVar 556) (FuncType (TVar 557) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 560]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 553,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 552,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 553,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 559]),2),(Just (TVar 556),3),(Just (TVar 557),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 560]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 559]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 559]),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 560]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 560]),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"GraphInductive","gelem")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Maybe","isJust")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]])),"Prelude","fst")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]]))),"GraphInductive","match")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"GraphInductive","equal")) 2 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","slabNodes")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","slabNodes")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])),"GraphInductive","slabEdges")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])),"GraphInductive","slabEdges")) [],Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"GraphInductive","nodeComp")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),2))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","failed")) [])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","slabNodes")) 0 Private (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]))),"GraphInductive","sortBy")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"GraphInductive","nodeComp")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","labNodes")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"GraphInductive","edgeComp")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),2)] (Let [((Just (TVar 614),3),Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1)))] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 616]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","edgeComp._#selFP11#v")) [Var ((Just (TVar 614),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 617]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","edgeComp._#selFP12#w")) [Var ((Just (TVar 614),3))])] (Let [((Just (TVar 615),6),Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),2)))] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 618]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","edgeComp._#selFP9#x")) [Var ((Just (TVar 615),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 619]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","edgeComp._#selFP10#y")) [Var ((Just (TVar 615),6))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","failed")) [])])])])))))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","edgeComp._#selFP11#v")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 613]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 616) (FuncType (TVar 617) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613])))),"Prelude","(,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TVar 616),3),(Just (TVar 617),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","edgeComp._#selFP12#w")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 613]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 615) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 617) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613])))),"Prelude","(,,)")) [(Just (TVar 615),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TVar 617),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","edgeComp._#selFP9#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 613]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 616) (FuncType (TVar 617) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613])))),"Prelude","(,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TVar 616),3),(Just (TVar 617),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","edgeComp._#selFP10#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 613]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 615) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 617) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 613])))),"Prelude","(,,)")) [(Just (TVar 615),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TVar 617),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])),"GraphInductive","slabEdges")) 0 Private (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1]])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"GraphInductive","sortBy")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"GraphInductive","edgeComp")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])),"GraphInductive","labEdges")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","node'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 5) (FuncType (TVar 6) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 3),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TVar 5),4),(Just (TVar 6),5)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TVar 1)),"GraphInductive","lab'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TVar 1)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TVar 4) (FuncType (TVar 1) (FuncType (TVar 6) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 3),2),(Just (TVar 4),3),(Just (TVar 1),4),(Just (TVar 6),5)]) (Var ((Just (TVar 1),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1])),"GraphInductive","labNode'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TVar 6) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 3),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TVar 6),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 4) (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 4),3)),Var ((Just (TVar 5),4))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","neighbors'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 11,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 11,TCons (Nothing,Nothing,"Prelude","Int") []]]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","snd")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 11,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 11,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 11,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","snd")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 11,TCons (Nothing,Nothing,"Prelude","Int") []]]),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","suc'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 3),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","snd")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]),5))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","pre'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TVar 6) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TVar 6),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","snd")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","lpre'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TVar 6) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TVar 6),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])),"GraphInductive","flip2")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","lsuc'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 3),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])),"GraphInductive","flip2")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),5))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","out'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 734) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 736) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 734),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TVar 736),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]))),"GraphInductive","out'._#lambda11")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),5))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 732,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 732]))),"GraphInductive","out'._#lambda11")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 732,TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 732]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 732,TCons (Nothing,Nothing,"Prelude","Int") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 732,TCons (Nothing,Nothing,"Prelude","Int") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 734) (FuncType (TVar 735) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 732,TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 734),3),(Just (TVar 735),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 735) (FuncType (TVar 734) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 732])))),"Prelude","(,,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TVar 735),4)),Var ((Just (TVar 734),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","inn'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 746) (FuncType (TVar 747) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TVar 746),4),(Just (TVar 747),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]))),"GraphInductive","inn'._#lambda12")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 742,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 742]))),"GraphInductive","inn'._#lambda12")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 742,TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 742]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 742,TCons (Nothing,Nothing,"Prelude","Int") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 742,TCons (Nothing,Nothing,"Prelude","Int") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 744) (FuncType (TVar 745) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 742,TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 744),3),(Just (TVar 745),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 745) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 744) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 742])))),"Prelude","(,,)")) [Var ((Just (TVar 745),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TVar 744),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","outdeg'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 3),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]),5))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","indeg'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TVar 6) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TVar 6),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","deg'")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (FuncType (TVar 4) (FuncType (TVar 5) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]),2),(Just (TVar 4),3),(Just (TVar 5),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","labNodes")) 1 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0])),"GraphInductive","labNodes._#lambda13")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]])),"FiniteMap","fmToList")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 574,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 573,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 574,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 573])),"GraphInductive","labNodes._#lambda13")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 574,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 573,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 574,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 573])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 574,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 573,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 574,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 574,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 573,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 574,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 576) (FuncType (TVar 577) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 574,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 573,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 574,TCons (Nothing,Nothing,"Prelude","Int") []]]]]))),"Prelude","(,)")) [(Just (TVar 576),2),(Just (TVar 577),3)]) (Case  Flex (Var ((Just (TVar 577),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 579) (FuncType (TVar 580) (FuncType (TVar 581) (TVar 577)))),"Prelude","(,,)")) [(Just (TVar 579),4),(Just (TVar 580),5),(Just (TVar 581),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 576) (FuncType (TVar 580) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 573]))),"Prelude","(,)")) [Var ((Just (TVar 576),2)),Var ((Just (TVar 580),5))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])),"GraphInductive","labEdges")) 1 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1]])) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]))),"Prelude","concatMap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])),"GraphInductive","labEdges._#lambda14")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]])),"FiniteMap","fmToList")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 619,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 620]])),"GraphInductive","labEdges._#lambda14")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 620,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 619,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 620,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 620]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 619,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 619,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 623) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 619,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]]]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TVar 623),3)]) (Case  Flex (Var ((Just (TVar 623),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 625) (FuncType (TVar 626) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TVar 623)))),"Prelude","(,,)")) [(Just (TVar 625),4),(Just (TVar 626),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 620])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 620]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 620]))),"GraphInductive","labEdges._#lambda14._#lambda15")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]]),6))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 620]))),"GraphInductive","labEdges._#lambda14._#lambda15")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 620,TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 620]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 622) (FuncType (TVar 623) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 620,TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 622),3),(Just (TVar 623),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 623) (FuncType (TVar 622) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 620])))),"Prelude","(,,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TVar 623),4)),Var ((Just (TVar 622),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","nodes")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","fst")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0]])),"GraphInductive","labNodes")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]])),"GraphInductive","edges")) 0 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","edges._#lambda16")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1]])),"GraphInductive","labEdges")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 788]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","edges._#lambda16")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 788]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 788]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 788]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 790) (FuncType (TVar 791) (FuncType (TVar 792) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 788])))),"Prelude","(,,)")) [(Just (TVar 790),2),(Just (TVar 791),3),(Just (TVar 792),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 790) (FuncType (TVar 791) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Var ((Just (TVar 790),2)),Var ((Just (TVar 791),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"GraphInductive","newNodes")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2)] (Let [((Just (TVar 2),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 4]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])),"GraphInductive","nodeRange")) [Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","newNodes._#selFP14#n")) [Var ((Just (TVar 2),3))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","enumFromTo")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Lit (Intc  1)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]])))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"GraphInductive","newNodes._#selFP14#n")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2))) (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TVar 2)))),"GraphInductive","ufold")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (FuncType (TVar 2) (TVar 2))) (FuncType (TVar 2) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0]) (TVar 2)))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2))),1),(Just (TVar 2),2),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),3)] (Let [((Just (TVar 808),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 809,TVar 810]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 810,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 809,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 810,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 809,TVar 810]])),"GraphInductive","matchAny")) [Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 811,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 812,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 811,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 812,TVar 811]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 811,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 812,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 811,TCons (Nothing,Nothing,"Prelude","Int") []]]])),"GraphInductive","ufold._#selFP16#c")) [Var ((Just (TVar 808),4))])] (Let [((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 813,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 814,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 813,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 814,TVar 813]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 814,TVar 813])),"GraphInductive","ufold._#selFP17#g'")) [Var ((Just (TVar 808),4))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"GraphInductive","isEmpty")) [Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 2),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 2) (TVar 2)) (FuncType (TVar 2) (TVar 2))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2)))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]),5))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2))) (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TVar 2)))),"GraphInductive","ufold")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2))),1)),Var ((Just (TVar 2),2)),Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]),6))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TVar 2),"Prelude","failed")) [])])]))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]])),"GraphInductive","ufold._#selFP16#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 807,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 806,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 807,TCons ((Nothing,Nothing,"Prelude","Int")) []]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 806,TVar 807]]) (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 807,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 806,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 807,TCons ((Nothing,Nothing,"Prelude","Int")) []]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TVar 810) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]]),2),(Just (TVar 810),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807])),"GraphInductive","ufold._#selFP17#g'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 807,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 806,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 807,TCons ((Nothing,Nothing,"Prelude","Int")) []]]],TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 806,TVar 807]]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 806,TVar 807])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 809) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 806,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 807,TCons (Nothing,Nothing,"Prelude","Int") []]]],TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]]))),"Prelude","(,)")) [(Just (TVar 809),2),(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]),3)]) (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 806,TVar 807]),3)))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 2]))),"GraphInductive","gmap")) 1 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 2,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 3,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 2,TCons ((Nothing,Nothing,"Prelude","Int")) []]]])) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 0]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 3,TVar 2]))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]]])),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 2]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 2]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 2]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 2])))),"GraphInductive","ufold")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 2]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 2])))),"GraphInductive","gmap._#lambda17")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]]])),1))],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 3,TVar 2]),"GraphInductive","empty")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 822,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 829,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 822,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 829,TVar 830]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 829,TVar 830])))),"GraphInductive","gmap._#lambda17")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 821,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 822,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 821,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 830,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 829,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 830,TCons ((Nothing,Nothing,"Prelude","Int")) []]]])) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 821,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 822,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 821,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 829,TVar 830]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 829,TVar 830])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 822,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 829,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]]])),1),(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 822,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]]]),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 829,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 829,TVar 830]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 829,TVar 830]))),"GraphInductive",":&")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 822,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 829,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 822,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 829,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 822,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 829,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 830,TCons (Nothing,Nothing,"Prelude","Int") []]]])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 822,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 821,TCons (Nothing,Nothing,"Prelude","Int") []]]]),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 2]))),"GraphInductive","nmap")) 1 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 2]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 1,TVar 2]))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 2]))),"GraphInductive","gmap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","nmap._#lambda18")) [Var ((Just (FuncType (TVar 0) (TVar 1)),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 841) (TVar 844)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 841,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 844,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","nmap._#lambda18")) 2 Private (FuncType (FuncType (TVar 841) (TVar 844)) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 837,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 841,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 837,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 837,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 844,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 837,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]))) (Rule [(Just (FuncType (TVar 841) (TVar 844)),1),(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 841,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 841,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]]]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 846) (FuncType (TVar 847) (FuncType (TVar 841) (FuncType (TVar 849) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 841,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TVar 846),3),(Just (TVar 847),4),(Just (TVar 841),5),(Just (TVar 849),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 846) (FuncType (TVar 847) (FuncType (TVar 844) (FuncType (TVar 849) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 844,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 837,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [Var ((Just (TVar 846),3)),Var ((Just (TVar 847),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 841) (TVar 844)) (FuncType (TVar 841) (TVar 844))),"Prelude","apply")) [Var ((Just (FuncType (TVar 841) (TVar 844)),1)),Var ((Just (TVar 841),5))],Var ((Just (TVar 849),6))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 2,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 2,TVar 1]))),"GraphInductive","emap")) 1 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 2,TVar 0]) (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 2,TVar 1]))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 2,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 2,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]])) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 2,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 2,TVar 1]))),"GraphInductive","gmap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 2,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 2,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","emap._#lambda20")) [Var ((Just (FuncType (TVar 0) (TVar 1)),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 2]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 2]]))),"GraphInductive","emap.map1.213")) 1 Private (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 2]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TVar 2]]))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 2])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 2]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 2]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 2]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 2]))),"GraphInductive","emap.map1.213._#lambda19")) [Var ((Just (FuncType (TVar 0) (TVar 1)),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 853) (TVar 856)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 853,TVar 854]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 856,TVar 854]))),"GraphInductive","emap.map1.213._#lambda19")) 2 Private (FuncType (FuncType (TVar 853) (TVar 856)) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 853,TVar 854]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 856,TVar 854]))) (Rule [(Just (FuncType (TVar 853) (TVar 856)),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 853,TVar 854]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 853,TVar 854]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 853) (FuncType (TVar 859) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 853,TVar 854]))),"Prelude","(,)")) [(Just (TVar 853),3),(Just (TVar 859),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 856) (FuncType (TVar 859) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 856,TVar 854]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 853) (TVar 856)) (FuncType (TVar 853) (TVar 856))),"Prelude","apply")) [Var ((Just (FuncType (TVar 853) (TVar 856)),1)),Var ((Just (TVar 853),3))],Var ((Just (TVar 859),4))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 865) (TVar 866)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 863,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 863,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","emap._#lambda20")) 2 Private (FuncType (FuncType (TVar 865) (TVar 866)) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 865,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 863,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 865,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 866,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TCons ((Nothing,Nothing,"Prelude","Int")) [],TVar 863,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 866,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]))) (Rule [(Just (FuncType (TVar 865) (TVar 866)),1),(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 863,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TCons (Nothing,Nothing,"Prelude","Int") []]]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 863,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TCons (Nothing,Nothing,"Prelude","Int") []]]]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 875]]) (FuncType (TVar 869) (FuncType (TVar 870) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 880]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 863,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 875]]),3),(Just (TVar 869),4),(Just (TVar 870),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 880]]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TVar 875]]) (FuncType (TVar 869) (FuncType (TVar 870) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TVar 880]]) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 863,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TCons (Nothing,Nothing,"Prelude","Int") []]]]))))),"Prelude","(,,,)")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 875]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TVar 875]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 875]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TVar 875]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 865) (TVar 866)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 875]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TVar 875]]))),"GraphInductive","emap.map1.213")) [Var ((Just (FuncType (TVar 865) (TVar 866)),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 875]]),3))],Var ((Just (TVar 869),4)),Var ((Just (TVar 870),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 880]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TVar 880]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 880]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TVar 880]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 865) (TVar 866)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 880]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 866,TVar 880]]))),"GraphInductive","emap.map1.213")) [Var ((Just (FuncType (TVar 865) (TVar 866)),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 865,TVar 880]]),6))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TCons (Nothing,Nothing,"Prelude","()") []]])),"GraphInductive","labUEdges")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 0,TVar 1,TCons ((Nothing,Nothing,"Prelude","()")) []]])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TCons (Nothing,Nothing,"Prelude","()") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TCons (Nothing,Nothing,"Prelude","()") []])),"GraphInductive","labUEdges._#lambda21")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 249,TVar 250]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 249,TVar 250,TCons (Nothing,Nothing,"Prelude","()") []])),"GraphInductive","labUEdges._#lambda21")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 249,TVar 250]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 249,TVar 250,TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 249,TVar 250]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 249,TVar 250]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 252) (FuncType (TVar 253) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 249,TVar 250]))),"Prelude","(,)")) [(Just (TVar 252),2),(Just (TVar 253),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 252) (FuncType (TVar 253) (FuncType (TVar 256) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 249,TVar 250,TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","(,,)")) [Var ((Just (TVar 252),2)),Var ((Just (TVar 253),3)),Comb ConsCall ((Nothing,Just (TVar 256),"Prelude","()")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]])),"GraphInductive","labUNodes")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","()")) []]])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","()") []])),"GraphInductive","labUNodes._#lambda22")) []])),Func ((Nothing,Just (FuncType (TVar 254) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 254,TCons (Nothing,Nothing,"Prelude","()") []])),"GraphInductive","labUNodes._#lambda22")) 1 Private (FuncType (TVar 254) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 254,TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TVar 254),1)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 254) (FuncType (TVar 257) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 254,TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","(,)")) [Var ((Just (TVar 254),1)),Comb ConsCall ((Nothing,Just (TVar 257),"Prelude","()")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"GraphInductive","showGraph")) 1 Public (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1])),"GraphInductive","Gr")) [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"GraphInductive","showNode")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]])),"FiniteMap","fmToList")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),2))]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 1,TVar 2,TVar 3]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"GraphInductive","showNode")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 1,TVar 2,TVar 3]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 1,TVar 2,TVar 3]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 1,TVar 2,TVar 3]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 5) (FuncType (TVar 6) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 1,TVar 2,TVar 3]]))),"Prelude","(,)")) [(Just (TVar 5),2),(Just (TVar 6),3)]) (Case  Flex (Var ((Just (TVar 6),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 8) (FuncType (TVar 9) (FuncType (TVar 10) (TVar 6)))),"Prelude","(,,)")) [(Just (TVar 8),4),(Just (TVar 9),5),(Just (TVar 10),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 5),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 9) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 9),5))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '-'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '>'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]],Comb FuncCall ((Nothing,Just (FuncType (TVar 10) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 10),6))]]]]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TVar 0))) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 1))))),"GraphInductive",".:")) 0 Private (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TVar 0))) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 1))))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (FuncType (TVar 3) (TVar 0)) (FuncType (TVar 3) (TVar 1))) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TVar 0))) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 1))))) (FuncType (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 3) (TVar 0)) (FuncType (TVar 3) (TVar 1)))) (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TVar 0))) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 1))))))),"Prelude",".")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (FuncType (TVar 3) (TVar 0)) (FuncType (TVar 3) (TVar 1))) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TVar 0))) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 1))))),"Prelude",".")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 3) (TVar 0)) (FuncType (TVar 3) (TVar 1)))),"Prelude",".")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]) (TVar 0)),"GraphInductive","fst4")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TVar 0,TVar 1,TVar 2,TVar 3]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 6) (FuncType (TVar 7) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]))))),"Prelude","(,,,)")) [(Just (TVar 0),2),(Just (TVar 6),3),(Just (TVar 7),4),(Just (TVar 8),5)]) (Var ((Just (TVar 0),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]) (TVar 3)),"GraphInductive","fth4")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,,)")) [TVar 0,TVar 1,TVar 2,TVar 3]) (TVar 3)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 5) (FuncType (TVar 6) (FuncType (TVar 7) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]))))),"Prelude","(,,,)")) [(Just (TVar 5),2),(Just (TVar 6),3),(Just (TVar 7),4),(Just (TVar 3),5)]) (Var ((Just (TVar 3),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0])),"GraphInductive","flip2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [(Just (TVar 3),2),(Just (TVar 4),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 4) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]))),"Prelude","(,)")) [Var ((Just (TVar 4),3)),Var ((Just (TVar 3),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context1")) 0 Private (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])),"GraphInductive","fst4")) []],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","context")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"GraphInductive","context4")) 0 Private (FuncType (TCons ((Nothing,Nothing,"GraphInductive","Graph")) [TVar 0,TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TCons ((Nothing,Nothing,"Prelude","Int")) []]]))) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])))) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]))))),"GraphInductive",".:")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]])),"GraphInductive","fth4")) []],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),"GraphInductive","context")) []])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]])))),"GraphInductive","addSucc")) 3 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 2,TVar 3,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TVar 0]]]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 2,TVar 3,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TVar 0]]])))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 5) (FuncType (TVar 6) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]])))),"Prelude","(,,)")) [(Just (TVar 5),4),(Just (TVar 6),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 5) (FuncType (TVar 6) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]]])))),"Prelude","(,,)")) [Var ((Just (TVar 5),4)),Var ((Just (TVar 6),5)),Comb ConsCall ((Nothing,Just (FuncType (TVar 11) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 0) (TVar 11))),"Prelude","(,)")) [Var ((Just (TVar 1),2)),Var ((Just (TVar 0),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]),6))]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]],TVar 2,TVar 3]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]],TVar 2,TVar 3])))),"GraphInductive","addPred")) 3 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TVar 0]],TVar 2,TVar 3]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 1,TVar 0]],TVar 2,TVar 3])))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]],TVar 2,TVar 3]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]],TVar 2,TVar 3]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]) (FuncType (TVar 6) (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]],TVar 2,TVar 3])))),"Prelude","(,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]),4),(Just (TVar 6),5),(Just (TVar 7),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]) (FuncType (TVar 6) (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 1,TVar 0]],TVar 2,TVar 3])))),"Prelude","(,,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 11) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 0) (TVar 11))),"Prelude","(,)")) [Var ((Just (TVar 1),2)),Var ((Just (TVar 0),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 11]),4))],Var ((Just (TVar 6),5)),Var ((Just (TVar 7),6))])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 4,TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 4,TVar 0]]])))),"GraphInductive","clearSucc")) 3 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 2,TVar 3,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 4,TVar 0]]]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 2,TVar 3,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 4,TVar 0]]])))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 4,TVar 0]]]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 4,TVar 0]]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 6) (FuncType (TVar 7) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 4,TVar 0]]])))),"Prelude","(,,)")) [(Just (TVar 6),4),(Just (TVar 7),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 6) (FuncType (TVar 7) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 2,TVar 3,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 4,TVar 0]]])))),"Prelude","(,,)")) [Var ((Just (TVar 6),4)),Var ((Just (TVar 7),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [],Var ((Just (TVar 0),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]) (TVar 0)),"Prelude","snd")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]),6))]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TVar 0]],TVar 3,TVar 4]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TVar 0]],TVar 3,TVar 4])))),"GraphInductive","clearPred")) 3 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 2,TVar 0]],TVar 3,TVar 4]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 2,TVar 0]],TVar 3,TVar 4])))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TVar 0]],TVar 3,TVar 4]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TVar 0]],TVar 3,TVar 4]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]) (FuncType (TVar 7) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TVar 0]],TVar 3,TVar 4])))),"Prelude","(,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]),4),(Just (TVar 7),5),(Just (TVar 8),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]) (FuncType (TVar 7) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 2,TVar 0]],TVar 3,TVar 4])))),"Prelude","(,,)")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [],Var ((Just (TVar 0),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]) (TVar 0)),"Prelude","snd")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TVar 0]]),4))],Var ((Just (TVar 7),5)),Var ((Just (TVar 8),6))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]])))),"GraphInductive","updAdj")) 3 Private (FuncType (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]) (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]))) (TCons ((Nothing,Nothing,"FiniteMap","FM")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]],TVar 1,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","Int")) []]]]])))) (Rule [(Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),2),(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),1))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"FiniteMap","elemFM")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]])))),"GraphInductive","updAdj")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]])) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]])))),"FiniteMap","updFM")) [Var ((Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),3)),Var ((Just (TVar 0),6))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]),5)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]))),3))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]])),"Prelude","error")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'E'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'N'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"FiniteMap","FM") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"GraphInductive","sortBy")) 1 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Sort","mergeSort")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"GraphInductive","sortBy._#lambda23")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 587) (FuncType (TVar 587) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TVar 587) (FuncType (TVar 587) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"GraphInductive","sortBy._#lambda23")) 3 Private (FuncType (FuncType (TVar 587) (FuncType (TVar 587) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (FuncType (TVar 587) (FuncType (TVar 587) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (FuncType (TVar 587) (FuncType (TVar 587) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),1),(Just (TVar 587),2),(Just (TVar 587),3)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),4),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 590) (TVar 591)) (FuncType (TVar 590) (TVar 591))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 588) (TVar 589)) (FuncType (TVar 588) (TVar 589))),"Prelude","apply")) [Var ((Just (FuncType (TVar 587) (FuncType (TVar 587) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),1)),Var ((Just (TVar 587),2))],Var ((Just (TVar 587),3))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),4)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),4)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []]])))] [Op ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TVar 0))) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 1))))),"GraphInductive",".:")) InfixrOp 5,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]],TCons (Nothing,Nothing,"Prelude","Int") [],TVar 1,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]]) (FuncType (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]) (TCons (Nothing,Nothing,"GraphInductive","Graph") [TVar 1,TVar 0]))),"GraphInductive",":&")) InfixrOp 5]
diff --git a/src/lib/Curry/Module/.curry/GraphInductive.fcy b/src/lib/Curry/Module/.curry/GraphInductive.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/GraphInductive.fcy
@@ -0,0 +1,1 @@
+Prog "GraphInductive" ["FiniteMap","Maybe","Prelude","Sort"] [TypeSyn ("GraphInductive","Node") Public [] (TCons ("Prelude","Int") []),TypeSyn ("GraphInductive","LNode") Public [0] (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]),TypeSyn ("GraphInductive","UNode") Public [] (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","()") []]),TypeSyn ("GraphInductive","Edge") Public [] (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]),TypeSyn ("GraphInductive","LEdge") Public [0] (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]),TypeSyn ("GraphInductive","UEdge") Public [] (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","()") []]),TypeSyn ("GraphInductive","Context") Public [0,1] (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]),TypeSyn ("GraphInductive","Adj") Private [0] (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]),TypeSyn ("GraphInductive","MContext") Public [0,1] (TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]]),TypeSyn ("GraphInductive","Context'") Public [0,1] (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]),TypeSyn ("GraphInductive","UContext") Public [] (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]),TypeSyn ("GraphInductive","GDecomp") Public [0,1] (TCons ("Prelude","(,)") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]],TCons ("GraphInductive","Graph") [TVar 0,TVar 1]]),TypeSyn ("GraphInductive","Decomp") Public [0,1] (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 0,TVar 1]]),TypeSyn ("GraphInductive","UDecomp") Public [0] (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]],TVar 0]),TypeSyn ("GraphInductive","Path") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TypeSyn ("GraphInductive","LPath") Public [0] (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]]),TypeSyn ("GraphInductive","UPath") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","()") []]]),TypeSyn ("GraphInductive","GraphRep") Private [0,1] (TCons ("FiniteMap","FM") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]]),TypeSyn ("GraphInductive","UGr") Public [] (TCons ("GraphInductive","Graph") [TCons ("Prelude","()") [],TCons ("Prelude","()") []]),Type ("GraphInductive","Graph") Public [0,1] [Cons ("GraphInductive","Gr") 1 Private [TCons ("FiniteMap","FM") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]]]]] [Func ("GraphInductive",":&") 2 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [3,4,5,6]) (Case  Flex (Var 2) [Branch (Pattern ("GraphInductive","Gr") [7]) (Let [(8,Comb FuncCall ("FiniteMap","addToFM") [Var 7,Var 4,Comb ConsCall ("Prelude","(,,)") [Var 3,Var 5,Var 6]])] (Let [(9,Comb FuncCall ("GraphInductive","updAdj") [Var 8,Var 3,Comb (FuncPartCall 2) ("GraphInductive","addSucc") [Var 4]])] (Let [(10,Comb FuncCall ("GraphInductive","updAdj") [Var 9,Var 6,Comb (FuncPartCall 2) ("GraphInductive","addPred") [Var 4]])] (Case  Rigid (Comb FuncCall ("FiniteMap","elemFM") [Var 4,Var 7]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","error") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),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  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 4],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Prelude","show") [Var 5]]]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("GraphInductive","Gr") [Var 10]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])]))))])])),Func ("GraphInductive","matchAny") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]],TCons ("GraphInductive","Graph") [TVar 0,TVar 1]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("GraphInductive","Gr") [2]) (Case  Rigid (Comb FuncCall ("FiniteMap","isEmptyFM") [Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),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  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'G'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Prelude","head") [Comb FuncCall ("FiniteMap","fmToListPreOrder") [Var 2]]) [Branch (Pattern ("Prelude","(,)") [3,4]) (Case  Rigid (Comb FuncCall ("GraphInductive","match") [Var 3,Comb ConsCall ("GraphInductive","Gr") [Var 2]]) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Rigid (Var 5) [Branch (Pattern ("Prelude","Just") [7]) (Comb ConsCall ("Prelude","(,)") [Var 7,Var 6]),Branch (Pattern ("Prelude","Nothing") []) (Comb FuncCall ("Prelude","failed") [])])])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("GraphInductive","empty") 0 Public (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (Rule [] (Comb ConsCall ("GraphInductive","Gr") [Comb FuncCall ("FiniteMap","emptyFM") [Comb (FuncPartCall 2) ("Prelude","<") []]])),Func ("GraphInductive","mkGraph") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("GraphInductive","insEdges") [Var 2],Comb (FuncPartCall 1) ("GraphInductive","insNodes") [Var 1]],Comb FuncCall ("GraphInductive","empty") []])),Func ("GraphInductive","buildGr") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 0])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("GraphInductive",":&") [],Comb FuncCall ("GraphInductive","empty") []])),Func ("GraphInductive","mkUGraph") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]]) (TCons ("GraphInductive","Graph") [TCons ("Prelude","()") [],TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("GraphInductive","mkGraph") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","labUNodes") [],Var 1],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","labUEdges") [],Var 2]])),Func ("GraphInductive","insNode") 1 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb (FuncPartCall 1) ("GraphInductive",":&") [Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("Prelude","[]") [],Var 2,Var 3,Comb ConsCall ("Prelude","[]") []]])])),Func ("GraphInductive","insEdge") 2 Public (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [3,4,5]) (Let [(6,Comb FuncCall ("GraphInductive","match") [Var 3,Var 2])] (Let [(7,Comb FuncCall ("GraphInductive","insEdge._#selFP3#pr") [Var 6])] (Let [(8,Comb FuncCall ("GraphInductive","insEdge._#selFP4#la") [Var 6])] (Let [(9,Comb FuncCall ("GraphInductive","insEdge._#selFP5#su") [Var 6])] (Let [(10,Comb FuncCall ("GraphInductive","insEdge._#selFP6#g'") [Var 6])] (Comb FuncCall ("GraphInductive",":&") [Comb ConsCall ("Prelude","(,,,)") [Var 7,Var 3,Var 8,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Var 5,Var 4],Var 9]],Var 10]))))))])),Func ("GraphInductive","insEdge._#selFP3#pr") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 212,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 212,TVar 213]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Just") [4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","(,,,)") [5,6,7,8]) (Var 5)])])])),Func ("GraphInductive","insEdge._#selFP4#la") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 212,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 212,TVar 213]]) (TVar 212)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Just") [4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","(,,,)") [5,6,7,8]) (Var 7)])])])),Func ("GraphInductive","insEdge._#selFP5#su") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 212,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 212,TVar 213]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Just") [4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","(,,,)") [5,6,7,8]) (Var 8)])])])),Func ("GraphInductive","insEdge._#selFP6#g'") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 212,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 213,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 212,TVar 213]]) (TCons ("GraphInductive","Graph") [TVar 212,TVar 213])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Just") [4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","(,,,)") [5,6,7,8]) (Var 3)])])])),Func ("GraphInductive","delNode") 1 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [1] (Comb (FuncPartCall 1) ("GraphInductive","delNodes") [Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]])),Func ("GraphInductive","delEdge") 2 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [3,4]) (Case  Rigid (Comb FuncCall ("GraphInductive","match") [Var 3,Var 2]) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Rigid (Var 5) [Branch (Pattern ("Prelude","Nothing") []) (Var 2),Branch (Pattern ("Prelude","Just") [7]) (Case  Rigid (Var 7) [Branch (Pattern ("Prelude","(,,,)") [8,9,10,11]) (Comb FuncCall ("GraphInductive",":&") [Comb ConsCall ("Prelude","(,,,)") [Var 8,Var 9,Var 10,Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Var 4],Comb (FuncPartCall 1) ("Prelude","snd") []],Var 11]],Var 6])])])])])),Func ("GraphInductive","insNodes") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 1) ("GraphInductive","insNode") [],Var 2,Var 1])),Func ("GraphInductive","insEdges") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("GraphInductive","insEdge") [],Var 2,Var 1])),Func ("GraphInductive","delNodes") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("GraphInductive","delNodes") [Var 4,Comb FuncCall ("Prelude","snd") [Comb FuncCall ("GraphInductive","match") [Var 3,Var 2]]])])),Func ("GraphInductive","delEdges") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("GraphInductive","delEdge") [],Var 2,Var 1])),Func ("GraphInductive","isEmpty") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("GraphInductive","Gr") [2]) (Comb FuncCall ("FiniteMap","isEmptyFM") [Var 2])])),Func ("GraphInductive","match") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 0,TVar 1]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("GraphInductive","Gr") [3]) (Comb FuncCall ("Prelude","maybe") [Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Nothing") [],Comb ConsCall ("GraphInductive","Gr") [Var 3]],Comb (FuncPartCall 1) ("GraphInductive","match._#lambda5") [Var 1],Comb FuncCall ("FiniteMap","splitFM") [Var 3,Var 1]])])),Func ("GraphInductive","match._#lambda5") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TCons ("FiniteMap","FM") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 146,TCons ("Prelude","Int") []]],TVar 148,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 146,TCons ("Prelude","Int") []]]]],TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 146,TCons ("Prelude","Int") []]],TVar 148,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 146,TCons ("Prelude","Int") []]]]]]) (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 146,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 148,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 146,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 148,TVar 146]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Flex (Var 6) [Branch (Pattern ("Prelude","(,,)") [7,8,9]) (Let [(10,Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Var 1],Comb (FuncPartCall 1) ("Prelude","snd") []],Var 9])] (Let [(11,Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Var 1],Comb (FuncPartCall 1) ("Prelude","snd") []],Var 7])] (Let [(12,Comb FuncCall ("GraphInductive","updAdj") [Var 3,Var 10,Comb (FuncPartCall 2) ("GraphInductive","clearPred") [Var 1]])] (Let [(13,Comb FuncCall ("GraphInductive","updAdj") [Var 12,Var 11,Comb (FuncPartCall 2) ("GraphInductive","clearSucc") [Var 1]])] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","(,,,)") [Var 11,Var 1,Var 8,Var 9]],Comb ConsCall ("GraphInductive","Gr") [Var 13]])))))])])])),Func ("GraphInductive","noNodes") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("GraphInductive","Gr") [2]) (Comb FuncCall ("FiniteMap","sizeFM") [Var 2])])),Func ("GraphInductive","nodeRange") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("GraphInductive","Gr") [2]) (Let [(3,Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","fst") [],Comb (FuncPartCall 1) ("Maybe","fromJust") []])] (Case  Rigid (Comb FuncCall ("FiniteMap","isEmptyFM") [Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Lit (Intc  0),Lit (Intc  0)]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FiniteMap","minFM") [],Var 2]],Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FiniteMap","maxFM") [],Var 2]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])]))])),Func ("GraphInductive","context") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("GraphInductive","match") [Var 2,Var 1]) [Branch (Pattern ("Prelude","(,)") [3,4]) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","Nothing") []) (Comb FuncCall ("Prelude","error") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),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  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","show") [Var 2]]]),Branch (Pattern ("Prelude","Just") [5]) (Var 5)])])),Func ("GraphInductive","lab") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Maybe") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Maybe",">>-") [Comb FuncCall ("Prelude","fst") [Comb FuncCall ("GraphInductive","match") [Var 2,Var 1]],Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Prelude","Just") [],Comb (FuncPartCall 1) ("GraphInductive","lab'") []]])),Func ("GraphInductive","neighbors") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("GraphInductive","neighbors._#lambda7") []],Comb (FuncPartCall 2) ("GraphInductive","context") []])),Func ("GraphInductive","neighbors._#lambda7") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 416,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 415,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 416,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") [],Comb FuncCall ("Prelude","++") [Var 2,Var 5]])])),Func ("GraphInductive","suc") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") []]],Comb FuncCall ("GraphInductive","context4") []])),Func ("GraphInductive","pre") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") []]],Comb FuncCall ("GraphInductive","context1") []])),Func ("GraphInductive","lsuc") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 1]]))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","flip2") []]],Comb FuncCall ("GraphInductive","context4") []])),Func ("GraphInductive","lpre") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 1]]))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","flip2") []]],Comb FuncCall ("GraphInductive","context1") []])),Func ("GraphInductive","out") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]]))) (Rule [1,2] (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","out._#lambda8") [Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","context4") [],Var 1],Var 2]])),Func ("GraphInductive","out._#lambda8") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TVar 511,TCons ("Prelude","Int") []]) (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 511]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb ConsCall ("Prelude","(,,)") [Var 1,Var 4,Var 3])])),Func ("GraphInductive","inn") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]]))) (Rule [1,2] (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","inn._#lambda9") [Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","context1") [],Var 1],Var 2]])),Func ("GraphInductive","inn._#lambda9") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TVar 521,TCons ("Prelude","Int") []]) (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 521]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb ConsCall ("Prelude","(,,)") [Var 4,Var 1,Var 3])])),Func ("GraphInductive","outdeg") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("Prelude","length") []],Comb FuncCall ("GraphInductive","context4") []])),Func ("GraphInductive","indeg") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("Prelude","length") []],Comb FuncCall ("GraphInductive","context1") []])),Func ("GraphInductive","deg") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("GraphInductive","deg._#lambda10") []],Comb (FuncPartCall 2) ("GraphInductive","context") []])),Func ("GraphInductive","deg._#lambda10") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 553,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 552,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 553,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","length") [Var 2],Comb FuncCall ("Prelude","length") [Var 5]])])),Func ("GraphInductive","gelem") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Maybe","isJust") [Comb FuncCall ("Prelude","fst") [Comb FuncCall ("GraphInductive","match") [Var 1,Var 2]]])),Func ("GraphInductive","equal") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","slabNodes") [],Var 1],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","slabNodes") [],Var 2]],Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","slabEdges") [],Var 1],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","slabEdges") [],Var 2]]])),Func ("GraphInductive","nodeComp") 2 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","EQ") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("Prelude","fst") [Var 1],Comb FuncCall ("Prelude","fst") [Var 2]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("GraphInductive","slabNodes") 0 Private (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("GraphInductive","sortBy") [Comb (FuncPartCall 2) ("GraphInductive","nodeComp") []],Comb (FuncPartCall 1) ("GraphInductive","labNodes") []])),Func ("GraphInductive","edgeComp") 2 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]) (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Let [(3,Var 1)] (Let [(4,Comb FuncCall ("GraphInductive","edgeComp._#selFP11#v") [Var 3])] (Let [(5,Comb FuncCall ("GraphInductive","edgeComp._#selFP12#w") [Var 3])] (Let [(6,Var 2)] (Let [(7,Comb FuncCall ("GraphInductive","edgeComp._#selFP9#x") [Var 6])] (Let [(8,Comb FuncCall ("GraphInductive","edgeComp._#selFP10#y") [Var 6])] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","EQ") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","<") [Var 4,Var 7],Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 4,Var 7],Comb FuncCall ("Prelude","<") [Var 5,Var 8]]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])))))))),Func ("GraphInductive","edgeComp._#selFP11#v") 1 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 613]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 2)])),Func ("GraphInductive","edgeComp._#selFP12#w") 1 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 613]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 3)])),Func ("GraphInductive","edgeComp._#selFP9#x") 1 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 613]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 2)])),Func ("GraphInductive","edgeComp._#selFP10#y") 1 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 613]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 3)])),Func ("GraphInductive","slabEdges") 0 Private (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("GraphInductive","sortBy") [Comb (FuncPartCall 2) ("GraphInductive","edgeComp") []],Comb (FuncPartCall 1) ("GraphInductive","labEdges") []])),Func ("GraphInductive","node'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("GraphInductive","lab'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TVar 1)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("GraphInductive","labNode'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 1])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb ConsCall ("Prelude","(,)") [Var 3,Var 4])])),Func ("GraphInductive","neighbors'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") [],Var 2],Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") [],Var 5]])])),Func ("GraphInductive","suc'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") [],Var 5])])),Func ("GraphInductive","pre'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") [],Var 2])])),Func ("GraphInductive","lpre'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","flip2") [],Var 2])])),Func ("GraphInductive","lsuc'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","flip2") [],Var 5])])),Func ("GraphInductive","out'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","out'._#lambda11") [Var 3],Var 5])])),Func ("GraphInductive","out'._#lambda11") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TVar 732,TCons ("Prelude","Int") []]) (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 732]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb ConsCall ("Prelude","(,,)") [Var 1,Var 4,Var 3])])),Func ("GraphInductive","inn'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","inn'._#lambda12") [Var 3],Var 2])])),Func ("GraphInductive","inn'._#lambda12") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TVar 742,TCons ("Prelude","Int") []]) (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 742]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb ConsCall ("Prelude","(,,)") [Var 4,Var 1,Var 3])])),Func ("GraphInductive","outdeg'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","length") [Var 5])])),Func ("GraphInductive","indeg'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","length") [Var 2])])),Func ("GraphInductive","deg'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","length") [Var 2],Comb FuncCall ("Prelude","length") [Var 5]])])),Func ("GraphInductive","labNodes") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("GraphInductive","Gr") [2]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","labNodes._#lambda13") [],Comb FuncCall ("FiniteMap","fmToList") [Var 2]])])),Func ("GraphInductive","labNodes._#lambda13") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 574,TCons ("Prelude","Int") []]],TVar 573,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 574,TCons ("Prelude","Int") []]]]]) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 573])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,,)") [4,5,6]) (Comb ConsCall ("Prelude","(,)") [Var 2,Var 5])])])),Func ("GraphInductive","labEdges") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("GraphInductive","Gr") [2]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("GraphInductive","labEdges._#lambda14") []],Comb FuncCall ("FiniteMap","fmToList") [Var 2]])])),Func ("GraphInductive","labEdges._#lambda14") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 620,TCons ("Prelude","Int") []]],TVar 619,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 620,TCons ("Prelude","Int") []]]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 620]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,,)") [4,5,6]) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","labEdges._#lambda14._#lambda15") [Var 2],Var 6])])])),Func ("GraphInductive","labEdges._#lambda14._#lambda15") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TVar 620,TCons ("Prelude","Int") []]) (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 620]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb ConsCall ("Prelude","(,,)") [Var 1,Var 4,Var 3])])),Func ("GraphInductive","nodes") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","fst") []],Comb (FuncPartCall 1) ("GraphInductive","labNodes") []])),Func ("GraphInductive","edges") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","edges._#lambda16") []],Comb (FuncPartCall 1) ("GraphInductive","labEdges") []])),Func ("GraphInductive","edges._#lambda16") 1 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 788]) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Comb ConsCall ("Prelude","(,)") [Var 2,Var 3])])),Func ("GraphInductive","newNodes") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("GraphInductive","nodeRange") [Var 2])] (Let [(4,Comb FuncCall ("GraphInductive","newNodes._#selFP14#n") [Var 3])] (Comb FuncCall ("Prelude","enumFromTo") [Comb FuncCall ("Prelude","+") [Var 4,Lit (Intc  1)],Comb FuncCall ("Prelude","+") [Var 4,Var 1]])))),Func ("GraphInductive","newNodes._#selFP14#n") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("GraphInductive","ufold") 3 Public (FuncType (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2))) (FuncType (TVar 2) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TVar 2)))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("GraphInductive","matchAny") [Var 3])] (Let [(5,Comb FuncCall ("GraphInductive","ufold._#selFP16#c") [Var 4])] (Let [(6,Comb FuncCall ("GraphInductive","ufold._#selFP17#g'") [Var 4])] (Case  Rigid (Comb FuncCall ("GraphInductive","isEmpty") [Var 3]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 5],Comb FuncCall ("GraphInductive","ufold") [Var 1,Var 2,Var 6]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])]))))),Func ("GraphInductive","ufold._#selFP16#c") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 807,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 806,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 807,TCons ("Prelude","Int") []]]],TCons ("GraphInductive","Graph") [TVar 806,TVar 807]]) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 807,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 806,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 807,TCons ("Prelude","Int") []]]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("GraphInductive","ufold._#selFP17#g'") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 807,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 806,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 807,TCons ("Prelude","Int") []]]],TCons ("GraphInductive","Graph") [TVar 806,TVar 807]]) (TCons ("GraphInductive","Graph") [TVar 806,TVar 807])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("GraphInductive","gmap") 1 Public (FuncType (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 2,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 3,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 2,TCons ("Prelude","Int") []]]])) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 3,TVar 2]))) (Rule [1] (Comb (FuncPartCall 1) ("GraphInductive","ufold") [Comb (FuncPartCall 1) ("GraphInductive","gmap._#lambda17") [Var 1],Comb FuncCall ("GraphInductive","empty") []])),Func ("GraphInductive","gmap._#lambda17") 2 Private (FuncType (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 821,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 822,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 821,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 830,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 829,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 830,TCons ("Prelude","Int") []]]])) (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 821,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 822,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 821,TCons ("Prelude","Int") []]]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 829,TVar 830]) (TCons ("GraphInductive","Graph") [TVar 829,TVar 830])))) (Rule [1,2] (Comb (FuncPartCall 1) ("GraphInductive",":&") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2]])),Func ("GraphInductive","nmap") 1 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 2]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 2]))) (Rule [1] (Comb FuncCall ("GraphInductive","gmap") [Comb (FuncPartCall 1) ("GraphInductive","nmap._#lambda18") [Var 1]])),Func ("GraphInductive","nmap._#lambda18") 2 Private (FuncType (FuncType (TVar 841) (TVar 844)) (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 837,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 841,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 837,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 837,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 844,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 837,TCons ("Prelude","Int") []]]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,,,)") [3,4,5,6]) (Comb ConsCall ("Prelude","(,,,)") [Var 3,Var 4,Comb FuncCall ("Prelude","apply") [Var 1,Var 5],Var 6])])),Func ("GraphInductive","emap") 1 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("GraphInductive","Graph") [TVar 2,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 2,TVar 1]))) (Rule [1] (Comb FuncCall ("GraphInductive","gmap") [Comb (FuncPartCall 1) ("GraphInductive","emap._#lambda20") [Var 1]])),Func ("GraphInductive","emap.map1.213") 1 Private (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 2]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TVar 2]]))) (Rule [1] (Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","emap.map1.213._#lambda19") [Var 1]])),Func ("GraphInductive","emap.map1.213._#lambda19") 2 Private (FuncType (FuncType (TVar 853) (TVar 856)) (FuncType (TCons ("Prelude","(,)") [TVar 853,TVar 854]) (TCons ("Prelude","(,)") [TVar 856,TVar 854]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4])])),Func ("GraphInductive","emap._#lambda20") 2 Private (FuncType (FuncType (TVar 865) (TVar 866)) (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 865,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 863,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 865,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 866,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 863,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 866,TCons ("Prelude","Int") []]]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,,,)") [3,4,5,6]) (Comb ConsCall ("Prelude","(,,,)") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","emap.map1.213") [Var 1],Var 3],Var 4,Var 5,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive","emap.map1.213") [Var 1],Var 6]])])),Func ("GraphInductive","labUEdges") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TVar 0,TVar 1,TCons ("Prelude","()") []]])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","labUEdges._#lambda21") []])),Func ("GraphInductive","labUEdges._#lambda21") 1 Private (FuncType (TCons ("Prelude","(,)") [TVar 249,TVar 250]) (TCons ("Prelude","(,,)") [TVar 249,TVar 250,TCons ("Prelude","()") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb ConsCall ("Prelude","(,,)") [Var 2,Var 3,Comb ConsCall ("Prelude","()") []])])),Func ("GraphInductive","labUNodes") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","()") []]])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","labUNodes._#lambda22") []])),Func ("GraphInductive","labUNodes._#lambda22") 1 Private (FuncType (TVar 254) (TCons ("Prelude","(,)") [TVar 254,TCons ("Prelude","()") []])) (Rule [1] (Comb ConsCall ("Prelude","(,)") [Var 1,Comb ConsCall ("Prelude","()") []])),Func ("GraphInductive","showGraph") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("GraphInductive","Gr") [2]) (Comb FuncCall ("Prelude","unlines") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("GraphInductive","showNode") [],Comb FuncCall ("FiniteMap","fmToList") [Var 2]]])])),Func ("GraphInductive","showNode") 1 Private (FuncType (TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","(,,)") [TVar 1,TVar 2,TVar 3]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,,)") [4,5,6]) (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 2],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 5],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  '>'),Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Prelude","show") [Var 6]]]]])])])),Func ("GraphInductive",".:") 0 Private (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (FuncType (TVar 3) (TVar 0))) (FuncType (TVar 2) (FuncType (TVar 3) (TVar 1))))) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Prelude",".") [],Comb (FuncPartCall 2) ("Prelude",".") []])),Func ("GraphInductive","fst4") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("GraphInductive","fth4") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TVar 0,TVar 1,TVar 2,TVar 3]) (TVar 3)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("GraphInductive","flip2") 1 Private (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TVar 1,TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb ConsCall ("Prelude","(,)") [Var 3,Var 2])])),Func ("GraphInductive","context1") 0 Private (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("GraphInductive","fst4") []],Comb (FuncPartCall 2) ("GraphInductive","context") []])),Func ("GraphInductive","context4") 0 Private (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]))) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("GraphInductive",".:") [],Comb (FuncPartCall 1) ("GraphInductive","fth4") []],Comb (FuncPartCall 2) ("GraphInductive","context") []])),Func ("GraphInductive","addSucc") 3 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("Prelude","(,,)") [TVar 2,TVar 3,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TVar 0]]]) (TCons ("Prelude","(,,)") [TVar 2,TVar 3,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TVar 0]]])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,,)") [4,5,6]) (Comb ConsCall ("Prelude","(,,)") [Var 4,Var 5,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Var 2,Var 1],Var 6]])])),Func ("GraphInductive","addPred") 3 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TVar 0]],TVar 2,TVar 3]) (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TVar 0]],TVar 2,TVar 3])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,,)") [4,5,6]) (Comb ConsCall ("Prelude","(,,)") [Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Var 2,Var 1],Var 4],Var 5,Var 6])])),Func ("GraphInductive","clearSucc") 3 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("Prelude","(,,)") [TVar 2,TVar 3,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 4,TVar 0]]]) (TCons ("Prelude","(,,)") [TVar 2,TVar 3,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 4,TVar 0]]])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,,)") [4,5,6]) (Comb ConsCall ("Prelude","(,,)") [Var 4,Var 5,Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Var 1],Comb (FuncPartCall 1) ("Prelude","snd") []],Var 6]])])),Func ("GraphInductive","clearPred") 3 Private (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 2,TVar 0]],TVar 3,TVar 4]) (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 2,TVar 0]],TVar 3,TVar 4])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,,)") [4,5,6]) (Comb ConsCall ("Prelude","(,,)") [Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Var 1],Comb (FuncPartCall 1) ("Prelude","snd") []],Var 4],Var 5,Var 6])])),Func ("GraphInductive","updAdj") 3 Private (FuncType (TCons ("FiniteMap","FM") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]))) (TCons ("FiniteMap","FM") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Var 1),Branch (Pattern ("Prelude",":") [4,5]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","(,)") [6,7]) (Case  Rigid (Comb FuncCall ("FiniteMap","elemFM") [Var 7,Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("GraphInductive","updAdj") [Comb FuncCall ("FiniteMap","updFM") [Var 1,Var 7,Comb FuncCall ("Prelude","apply") [Var 3,Var 6]],Var 5,Var 3]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","error") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),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  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","show") [Var 7]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("GraphInductive","sortBy") 1 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Ordering") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1] (Comb (FuncPartCall 1) ("Sort","mergeSort") [Comb (FuncPartCall 2) ("GraphInductive","sortBy._#lambda23") [Var 1]])),Func ("GraphInductive","sortBy._#lambda23") 3 Private (FuncType (FuncType (TVar 587) (FuncType (TVar 587) (TCons ("Prelude","Ordering") []))) (FuncType (TVar 587) (FuncType (TVar 587) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 3])] (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude","EQ") []],Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude","LT") []]])))] [Op ("GraphInductive",".:") InfixrOp 5,Op ("GraphInductive",":&") InfixrOp 5]
diff --git a/src/lib/Curry/Module/.curry/GraphInductive.fint b/src/lib/Curry/Module/.curry/GraphInductive.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/GraphInductive.fint
@@ -0,0 +1,1 @@
+Prog "GraphInductive" ["FiniteMap","Maybe","Prelude","Sort"] [TypeSyn ("GraphInductive","Node") Public [] (TCons ("Prelude","Int") []),TypeSyn ("GraphInductive","LNode") Public [0] (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]),TypeSyn ("GraphInductive","UNode") Public [] (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","()") []]),TypeSyn ("GraphInductive","Edge") Public [] (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]),TypeSyn ("GraphInductive","LEdge") Public [0] (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]),TypeSyn ("GraphInductive","UEdge") Public [] (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","()") []]),TypeSyn ("GraphInductive","Context") Public [0,1] (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]),TypeSyn ("GraphInductive","Adj") Private [0] (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]),TypeSyn ("GraphInductive","MContext") Public [0,1] (TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]]),TypeSyn ("GraphInductive","Context'") Public [0,1] (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]),TypeSyn ("GraphInductive","UContext") Public [] (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]),TypeSyn ("GraphInductive","GDecomp") Public [0,1] (TCons ("Prelude","(,)") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]],TCons ("GraphInductive","Graph") [TVar 0,TVar 1]]),TypeSyn ("GraphInductive","Decomp") Public [0,1] (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 0,TVar 1]]),TypeSyn ("GraphInductive","UDecomp") Public [0] (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]],TVar 0]),TypeSyn ("GraphInductive","Path") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TypeSyn ("GraphInductive","LPath") Public [0] (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]]),TypeSyn ("GraphInductive","UPath") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","()") []]]),TypeSyn ("GraphInductive","GraphRep") Private [0,1] (TCons ("FiniteMap","FM") [TCons ("Prelude","Int") [],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]]),TypeSyn ("GraphInductive","UGr") Public [] (TCons ("GraphInductive","Graph") [TCons ("Prelude","()") [],TCons ("Prelude","()") []]),Type ("GraphInductive","Graph") Public [0,1] []] [Func ("GraphInductive",":&") 2 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]))) (Rule [] (Var 0)),Func ("GraphInductive","matchAny") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]],TCons ("GraphInductive","Graph") [TVar 0,TVar 1]])) (Rule [] (Var 0)),Func ("GraphInductive","empty") 0 Public (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (Rule [] (Var 0)),Func ("GraphInductive","mkGraph") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("GraphInductive","buildGr") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 0])) (Rule [] (Var 0)),Func ("GraphInductive","mkUGraph") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]]) (TCons ("GraphInductive","Graph") [TCons ("Prelude","()") [],TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("GraphInductive","insNode") 1 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("GraphInductive","insEdge") 2 Public (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]))) (Rule [] (Var 0)),Func ("GraphInductive","delNode") 1 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("GraphInductive","delEdge") 2 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("GraphInductive","insNodes") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("GraphInductive","insEdges") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]))) (Rule [] (Var 0)),Func ("GraphInductive","delNodes") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("GraphInductive","delEdges") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]))) (Rule [] (Var 0)),Func ("GraphInductive","isEmpty") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("GraphInductive","match") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]],TCons ("GraphInductive","Graph") [TVar 0,TVar 1]]))) (Rule [] (Var 0)),Func ("GraphInductive","noNodes") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("GraphInductive","nodeRange") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("GraphInductive","context") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 1,TCons ("Prelude","Int") []]]]))) (Rule [] (Var 0)),Func ("GraphInductive","lab") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Maybe") [TVar 0]))) (Rule [] (Var 0)),Func ("GraphInductive","neighbors") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("GraphInductive","suc") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("GraphInductive","pre") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("GraphInductive","lsuc") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 1]]))) (Rule [] (Var 0)),Func ("GraphInductive","lpre") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 1]]))) (Rule [] (Var 0)),Func ("GraphInductive","out") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]]))) (Rule [] (Var 0)),Func ("GraphInductive","inn") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]]))) (Rule [] (Var 0)),Func ("GraphInductive","outdeg") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("GraphInductive","indeg") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("GraphInductive","deg") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("GraphInductive","gelem") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("GraphInductive","equal") 2 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("GraphInductive","node'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("GraphInductive","lab'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TVar 1)) (Rule [] (Var 0)),Func ("GraphInductive","labNode'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 1])) (Rule [] (Var 0)),Func ("GraphInductive","neighbors'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("GraphInductive","suc'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("GraphInductive","pre'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("GraphInductive","lpre'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]])) (Rule [] (Var 0)),Func ("GraphInductive","lsuc'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]])) (Rule [] (Var 0)),Func ("GraphInductive","out'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]])) (Rule [] (Var 0)),Func ("GraphInductive","inn'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 0]])) (Rule [] (Var 0)),Func ("GraphInductive","outdeg'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("GraphInductive","indeg'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("GraphInductive","deg'") 1 Public (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("GraphInductive","labNodes") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TVar 0]])) (Rule [] (Var 0)),Func ("GraphInductive","labEdges") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TVar 1]])) (Rule [] (Var 0)),Func ("GraphInductive","nodes") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("GraphInductive","edges") 0 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]])) (Rule [] (Var 0)),Func ("GraphInductive","newNodes") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("GraphInductive","ufold") 3 Public (FuncType (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (FuncType (TVar 2) (TVar 2))) (FuncType (TVar 2) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TVar 2)))) (Rule [] (Var 0)),Func ("GraphInductive","gmap") 1 Public (FuncType (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 1,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","Int") []]]]) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 2,TCons ("Prelude","Int") []]],TCons ("Prelude","Int") [],TVar 3,TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 2,TCons ("Prelude","Int") []]]])) (FuncType (TCons ("GraphInductive","Graph") [TVar 1,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 3,TVar 2]))) (Rule [] (Var 0)),Func ("GraphInductive","nmap") 1 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 2]) (TCons ("GraphInductive","Graph") [TVar 1,TVar 2]))) (Rule [] (Var 0)),Func ("GraphInductive","emap") 1 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("GraphInductive","Graph") [TVar 2,TVar 0]) (TCons ("GraphInductive","Graph") [TVar 2,TVar 1]))) (Rule [] (Var 0)),Func ("GraphInductive","labUEdges") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TVar 0,TVar 1,TCons ("Prelude","()") []]])) (Rule [] (Var 0)),Func ("GraphInductive","labUNodes") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","()") []]])) (Rule [] (Var 0)),Func ("GraphInductive","showGraph") 1 Public (FuncType (TCons ("GraphInductive","Graph") [TVar 0,TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0))] [Op ("GraphInductive",".:") InfixrOp 5,Op ("GraphInductive",":&") InfixrOp 5]
diff --git a/src/lib/Curry/Module/.curry/GraphInductive.uacy b/src/lib/Curry/Module/.curry/GraphInductive.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/GraphInductive.uacy
@@ -0,0 +1,97 @@
+CurryProg "GraphInductive"
+ ["Prelude","FiniteMap","Sort","Maybe"]
+ [CType ("GraphInductive","Graph") Public [(0,"nodeLabel"),(1,"edgeLabel")] [CCons ("GraphInductive","Gr") 1 Private [CTCons ("GraphInductive","GraphRep") [CTVar (0,"nodeLabel"),CTVar (1,"edgeLabel")]]],
+  CTypeSyn ("GraphInductive","Node") Public [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("GraphInductive","LNode") Public [(0,"a")] (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTVar (0,"a")]),
+  CTypeSyn ("GraphInductive","UNode") Public [] (CTCons ("GraphInductive","LNode") [CTCons ("Prelude","()") []]),
+  CTypeSyn ("GraphInductive","Edge") Public [] (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTCons ("GraphInductive","Node") []]),
+  CTypeSyn ("GraphInductive","LEdge") Public [(0,"b")] (CTCons ("Prelude","(,,)") [CTCons ("GraphInductive","Node") [],CTCons ("GraphInductive","Node") [],CTVar (0,"b")]),
+  CTypeSyn ("GraphInductive","UEdge") Public [] (CTCons ("GraphInductive","LEdge") [CTCons ("Prelude","()") []]),
+  CTypeSyn ("GraphInductive","Context") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","(,,,)") [CTCons ("GraphInductive","Adj") [CTVar (1,"b")],CTCons ("GraphInductive","Node") [],CTVar (0,"a"),CTCons ("GraphInductive","Adj") [CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","Adj") Private [(0,"b")] (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"b"),CTCons ("GraphInductive","Node") []]]),
+  CTypeSyn ("GraphInductive","MContext") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","Maybe") [CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","Context'") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","(,,)") [CTCons ("GraphInductive","Adj") [CTVar (1,"b")],CTVar (0,"a"),CTCons ("GraphInductive","Adj") [CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","UContext") Public [] (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []],CTCons ("GraphInductive","Node") [],CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]]),
+  CTypeSyn ("GraphInductive","GDecomp") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"b")],CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","Decomp") Public [(0,"a"),(1,"b")] (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","MContext") [CTVar (0,"a"),CTVar (1,"b")],CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","UDecomp") Public [(0,"g")] (CTCons ("Prelude","(,)") [CTCons ("Prelude","Maybe") [CTCons ("GraphInductive","UContext") []],CTVar (0,"g")]),
+  CTypeSyn ("GraphInductive","Path") Public [] (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]),
+  CTypeSyn ("GraphInductive","LPath") Public [(0,"a")] (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LNode") [CTVar (0,"a")]]),
+  CTypeSyn ("GraphInductive","UPath") Public [] (CTCons ("Prelude","[]") [CTCons ("GraphInductive","UNode") []]),
+  CTypeSyn ("GraphInductive","GraphRep") Private [(0,"a"),(1,"b")] (CTCons ("FiniteMap","FM") [CTCons ("GraphInductive","Node") [],CTCons ("GraphInductive","Context'") [CTVar (0,"a"),CTVar (1,"b")]]),
+  CTypeSyn ("GraphInductive","UGr") Public [] (CTCons ("GraphInductive","Graph") [CTCons ("Prelude","()") [],CTCons ("Prelude","()") []])]
+ [CFunc ("GraphInductive",".:") 0 Private (CFuncType (CFuncType (CTVar (0,"c")) (CTVar (1,"d"))) (CFuncType (CFuncType (CTVar (2,"a")) (CFuncType (CTVar (3,"b")) (CTVar (0,"c")))) (CFuncType (CTVar (2,"a")) (CFuncType (CTVar (3,"b")) (CTVar (1,"d")))))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","."))) (CSymbol ("Prelude",".")))] []]),
+  CFunc ("GraphInductive",":&") 2 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"nl"),CTVar (1,"el")]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"nl"),CTVar (1,"el")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"nl"),CTVar (1,"el")]))) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"v"),CPVar (2,"l"),CPVar (3,"s")],CPComb ("GraphInductive","Gr") [CPVar (4,"g")]] [(CApply (CApply (CSymbol ("FiniteMap","elemFM")) (CVar (1,"v"))) (CVar (4,"g")),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (1,"v")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","show")) (CVar (2,"l"))))))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("GraphInductive","Gr")) (CVar (7,"g3")))] [CLocalPat (CPVar (5,"g1")) (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM")) (CVar (4,"g"))) (CVar (1,"v"))) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (0,"p"))) (CVar (2,"l"))) (CVar (3,"s")))) [],CLocalPat (CPVar (6,"g2")) (CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CVar (5,"g1"))) (CVar (0,"p"))) (CApply (CSymbol ("GraphInductive","addSucc")) (CVar (1,"v")))) [],CLocalPat (CPVar (7,"g3")) (CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CVar (6,"g2"))) (CVar (3,"s"))) (CApply (CSymbol ("GraphInductive","addPred")) (CVar (1,"v")))) []]]),
+  CFunc ("GraphInductive","addPred") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"l"),CPComb ("Prelude","(,,)") [CPVar (2,"p"),CPVar (3,"l'"),CPVar (4,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"l"))) (CVar (0,"v")))) (CVar (2,"p")))) (CVar (3,"l'"))) (CVar (4,"s")))] []]),
+  CFunc ("GraphInductive","addSucc") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"l"),CPComb ("Prelude","(,,)") [CPVar (2,"p"),CPVar (3,"l'"),CPVar (4,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (2,"p"))) (CVar (3,"l'"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"l"))) (CVar (0,"v")))) (CVar (4,"s"))))] []]),
+  CFunc ("GraphInductive","buildGr") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("GraphInductive",":&"))) (CSymbol ("GraphInductive","empty")))] []]),
+  CFunc ("GraphInductive","clearPred") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"_"),CPComb ("Prelude","(,,)") [CPVar (2,"p"),CPVar (3,"l"),CPVar (4,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (5,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (5,"x0"))) (CVar (0,"v"))))) (CSymbol ("Prelude","snd")))) (CVar (2,"p")))) (CVar (3,"l"))) (CVar (4,"s")))] []]),
+  CFunc ("GraphInductive","clearSucc") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"_"),CPComb ("Prelude","(,,)") [CPVar (2,"p"),CPVar (3,"l"),CPVar (4,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (2,"p"))) (CVar (3,"l"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (5,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (5,"x0"))) (CVar (0,"v"))))) (CSymbol ("Prelude","snd")))) (CVar (4,"s"))))] []]),
+  CFunc ("GraphInductive","context") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (1,"v"))) (CVar (0,"g"))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Nothing") [],CPVar (2,"_")]) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","show")) (CVar (1,"v"))))),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Just") [CPVar (3,"c")],CPVar (4,"_")]) (CVar (3,"c"))])] []]),
+  CFunc ("GraphInductive","context1") 0 Private (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("GraphInductive","Adj") [CTVar (1,"b")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CSymbol ("GraphInductive","fst4"))) (CSymbol ("GraphInductive","context")))] []]),
+  CFunc ("GraphInductive","context4") 0 Private (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("GraphInductive","Adj") [CTVar (1,"b")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CSymbol ("GraphInductive","fth4"))) (CSymbol ("GraphInductive","context")))] []]),
+  CFunc ("GraphInductive","deg") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CLambda [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","length")) (CVar (0,"p")))) (CApply (CSymbol ("Prelude","length")) (CVar (3,"s")))))) (CSymbol ("GraphInductive","context")))] []]),
+  CFunc ("GraphInductive","deg'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","length")) (CVar (0,"p")))) (CApply (CSymbol ("Prelude","length")) (CVar (3,"s"))))] []]),
+  CFunc ("GraphInductive","delEdge") 2 Public (CFuncType (CTCons ("GraphInductive","Edge") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"v"),CPVar (1,"w")],CPVar (2,"g")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (0,"v"))) (CVar (2,"g"))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Nothing") [],CPVar (3,"_")]) (CVar (2,"g")),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Just") [CPComb ("Prelude","(,,,)") [CPVar (4,"p"),CPVar (5,"v'"),CPVar (6,"l"),CPVar (7,"s")]],CPVar (8,"g'")]) (CApply (CApply (CSymbol ("GraphInductive",":&")) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CVar (4,"p"))) (CVar (5,"v'"))) (CVar (6,"l"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (9,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (9,"x0"))) (CVar (1,"w"))))) (CSymbol ("Prelude","snd")))) (CVar (7,"s"))))) (CVar (8,"g'")))])] []]),
+  CFunc ("GraphInductive","delEdges") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Edge") []]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"es"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("GraphInductive","delEdge"))) (CVar (1,"g"))) (CVar (0,"es")))] []]),
+  CFunc ("GraphInductive","delNode") 1 Public (CFuncType (CTCons ("GraphInductive","Node") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"v")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("GraphInductive","delNodes")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"v"))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("GraphInductive","delNodes") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"g")] [(CSymbol ("Prelude","success"),CVar (0,"g"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"v"),CPVar (2,"vs")],CPVar (3,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive","delNodes")) (CVar (2,"vs"))) (CApply (CSymbol ("Prelude","snd")) (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (1,"v"))) (CVar (3,"g")))))] []]),
+  CFunc ("GraphInductive","edgeComp") 2 Private (CFuncType (CTCons ("GraphInductive","LEdge") [CTVar (0,"b")]) (CFuncType (CTCons ("GraphInductive","LEdge") [CTVar (0,"b")]) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"e"),CPVar (1,"e'")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"e"))) (CVar (1,"e'")),CSymbol ("Prelude","EQ")),(CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (2,"v"))) (CVar (5,"x")))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"v"))) (CVar (5,"x")))) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (3,"w"))) (CVar (6,"y")))),CSymbol ("Prelude","LT")),(CSymbol ("Prelude","otherwise"),CSymbol ("Prelude","GT"))] [CLocalPat (CPComb ("Prelude","(,,)") [CPVar (2,"v"),CPVar (3,"w"),CPVar (4,"_")]) (CVar (0,"e")) [],CLocalPat (CPComb ("Prelude","(,,)") [CPVar (5,"x"),CPVar (6,"y"),CPVar (7,"_")]) (CVar (1,"e'")) []]]),
+  CFunc ("GraphInductive","edges") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Edge") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,,)") [CPVar (0,"v"),CPVar (1,"w"),CPVar (2,"_")]] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"v"))) (CVar (1,"w")))))) (CSymbol ("GraphInductive","labEdges")))] []]),
+  CFunc ("GraphInductive","emap") 1 Public (CFuncType (CFuncType (CTVar (0,"b")) (CTVar (1,"c"))) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (2,"a"),CTVar (0,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (2,"a"),CTVar (1,"c")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("GraphInductive","gmap")) (CLambda [CPComb ("Prelude","(,,,)") [CPVar (1,"p"),CPVar (2,"v"),CPVar (3,"l"),CPVar (4,"s")]] (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CApply (CApply (CSymbol ("GraphInductive","map1")) (CVar (0,"f"))) (CVar (1,"p")))) (CVar (2,"v"))) (CVar (3,"l"))) (CApply (CApply (CSymbol ("GraphInductive","map1")) (CVar (0,"f"))) (CVar (4,"s"))))))] [CLocalFunc (CFunc ("GraphInductive","map1") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (2,"l"),CPVar (3,"v")]] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CVar (1,"g")) (CVar (2,"l")))) (CVar (3,"v")))))] []]))]]),
+  CFunc ("GraphInductive","empty") 0 Public (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("GraphInductive","Gr")) (CApply (CSymbol ("FiniteMap","emptyFM")) (CSymbol ("Prelude","<"))))] []]),
+  CFunc ("GraphInductive","equal") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"g'")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("GraphInductive","slabNodes")) (CVar (0,"g")))) (CApply (CSymbol ("GraphInductive","slabNodes")) (CVar (1,"g'"))))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("GraphInductive","slabEdges")) (CVar (0,"g")))) (CApply (CSymbol ("GraphInductive","slabEdges")) (CVar (1,"g'")))))] []]),
+  CFunc ("GraphInductive","flip2") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"x"),CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"y"))) (CVar (0,"x")))] []]),
+  CFunc ("GraphInductive","fst4") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"x"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("GraphInductive","fth4") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"x")]] [(CSymbol ("Prelude","success"),CVar (3,"x"))] []]),
+  CFunc ("GraphInductive","gelem") 2 Public (CFuncType (CTCons ("GraphInductive","Node") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"v"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Maybe","isJust")) (CApply (CSymbol ("Prelude","fst")) (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (0,"v"))) (CVar (1,"g")))))] []]),
+  CFunc ("GraphInductive","gmap") 1 Public (CFuncType (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Context") [CTVar (2,"c"),CTVar (3,"d")])) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (2,"c"),CTVar (3,"d")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive","ufold")) (CLambda [CPVar (1,"c")] (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("GraphInductive",":&")) (CApply (CVar (0,"f")) (CVar (1,"c")))) (CVar (2,"x0")))))) (CSymbol ("GraphInductive","empty")))] []]),
+  CFunc ("GraphInductive","indeg") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CSymbol ("Prelude","length"))) (CSymbol ("GraphInductive","context1")))] []]),
+  CFunc ("GraphInductive","indeg'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","length")) (CVar (0,"p")))] []]),
+  CFunc ("GraphInductive","inn") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LEdge") [CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (2,"l"),CPVar (3,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (3,"w"))) (CVar (1,"v"))) (CVar (2,"l"))))) (CApply (CApply (CSymbol ("GraphInductive","context1")) (CVar (0,"g"))) (CVar (1,"v"))))] []]),
+  CFunc ("GraphInductive","inn'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LEdge") [CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"v"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (4,"l"),CPVar (5,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (5,"w"))) (CVar (1,"v"))) (CVar (4,"l"))))) (CVar (0,"p")))] []]),
+  CFunc ("GraphInductive","insEdge") 2 Public (CFuncType (CTCons ("GraphInductive","LEdge") [CTVar (0,"b")]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (1,"a"),CTVar (0,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (1,"a"),CTVar (0,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","(,,)") [CPVar (0,"v"),CPVar (1,"w"),CPVar (2,"l")],CPVar (3,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",":&")) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CVar (4,"pr"))) (CVar (0,"v"))) (CVar (6,"la"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (2,"l"))) (CVar (1,"w")))) (CVar (7,"su"))))) (CVar (8,"g'")))] [CLocalPat (CPComb ("Prelude","(,)") [CPComb ("Prelude","Just") [CPComb ("Prelude","(,,,)") [CPVar (4,"pr"),CPVar (5,"_"),CPVar (6,"la"),CPVar (7,"su")]],CPVar (8,"g'")]) (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (0,"v"))) (CVar (3,"g"))) []]]),
+  CFunc ("GraphInductive","insEdges") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LEdge") [CTVar (0,"b")]]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (1,"a"),CTVar (0,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (1,"a"),CTVar (0,"b")]))) (CRules CFlex [CRule [CPVar (0,"es"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("GraphInductive","insEdge"))) (CVar (1,"g"))) (CVar (0,"es")))] []]),
+  CFunc ("GraphInductive","insNode") 1 Public (CFuncType (CTCons ("GraphInductive","LNode") [CTVar (0,"a")]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"v"),CPVar (1,"l")]] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("GraphInductive",":&")) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CSymbol ("Prelude","[]"))) (CVar (0,"v"))) (CVar (1,"l"))) (CSymbol ("Prelude","[]")))) (CVar (2,"x0"))))] []]),
+  CFunc ("GraphInductive","insNodes") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LNode") [CTVar (0,"a")]]) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"vs"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("GraphInductive","insNode"))) (CVar (1,"g"))) (CVar (0,"vs")))] []]),
+  CFunc ("GraphInductive","isEmpty") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","isEmptyFM")) (CVar (0,"g")))] []]),
+  CFunc ("GraphInductive","lab") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"_")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Maybe",">>-")) (CApply (CSymbol ("Prelude","fst")) (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (1,"v"))) (CVar (0,"g"))))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","Just"))) (CSymbol ("GraphInductive","lab'"))))] []]),
+  CFunc ("GraphInductive","lab'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"_")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"l"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"l"))] []]),
+  CFunc ("GraphInductive","labEdges") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LEdge") [CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CLambda [CPComb ("Prelude","(,)") [CPVar (1,"v"),CPComb ("Prelude","(,,)") [CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"s")]]] (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (5,"l"),CPVar (6,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (1,"v"))) (CVar (6,"w"))) (CVar (5,"l"))))) (CVar (4,"s"))))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"g"))))] []]),
+  CFunc ("GraphInductive","labNode'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"_")]) (CTCons ("GraphInductive","LNode") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"v"),CPVar (2,"l"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"v"))) (CVar (2,"l")))] []]),
+  CFunc ("GraphInductive","labNodes") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (1,"v"),CPComb ("Prelude","(,,)") [CPVar (2,"_"),CPVar (3,"l"),CPVar (4,"_")]]] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"v"))) (CVar (3,"l"))))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"g"))))] []]),
+  CFunc ("GraphInductive","labUEdges") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (0,"v"),CPVar (1,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (0,"v"))) (CVar (1,"w"))) (CSymbol ("Prelude","()")))))] []]),
+  CFunc ("GraphInductive","labUNodes") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (0,"v")] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"v"))) (CSymbol ("Prelude","()")))))] []]),
+  CFunc ("GraphInductive","lpre") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTVar (1,"b")]]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","flip2")))) (CSymbol ("GraphInductive","context1")))] []]),
+  CFunc ("GraphInductive","lpre'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","flip2"))) (CVar (0,"p")))] []]),
+  CFunc ("GraphInductive","lsuc") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTVar (1,"b")]]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","flip2")))) (CSymbol ("GraphInductive","context4")))] []]),
+  CFunc ("GraphInductive","lsuc'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","flip2"))) (CVar (3,"s")))] []]),
+  CFunc ("GraphInductive","match") 2 Public (CFuncType (CTCons ("GraphInductive","Node") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Decomp") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"v"),CPComb ("GraphInductive","Gr") [CPVar (1,"g")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","Nothing"))) (CApply (CSymbol ("GraphInductive","Gr")) (CVar (1,"g"))))) (CLambda [CPComb ("Prelude","(,)") [CPVar (2,"g'"),CPComb ("Prelude","(,)") [CPVar (3,"_"),CPComb ("Prelude","(,,)") [CPVar (4,"p"),CPVar (5,"l"),CPVar (6,"s")]]]] (CLetDecl [CLocalPat (CPVar (7,"s'")) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (11,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (11,"x0"))) (CVar (0,"v"))))) (CSymbol ("Prelude","snd")))) (CVar (6,"s"))) [],CLocalPat (CPVar (8,"p'")) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (12,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (12,"x0"))) (CVar (0,"v"))))) (CSymbol ("Prelude","snd")))) (CVar (4,"p"))) [],CLocalPat (CPVar (9,"g1")) (CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CVar (2,"g'"))) (CVar (7,"s'"))) (CApply (CSymbol ("GraphInductive","clearPred")) (CVar (0,"v")))) [],CLocalPat (CPVar (10,"g2")) (CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CVar (9,"g1"))) (CVar (8,"p'"))) (CApply (CSymbol ("GraphInductive","clearSucc")) (CVar (0,"v")))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CVar (8,"p'"))) (CVar (0,"v"))) (CVar (5,"l"))) (CVar (6,"s"))))) (CApply (CSymbol ("GraphInductive","Gr")) (CVar (10,"g2"))))))) (CApply (CApply (CSymbol ("FiniteMap","splitFM")) (CVar (1,"g"))) (CVar (0,"v"))))] []]),
+  CFunc ("GraphInductive","matchAny") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","GDecomp") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CApply (CSymbol ("FiniteMap","isEmptyFM")) (CVar (0,"g")),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'G'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))),(CSymbol ("Prelude","otherwise"),CCase (CApply (CSymbol ("Prelude","head")) (CApply (CSymbol ("FiniteMap","fmToListPreOrder")) (CVar (0,"g")))) [CBranch (CPComb ("Prelude","(,)") [CPVar (1,"v"),CPVar (2,"_")]) (CCase (CApply (CApply (CSymbol ("GraphInductive","match")) (CVar (1,"v"))) (CApply (CSymbol ("GraphInductive","Gr")) (CVar (0,"g")))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Just") [CPVar (3,"c")],CPVar (4,"g'")]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"c"))) (CVar (4,"g'")))])])] []]),
+  CFunc ("GraphInductive","mkGraph") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LNode") [CTVar (0,"a")]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LEdge") [CTVar (1,"b")]]) (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"vs"),CPVar (1,"es")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("GraphInductive","insEdges")) (CVar (1,"es")))) (CApply (CSymbol ("GraphInductive","insNodes")) (CVar (0,"vs")))) (CSymbol ("GraphInductive","empty")))] []]),
+  CFunc ("GraphInductive","mkUGraph") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Edge") []]) (CTCons ("GraphInductive","Graph") [CTCons ("Prelude","()") [],CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"vs"),CPVar (1,"es")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive","mkGraph")) (CApply (CSymbol ("GraphInductive","labUNodes")) (CVar (0,"vs")))) (CApply (CSymbol ("GraphInductive","labUEdges")) (CVar (1,"es"))))] []]),
+  CFunc ("GraphInductive","neighbors") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CLambda [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"p"))) (CVar (3,"s")))))) (CSymbol ("GraphInductive","context")))] []]),
+  CFunc ("GraphInductive","neighbors'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CVar (0,"p")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CVar (3,"s"))))] []]),
+  CFunc ("GraphInductive","newNodes") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]))) (CRules CFlex [CRule [CPVar (0,"i"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","enumFromTo")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"n"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"n"))) (CVar (0,"i"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"_"),CPVar (3,"n")]) (CApply (CSymbol ("GraphInductive","nodeRange")) (CVar (1,"g"))) []]]),
+  CFunc ("GraphInductive","nmap") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"c"))) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (2,"b")]) (CTCons ("GraphInductive","Graph") [CTVar (1,"c"),CTVar (2,"b")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("GraphInductive","gmap")) (CLambda [CPComb ("Prelude","(,,,)") [CPVar (1,"p"),CPVar (2,"v"),CPVar (3,"l"),CPVar (4,"s")]] (CApply (CApply (CApply (CApply (CSymbol ("Prelude","(,,,)")) (CVar (1,"p"))) (CVar (2,"v"))) (CApply (CVar (0,"f")) (CVar (3,"l")))) (CVar (4,"s")))))] []]),
+  CFunc ("GraphInductive","noNodes") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (0,"g")))] []]),
+  CFunc ("GraphInductive","node'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("GraphInductive","Node") [])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"v"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"v"))] []]),
+  CFunc ("GraphInductive","nodeComp") 2 Private (CFuncType (CTCons ("GraphInductive","LNode") [CTVar (0,"b")]) (CFuncType (CTCons ("GraphInductive","LNode") [CTVar (0,"b")]) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"n'")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CVar (1,"n'")),CSymbol ("Prelude","EQ")),(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("Prelude","fst")) (CVar (0,"n")))) (CApply (CSymbol ("Prelude","fst")) (CVar (1,"n'"))),CSymbol ("Prelude","LT")),(CSymbol ("Prelude","otherwise"),CSymbol ("Prelude","GT"))] []]),
+  CFunc ("GraphInductive","nodeRange") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","(,)") [CTCons ("GraphInductive","Node") [],CTCons ("GraphInductive","Node") []])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CApply (CSymbol ("FiniteMap","isEmptyFM")) (CVar (0,"g")),CApply (CApply (CSymbol ("Prelude","(,)")) (CLit (CIntc 0))) (CLit (CIntc 0))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CVar (1,"ix")) (CApply (CSymbol ("FiniteMap","minFM")) (CVar (0,"g"))))) (CApply (CVar (1,"ix")) (CApply (CSymbol ("FiniteMap","maxFM")) (CVar (0,"g")))))] [CLocalPat (CPVar (1,"ix")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","fst"))) (CSymbol ("Maybe","fromJust"))) []]]),
+  CFunc ("GraphInductive","nodes") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","fst")))) (CSymbol ("GraphInductive","labNodes")))] []]),
+  CFunc ("GraphInductive","out") 2 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LEdge") [CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (2,"l"),CPVar (3,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (1,"v"))) (CVar (3,"w"))) (CVar (2,"l"))))) (CApply (CApply (CSymbol ("GraphInductive","context4")) (CVar (0,"g"))) (CVar (1,"v"))))] []]),
+  CFunc ("GraphInductive","out'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LEdge") [CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"v"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPComb ("Prelude","(,)") [CPVar (4,"l"),CPVar (5,"w")]] (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (1,"v"))) (CVar (5,"w"))) (CVar (4,"l"))))) (CVar (3,"s")))] []]),
+  CFunc ("GraphInductive","outdeg") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CSymbol ("Prelude","length"))) (CSymbol ("GraphInductive","context4")))] []]),
+  CFunc ("GraphInductive","outdeg'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","length")) (CVar (3,"s")))] []]),
+  CFunc ("GraphInductive","pre") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd")))) (CSymbol ("GraphInductive","context1")))] []]),
+  CFunc ("GraphInductive","pre'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"p"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CVar (0,"p")))] []]),
+  CFunc ("GraphInductive","showGraph") 1 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPComb ("GraphInductive","Gr") [CPVar (0,"g")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","unlines")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("GraphInductive","showNode"))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"g")))))] []]),
+  CFunc ("GraphInductive","showNode") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"v"),CPComb ("Prelude","(,,)") [CPVar (1,"_"),CPVar (2,"l'"),CPVar (3,"s")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"v")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"l'")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '>'))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","show")) (CVar (3,"s")))))))] []]),
+  CFunc ("GraphInductive","slabEdges") 0 Private (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LEdge") [CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("GraphInductive","sortBy")) (CSymbol ("GraphInductive","edgeComp")))) (CSymbol ("GraphInductive","labEdges")))] []]),
+  CFunc ("GraphInductive","slabNodes") 0 Private (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"_")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","LNode") [CTVar (0,"a")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("GraphInductive","sortBy")) (CSymbol ("GraphInductive","nodeComp")))) (CSymbol ("GraphInductive","labNodes")))] []]),
+  CFunc ("GraphInductive","sortBy") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","mergeSort")) (CLambda [CPVar (1,"x"),CPVar (2,"y")] (CLetDecl [CLocalPat (CPVar (3,"pxy")) (CApply (CApply (CVar (0,"p")) (CVar (1,"x"))) (CVar (2,"y"))) []] (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"pxy"))) (CSymbol ("Prelude","EQ")))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"pxy"))) (CSymbol ("Prelude","LT")))))))] []]),
+  CFunc ("GraphInductive","suc") 0 Public (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"_"),CTVar (0,"_")]) (CFuncType (CTCons ("GraphInductive","Node") []) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("GraphInductive",".:")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd")))) (CSymbol ("GraphInductive","context4")))] []]),
+  CFunc ("GraphInductive","suc'") 1 Public (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","[]") [CTCons ("GraphInductive","Node") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,,,)") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"s")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","snd"))) (CVar (3,"s")))] []]),
+  CFunc ("GraphInductive","ufold") 3 Public (CFuncType (CFuncType (CTCons ("GraphInductive","Context") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (2,"c")) (CTVar (2,"c")))) (CFuncType (CTVar (2,"c")) (CFuncType (CTCons ("GraphInductive","Graph") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (2,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"u"),CPVar (2,"g")] [(CApply (CSymbol ("GraphInductive","isEmpty")) (CVar (2,"g")),CVar (1,"u")),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (0,"f")) (CVar (3,"c"))) (CApply (CApply (CApply (CSymbol ("GraphInductive","ufold")) (CVar (0,"f"))) (CVar (1,"u"))) (CVar (4,"g'"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"c"),CPVar (4,"g'")]) (CApply (CSymbol ("GraphInductive","matchAny")) (CVar (2,"g"))) []]]),
+  CFunc ("GraphInductive","updAdj") 3 Private (CFuncType (CTCons ("GraphInductive","GraphRep") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("GraphInductive","Adj") [CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("GraphInductive","Context'") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("GraphInductive","Context'") [CTVar (0,"a"),CTVar (1,"b")]))) (CTCons ("GraphInductive","GraphRep") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"g"),CPComb ("Prelude","[]") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CVar (0,"g"))] [],CRule [CPVar (2,"g"),CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (3,"l"),CPVar (4,"v")],CPVar (5,"vs")],CPVar (6,"f")] [(CApply (CApply (CSymbol ("FiniteMap","elemFM")) (CVar (4,"v"))) (CVar (2,"g")),CApply (CApply (CApply (CSymbol ("GraphInductive","updAdj")) (CApply (CApply (CApply (CSymbol ("FiniteMap","updFM")) (CVar (2,"g"))) (CVar (4,"v"))) (CApply (CVar (6,"f")) (CVar (3,"l"))))) (CVar (5,"vs"))) (CVar (6,"f"))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'E'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","show")) (CVar (4,"v")))))] []])]
+ [COp ("GraphInductive",".:") CInfixrOp 5,COp ("GraphInductive",":&") CInfixrOp 5]
diff --git a/src/lib/Curry/Module/.curry/IO.acy b/src/lib/Curry/Module/.curry/IO.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IO.acy
@@ -0,0 +1,39 @@
+CurryProg "IO"
+ ["Prelude"]
+ [CType ("IO","Handle") Public [] [],
+  CType ("IO","IOMode") Public [] [CCons ("IO","ReadMode") 0 Public [],CCons ("IO","WriteMode") 0 Public [],CCons ("IO","AppendMode") 0 Public []],
+  CType ("IO","SeekMode") Public [] [CCons ("IO","AbsoluteSeek") 0 Public [],CCons ("IO","RelativeSeek") 0 Public [],CCons ("IO","SeekFromEnd") 0 Public []]]
+ [CFunc ("IO","getContents") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("IO","hGetContents")) (CSymbol ("IO","stdin")))] []]),
+  CFunc ("IO","hClose") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hClose"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hFlush") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hFlush"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hGetChar") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hGetChar"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hGetContents") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"eof")) (CApply (CSymbol ("IO","hIsEOF")) (CVar (0,"h"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (1,"eof"))) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("IO","hClose")) (CVar (0,"h")))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]"))))) (CDoExpr [CSPat (CPVar (2,"c")) (CApply (CSymbol ("IO","hGetChar")) (CVar (0,"h"))),CSPat (CPVar (3,"cs")) (CApply (CSymbol ("IO","hGetContents")) (CVar (0,"h"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"c"))) (CVar (3,"cs"))))]))])] []]),
+  CFunc ("IO","hGetLine") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"c")) (CApply (CSymbol ("IO","hGetChar")) (CVar (0,"h"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '\n')))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))) (CDoExpr [CSPat (CPVar (2,"cs")) (CApply (CSymbol ("IO","hGetLine")) (CVar (0,"h"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"c"))) (CVar (2,"cs"))))]))])] []]),
+  CFunc ("IO","hIsEOF") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hIsEOF"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hIsReadable") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hIsReadable"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hIsWritable") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hIsWritable"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hPrint") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("IO","hPutStrLn")) (CVar (0,"h")))) (CSymbol ("Prelude","show")))] []]),
+  CFunc ("IO","hPutChar") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hPutChar"))) (CVar (0,"h")))) (CVar (1,"c")))] []]),
+  CFunc ("IO","hPutStr") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","done"))] [],CRule [CPVar (1,"h"),CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("IO","hPutChar")) (CVar (1,"h"))) (CVar (2,"c")))) (CApply (CApply (CSymbol ("IO","hPutStr")) (CVar (1,"h"))) (CVar (3,"cs"))))] []]),
+  CFunc ("IO","hPutStrLn") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("IO","hPutStr")) (CVar (0,"h"))) (CVar (1,"s")))) (CApply (CApply (CSymbol ("IO","hPutChar")) (CVar (0,"h"))) (CLit (CCharc '\n'))))] []]),
+  CFunc ("IO","hReady") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("IO","hWaitForInput")) (CVar (0,"h"))) (CLit (CIntc 0)))] []]),
+  CFunc ("IO","hSeek") 3 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("IO","SeekMode") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"sm"),CPVar (2,"pos")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hSeek"))) (CVar (0,"h")))) (CVar (1,"sm")))) (CVar (2,"pos")))] []]),
+  CFunc ("IO","hWaitForInput") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []]))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"i")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hWaitForInput"))) (CVar (0,"h")))) (CVar (1,"i")))] []]),
+  CFunc ("IO","hWaitForInputs") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("IO","Handle") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"handles"),CPVar (1,"timeout")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IO","prim_hWaitForInputs"))) (CVar (0,"handles")))) (CVar (1,"timeout")))] []]),
+  CFunc ("IO","isEOF") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("IO","hIsEOF")) (CSymbol ("IO","stdin")))] []]),
+  CFunc ("IO","openFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("IO","IOMode") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CRules CFlex [CRule [CPVar (0,"filename"),CPVar (1,"mode")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IO","prim_openFile"))) (CVar (0,"filename")))) (CVar (1,"mode")))] []]),
+  CFunc ("IO","prim_hClose") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_hClose"),
+  CFunc ("IO","prim_hFlush") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_hFlush"),
+  CFunc ("IO","prim_hGetChar") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Char") []])) (CExternal "prim_hGetChar"),
+  CFunc ("IO","prim_hIsEOF") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_hIsEOF"),
+  CFunc ("IO","prim_hIsReadable") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_hIsReadable"),
+  CFunc ("IO","prim_hIsWritable") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_hIsWritable"),
+  CFunc ("IO","prim_hPutChar") 2 Private (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_hPutChar"),
+  CFunc ("IO","prim_hSeek") 3 Private (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("IO","SeekMode") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CExternal "prim_hSeek"),
+  CFunc ("IO","prim_hWaitForInput") 2 Private (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []]))) (CExternal "prim_hWaitForInput"),
+  CFunc ("IO","prim_hWaitForInputs") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("IO","Handle") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]))) (CExternal "prim_hWaitForInputs"),
+  CFunc ("IO","prim_openFile") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("IO","IOMode") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CExternal "prim_openFile"),
+  CFunc ("IO","stderr") 0 Public (CTCons ("IO","Handle") []) (CExternal "stderr"),
+  CFunc ("IO","stdin") 0 Public (CTCons ("IO","Handle") []) (CExternal "stdin"),
+  CFunc ("IO","stdout") 0 Public (CTCons ("IO","Handle") []) (CExternal "stdout")]
+ []
diff --git a/src/lib/Curry/Module/.curry/IO.cy b/src/lib/Curry/Module/.curry/IO.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IO.cy
@@ -0,0 +1,73 @@
+Module "IO"
+(Just (Exporting (9,10) [(Export (QualIdent Nothing (Ident "Handle" 0))),(ExportTypeAll (QualIdent Nothing (Ident "IOMode" 0))),(ExportTypeAll (QualIdent Nothing (Ident "SeekMode" 0))),(Export (QualIdent Nothing (Ident "stdin" 0))),(Export (QualIdent Nothing (Ident "stdout" 0))),(Export (QualIdent Nothing (Ident "stderr" 0))),(Export (QualIdent Nothing (Ident "openFile" 0))),(Export (QualIdent Nothing (Ident "hClose" 0))),(Export (QualIdent Nothing (Ident "hFlush" 0))),(Export (QualIdent Nothing (Ident "hIsEOF" 0))),(Export (QualIdent Nothing (Ident "isEOF" 0))),(Export (QualIdent Nothing (Ident "hSeek" 0))),(Export (QualIdent Nothing (Ident "hWaitForInput" 0))),(Export (QualIdent Nothing (Ident "hWaitForInputs" 0))),(Export (QualIdent Nothing (Ident "hReady" 0))),(Export (QualIdent Nothing (Ident "hGetChar" 0))),(Export (QualIdent Nothing (Ident "hGetLine" 0))),(Export (QualIdent Nothing (Ident "hGetContents" 0))),(Export (QualIdent Nothing (Ident "getContents" 0))),(Export (QualIdent Nothing (Ident "hPutChar" 0))),(Export (QualIdent Nothing (Ident "hPutStr" 0))),(Export (QualIdent Nothing (Ident "hPutStrLn" 0))),(Export (QualIdent Nothing (Ident "hPrint" 0))),(Export (QualIdent Nothing (Ident "hIsReadable" 0))),(Export (QualIdent Nothing (Ident "hIsWritable" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(DataDecl (17,1) (Ident "Handle" 0) [] [])
+,(DataDecl (20,1) (Ident "IOMode" 0) [] [(ConstrDecl (20,15) [] (Ident "ReadMode" 0) []),(ConstrDecl (20,26) [] (Ident "WriteMode" 0) []),(ConstrDecl (20,38) [] (Ident "AppendMode" 0) [])])
+,(DataDecl (23,1) (Ident "SeekMode" 0) [] [(ConstrDecl (23,17) [] (Ident "AbsoluteSeek" 0) []),(ConstrDecl (23,32) [] (Ident "RelativeSeek" 0) []),(ConstrDecl (23,47) [] (Ident "SeekFromEnd" 0) [])])
+,(TypeSig (27,1) [(Ident "stdin" 0)] (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []))
+,(FlatExternalDecl (28,1) [(Ident "stdin" 0)])
+,(TypeSig (31,1) [(Ident "stdout" 0)] (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []))
+,(FlatExternalDecl (32,1) [(Ident "stdout" 0)])
+,(TypeSig (35,1) [(Ident "stderr" 0)] (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []))
+,(FlatExternalDecl (36,1) [(Ident "stderr" 0)])
+,(TypeSig (39,1) [(Ident "openFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IOMode" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])]))))
+,(FunctionDecl (40,1) (Ident "openFile" 0) [(Equation (40,1) (FunLhs (Ident "openFile" 0) [(VariablePattern (Ident "filename" 2)),(VariablePattern (Ident "mode" 2))]) (SimpleRhs (40,26) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_openFile" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "filename" 2))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "mode" 2)))) []))])
+,(TypeSig (42,1) [(Ident "prim_openFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IOMode" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])]))))
+,(FlatExternalDecl (43,1) [(Ident "prim_openFile" 0)])
+,(TypeSig (46,1) [(Ident "hClose" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (47,1) (Ident "hClose" 0) [(Equation (47,1) (FunLhs (Ident "hClose" 0) [(VariablePattern (Ident "h" 4))]) (SimpleRhs (47,12) (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hClose" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 4)))) []))])
+,(TypeSig (49,1) [(Ident "prim_hClose" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (50,1) [(Ident "prim_hClose" 0)])
+,(TypeSig (53,1) [(Ident "hFlush" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (54,1) (Ident "hFlush" 0) [(Equation (54,1) (FunLhs (Ident "hFlush" 0) [(VariablePattern (Ident "h" 6))]) (SimpleRhs (54,12) (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hFlush" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 6)))) []))])
+,(TypeSig (56,1) [(Ident "prim_hFlush" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (57,1) [(Ident "prim_hFlush" 0)])
+,(TypeSig (60,1) [(Ident "hIsEOF" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FunctionDecl (61,1) (Ident "hIsEOF" 0) [(Equation (61,1) (FunLhs (Ident "hIsEOF" 0) [(VariablePattern (Ident "h" 8))]) (SimpleRhs (61,12) (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hIsEOF" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 8)))) []))])
+,(TypeSig (63,1) [(Ident "prim_hIsEOF" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FlatExternalDecl (64,1) [(Ident "prim_hIsEOF" 0)])
+,(TypeSig (67,1) [(Ident "isEOF" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]))
+,(FunctionDecl (68,1) (Ident "isEOF" 0) [(Equation (68,1) (FunLhs (Ident "isEOF" 0) []) (SimpleRhs (68,9) (Apply (Variable (QualIdent (Just "IO") (Ident "hIsEOF" 0))) (Variable (QualIdent (Just "IO") (Ident "stdin" 0)))) []))])
+,(TypeSig (76,1) [(Ident "hSeek" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SeekMode" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))))
+,(FunctionDecl (77,1) (Ident "hSeek" 0) [(Equation (77,1) (FunLhs (Ident "hSeek" 0) [(VariablePattern (Ident "h" 12)),(VariablePattern (Ident "sm" 12)),(VariablePattern (Ident "pos" 12))]) (SimpleRhs (77,18) (InfixApply (Paren (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hSeek" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 12))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "sm" 12))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "pos" 12)))) []))])
+,(TypeSig (79,1) [(Ident "prim_hSeek" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SeekMode" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))))
+,(FlatExternalDecl (80,1) [(Ident "prim_hSeek" 0)])
+,(TypeSig (89,1) [(Ident "hWaitForInput" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]))))
+,(FunctionDecl (90,1) (Ident "hWaitForInput" 0) [(Equation (90,1) (FunLhs (Ident "hWaitForInput" 0) [(VariablePattern (Ident "h" 14)),(VariablePattern (Ident "i" 14))]) (SimpleRhs (90,21) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hWaitForInput" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 14))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "i" 14)))) []))])
+,(TypeSig (92,1) [(Ident "prim_hWaitForInput" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])]))))
+,(FlatExternalDecl (93,1) [(Ident "prim_hWaitForInput" 0)])
+,(TypeSig (103,1) [(Ident "hWaitForInputs" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))))
+,(FunctionDecl (104,1) (Ident "hWaitForInputs" 0) [(Equation (104,1) (FunLhs (Ident "hWaitForInputs" 0) [(VariablePattern (Ident "handles" 16)),(VariablePattern (Ident "timeout" 16))]) (SimpleRhs (105,4) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hWaitForInputs" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "handles" 16))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "timeout" 16)))) []))])
+,(TypeSig (107,1) [(Ident "prim_hWaitForInputs" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))))
+,(FlatExternalDecl (108,1) [(Ident "prim_hWaitForInputs" 0)])
+,(TypeSig (111,1) [(Ident "hReady" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FunctionDecl (112,1) (Ident "hReady" 0) [(Equation (112,1) (FunLhs (Ident "hReady" 0) [(VariablePattern (Ident "h" 18))]) (SimpleRhs (112,12) (Apply (Apply (Variable (QualIdent (Just "IO") (Ident "hWaitForInput" 0))) (Variable (QualIdent Nothing (Ident "h" 18)))) (Literal (Int (Ident "_" 20) 0))) []))])
+,(TypeSig (116,1) [(Ident "hGetChar" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])])))
+,(FunctionDecl (117,1) (Ident "hGetChar" 0) [(Equation (117,1) (FunLhs (Ident "hGetChar" 0) [(VariablePattern (Ident "h" 21))]) (SimpleRhs (117,14) (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hGetChar" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 21)))) []))])
+,(TypeSig (119,1) [(Ident "prim_hGetChar" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])])))
+,(FlatExternalDecl (120,1) [(Ident "prim_hGetChar" 0)])
+,(TypeSig (123,1) [(Ident "hGetLine" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FunctionDecl (124,1) (Ident "hGetLine" 0) [(Equation (124,1) (FunLhs (Ident "hGetLine" 0) [(VariablePattern (Ident "h" 23))]) (SimpleRhs (124,14) (Do [(StmtBind (VariablePattern (Ident "c" 25)) (Apply (Variable (QualIdent (Just "IO") (Ident "hGetChar" 0))) (Variable (QualIdent Nothing (Ident "h" 23)))))] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "c" 25))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\n'))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Literal (String ""))) (Do [(StmtBind (VariablePattern (Ident "cs" 26)) (Apply (Variable (QualIdent (Just "IO") (Ident "hGetLine" 0))) (Variable (QualIdent Nothing (Ident "h" 23)))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 25))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "cs" 26))))))))) []))])
+,(TypeSig (131,1) [(Ident "hGetContents" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FunctionDecl (132,1) (Ident "hGetContents" 0) [(Equation (132,1) (FunLhs (Ident "hGetContents" 0) [(VariablePattern (Ident "h" 27))]) (SimpleRhs (132,18) (Do [(StmtBind (VariablePattern (Ident "eof" 29)) (Apply (Variable (QualIdent (Just "IO") (Ident "hIsEOF" 0))) (Variable (QualIdent Nothing (Ident "h" 27)))))] (IfThenElse (Variable (QualIdent Nothing (Ident "eof" 29))) (InfixApply (Apply (Variable (QualIdent (Just "IO") (Ident "hClose" 0))) (Variable (QualIdent Nothing (Ident "h" 27)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Literal (String "")))) (Do [(StmtBind (VariablePattern (Ident "c" 30)) (Apply (Variable (QualIdent (Just "IO") (Ident "hGetChar" 0))) (Variable (QualIdent Nothing (Ident "h" 27))))),(StmtBind (VariablePattern (Ident "cs" 31)) (Apply (Variable (QualIdent (Just "IO") (Ident "hGetContents" 0))) (Variable (QualIdent Nothing (Ident "h" 27)))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 30))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "cs" 31))))))))) []))])
+,(TypeSig (140,1) [(Ident "getContents" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))
+,(FunctionDecl (141,1) (Ident "getContents" 0) [(Equation (141,1) (FunLhs (Ident "getContents" 0) []) (SimpleRhs (141,15) (Apply (Variable (QualIdent (Just "IO") (Ident "hGetContents" 0))) (Variable (QualIdent (Just "IO") (Ident "stdin" 0)))) []))])
+,(TypeSig (144,1) [(Ident "hPutChar" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (145,1) (Ident "hPutChar" 0) [(Equation (145,1) (FunLhs (Ident "hPutChar" 0) [(VariablePattern (Ident "h" 34)),(VariablePattern (Ident "c" 34))]) (SimpleRhs (145,16) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hPutChar" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 34))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "c" 34)))) []))])
+,(TypeSig (147,1) [(Ident "prim_hPutChar" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (148,1) [(Ident "prim_hPutChar" 0)])
+,(TypeSig (151,1) [(Ident "hPutStr" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (152,1) (Ident "hPutStr" 0) [(Equation (152,1) (FunLhs (Ident "hPutStr" 0) [(VariablePattern (Ident "_" 37)),(ListPattern [])]) (SimpleRhs (152,20) (Variable (QualIdent (Just "Prelude") (Ident "done" 0))) [])),(Equation (153,1) (FunLhs (Ident "hPutStr" 0) [(VariablePattern (Ident "h" 39)),(ParenPattern (InfixPattern (VariablePattern (Ident "c" 39)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 39))))]) (SimpleRhs (153,20) (InfixApply (Apply (Apply (Variable (QualIdent (Just "IO") (Ident "hPutChar" 0))) (Variable (QualIdent Nothing (Ident "h" 39)))) (Variable (QualIdent Nothing (Ident "c" 39)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Apply (Variable (QualIdent (Just "IO") (Ident "hPutStr" 0))) (Variable (QualIdent Nothing (Ident "h" 39)))) (Variable (QualIdent Nothing (Ident "cs" 39))))) []))])
+,(TypeSig (156,1) [(Ident "hPutStrLn" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (157,1) (Ident "hPutStrLn" 0) [(Equation (157,1) (FunLhs (Ident "hPutStrLn" 0) [(VariablePattern (Ident "h" 41)),(VariablePattern (Ident "s" 41))]) (SimpleRhs (157,17) (InfixApply (Apply (Apply (Variable (QualIdent (Just "IO") (Ident "hPutStr" 0))) (Variable (QualIdent Nothing (Ident "h" 41)))) (Variable (QualIdent Nothing (Ident "s" 41)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Apply (Variable (QualIdent (Just "IO") (Ident "hPutChar" 0))) (Variable (QualIdent Nothing (Ident "h" 41)))) (Literal (Char '\n')))) []))])
+,(TypeSig (160,1) [(Ident "hPrint" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (161,1) (Ident "hPrint" 0) [(Equation (161,1) (FunLhs (Ident "hPrint" 0) [(VariablePattern (Ident "h" 43))]) (SimpleRhs (161,12) (InfixApply (Apply (Variable (QualIdent (Just "IO") (Ident "hPutStrLn" 0))) (Variable (QualIdent Nothing (Ident "h" 43)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "show" 0)))) []))])
+,(TypeSig (165,1) [(Ident "hIsReadable" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FunctionDecl (166,1) (Ident "hIsReadable" 0) [(Equation (166,1) (FunLhs (Ident "hIsReadable" 0) [(VariablePattern (Ident "h" 45))]) (SimpleRhs (166,18) (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hIsReadable" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 45)))) []))])
+,(TypeSig (168,1) [(Ident "prim_hIsReadable" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FlatExternalDecl (169,1) [(Ident "prim_hIsReadable" 0)])
+,(TypeSig (172,1) [(Ident "hIsWritable" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FunctionDecl (173,1) (Ident "hIsWritable" 0) [(Equation (173,1) (FunLhs (Ident "hIsWritable" 0) [(VariablePattern (Ident "h" 47))]) (SimpleRhs (173,17) (InfixApply (Variable (QualIdent (Just "IO") (Ident "prim_hIsWritable" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "h" 47)))) []))])
+,(TypeSig (175,1) [(Ident "prim_hIsWritable" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])])))
+,(FlatExternalDecl (176,1) [(Ident "prim_hIsWritable" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/IO.efc b/src/lib/Curry/Module/.curry/IO.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IO.efc
@@ -0,0 +1,1 @@
+Prog "IO" ["Prelude"] [Type ((Nothing,Nothing,"IO","Handle")) Public [] [],Type ((Nothing,Nothing,"IO","IOMode")) Public [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"IO","IOMode") []),"IO","ReadMode")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"IO","IOMode") []),"IO","WriteMode")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"IO","IOMode") []),"IO","AppendMode")) 0 Public []],Type ((Nothing,Nothing,"IO","SeekMode")) Public [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"IO","SeekMode") []),"IO","AbsoluteSeek")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"IO","SeekMode") []),"IO","RelativeSeek")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"IO","SeekMode") []),"IO","SeekFromEnd")) 0 Public []]] [Func ((Nothing,Just (TCons (Nothing,Nothing,"IO","Handle") []),"IO","stdin")) 0 Public (TCons ((Nothing,Nothing,"IO","Handle")) []) (External "IO.stdin"),Func ((Nothing,Just (TCons (Nothing,Nothing,"IO","Handle") []),"IO","stdout")) 0 Public (TCons ((Nothing,Nothing,"IO","Handle")) []) (External "IO.stdout"),Func ((Nothing,Just (TCons (Nothing,Nothing,"IO","Handle") []),"IO","stderr")) 0 Public (TCons ((Nothing,Nothing,"IO","Handle")) []) (External "IO.stderr"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IO","IOMode") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"IO","openFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"IO","IOMode")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"IO","Handle")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"IO","IOMode") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","IOMode") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []])) (FuncType (TCons (Nothing,Nothing,"IO","IOMode") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IO","IOMode") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IO","IOMode") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IO","IOMode") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"IO","prim_openFile")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Var ((Just (TCons (Nothing,Nothing,"IO","IOMode") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IO","IOMode") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"IO","prim_openFile")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"IO","IOMode")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"IO","Handle")) []]))) (External "IO.prim_openFile"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"IO","hClose")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"IO","prim_hClose")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"IO","prim_hClose")) 1 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "IO.prim_hClose"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"IO","hFlush")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"IO","prim_hFlush")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"IO","prim_hFlush")) 1 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "IO.prim_hFlush"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","hIsEOF")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","prim_hIsEOF")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","prim_hIsEOF")) 1 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (External "IO.prim_hIsEOF"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]),"IO","isEOF")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","hIsEOF")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"IO","Handle") []),"IO","stdin")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"IO","SeekMode") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"IO","hSeek")) 3 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"IO","SeekMode")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"IO","SeekMode") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","SeekMode") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"IO","SeekMode") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"IO","SeekMode") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"IO","SeekMode") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))),"Prelude","$#")) [Comb (FuncPartCall 3) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"IO","SeekMode") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"IO","prim_hSeek")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Var ((Just (TCons (Nothing,Nothing,"IO","SeekMode") []),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"IO","SeekMode") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"IO","prim_hSeek")) 3 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"IO","SeekMode")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (External "IO.prim_hSeek"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"IO","hWaitForInput")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"IO","prim_hWaitForInput")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"IO","prim_hWaitForInput")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []]))) (External "IO.prim_hWaitForInput"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IO","Handle") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"IO","hWaitForInputs")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"IO","Handle")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IO","Handle") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IO","Handle") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IO","Handle") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IO","Handle") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"IO","prim_hWaitForInputs")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IO","Handle") []]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IO","Handle") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"IO","prim_hWaitForInputs")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"IO","Handle")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (External "IO.prim_hWaitForInputs"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","hReady")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"IO","hWaitForInput")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Lit (Intc  0)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []])),"IO","hGetChar")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []])),"IO","prim_hGetChar")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []])),"IO","prim_hGetChar")) 1 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (External "IO.prim_hGetChar"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IO","hGetLine")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []])),"IO","hGetChar")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetLine._#lambda2")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetLine._#lambda2")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)),Lit (Charc  '\n')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IO","hGetLine")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetLine._#lambda2._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetLine._#lambda2._#lambda3")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IO","hGetContents")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","hIsEOF")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetContents._#lambda4")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetContents._#lambda4")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"IO","hClose")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []])),"IO","hGetChar")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetContents._#lambda4._#lambda5")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetContents._#lambda4._#lambda5")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IO","hGetContents")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetContents._#lambda4._#lambda5._#lambda6")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IO","hGetContents._#lambda4._#lambda5._#lambda6")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"IO","getContents")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IO","hGetContents")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"IO","Handle") []),"IO","stdin")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutChar")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","prim_hPutChar")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","prim_hPutChar")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "IO.prim_hPutChar"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutStr")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","done")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutChar")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutStr")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutStrLn")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutStr")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutChar")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1)),Lit (Charc  '\n')]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPrint")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IO","hPutStrLn")) [Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","hIsReadable")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","prim_hIsReadable")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","prim_hIsReadable")) 1 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (External "IO.prim_hIsReadable"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","hIsWritable")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (Rule [(Just (TCons (Nothing,Nothing,"IO","Handle") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","prim_hIsWritable")) [],Var ((Just (TCons (Nothing,Nothing,"IO","Handle") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IO","Handle") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"IO","prim_hIsWritable")) 1 Private (FuncType (TCons ((Nothing,Nothing,"IO","Handle")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (External "IO.prim_hIsWritable")] []
diff --git a/src/lib/Curry/Module/.curry/IO.fcy b/src/lib/Curry/Module/.curry/IO.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IO.fcy
@@ -0,0 +1,1 @@
+Prog "IO" ["Prelude"] [Type ("IO","Handle") Public [] [],Type ("IO","IOMode") Public [] [Cons ("IO","ReadMode") 0 Public [],Cons ("IO","WriteMode") 0 Public [],Cons ("IO","AppendMode") 0 Public []],Type ("IO","SeekMode") Public [] [Cons ("IO","AbsoluteSeek") 0 Public [],Cons ("IO","RelativeSeek") 0 Public [],Cons ("IO","SeekFromEnd") 0 Public []]] [Func ("IO","stdin") 0 Public (TCons ("IO","Handle") []) (External "IO.stdin"),Func ("IO","stdout") 0 Public (TCons ("IO","Handle") []) (External "IO.stdout"),Func ("IO","stderr") 0 Public (TCons ("IO","Handle") []) (External "IO.stderr"),Func ("IO","openFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IO","IOMode") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("IO","prim_openFile") [],Var 1],Var 2])),Func ("IO","prim_openFile") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IO","IOMode") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))) (External "IO.prim_openFile"),Func ("IO","hClose") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hClose") [],Var 1])),Func ("IO","prim_hClose") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "IO.prim_hClose"),Func ("IO","hFlush") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hFlush") [],Var 1])),Func ("IO","prim_hFlush") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "IO.prim_hFlush"),Func ("IO","hIsEOF") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hIsEOF") [],Var 1])),Func ("IO","prim_hIsEOF") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (External "IO.prim_hIsEOF"),Func ("IO","isEOF") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]) (Rule [] (Comb FuncCall ("IO","hIsEOF") [Comb FuncCall ("IO","stdin") []])),Func ("IO","hSeek") 3 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("IO","SeekMode") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 3) ("IO","prim_hSeek") [],Var 1],Var 2],Var 3])),Func ("IO","prim_hSeek") 3 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("IO","SeekMode") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (External "IO.prim_hSeek"),Func ("IO","hWaitForInput") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("IO","prim_hWaitForInput") [],Var 1],Var 2])),Func ("IO","prim_hWaitForInput") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))) (External "IO.prim_hWaitForInput"),Func ("IO","hWaitForInputs") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("IO","Handle") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("IO","prim_hWaitForInputs") [],Var 1],Var 2])),Func ("IO","prim_hWaitForInputs") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("IO","Handle") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]))) (External "IO.prim_hWaitForInputs"),Func ("IO","hReady") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("IO","hWaitForInput") [Var 1,Lit (Intc  0)])),Func ("IO","hGetChar") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hGetChar") [],Var 1])),Func ("IO","prim_hGetChar") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Char") []])) (External "IO.prim_hGetChar"),Func ("IO","hGetLine") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hGetChar") [Var 1],Comb (FuncPartCall 1) ("IO","hGetLine._#lambda2") [Var 1]])),Func ("IO","hGetLine._#lambda2") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Charc  '\n')]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hGetLine") [Var 1],Comb (FuncPartCall 1) ("IO","hGetLine._#lambda2._#lambda3") [Var 2]])])),Func ("IO","hGetLine._#lambda2._#lambda3") 2 Private (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("IO","hGetContents") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hIsEOF") [Var 1],Comb (FuncPartCall 1) ("IO","hGetContents._#lambda4") [Var 1]])),Func ("IO","hGetContents._#lambda4") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IO","hClose") [Var 1],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hGetChar") [Var 1],Comb (FuncPartCall 1) ("IO","hGetContents._#lambda4._#lambda5") [Var 1]])])),Func ("IO","hGetContents._#lambda4._#lambda5") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IO","hGetContents") [Var 1],Comb (FuncPartCall 1) ("IO","hGetContents._#lambda4._#lambda5._#lambda6") [Var 2]])),Func ("IO","hGetContents._#lambda4._#lambda5._#lambda6") 2 Private (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("IO","getContents") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (Rule [] (Comb FuncCall ("IO","hGetContents") [Comb FuncCall ("IO","stdin") []])),Func ("IO","hPutChar") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("IO","prim_hPutChar") [],Var 1],Var 2])),Func ("IO","prim_hPutChar") 2 Private (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "IO.prim_hPutChar"),Func ("IO","hPutStr") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","done") []),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IO","hPutChar") [Var 1,Var 3],Comb FuncCall ("IO","hPutStr") [Var 1,Var 4]])])),Func ("IO","hPutStrLn") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IO","hPutStr") [Var 1,Var 2],Comb FuncCall ("IO","hPutChar") [Var 1,Lit (Charc  '\n')]])),Func ("IO","hPrint") 1 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("IO","hPutStrLn") [Var 1],Comb (FuncPartCall 1) ("Prelude","show") []])),Func ("IO","hIsReadable") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hIsReadable") [],Var 1])),Func ("IO","prim_hIsReadable") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (External "IO.prim_hIsReadable"),Func ("IO","hIsWritable") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IO","prim_hIsWritable") [],Var 1])),Func ("IO","prim_hIsWritable") 1 Private (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (External "IO.prim_hIsWritable")] []
diff --git a/src/lib/Curry/Module/.curry/IO.fint b/src/lib/Curry/Module/.curry/IO.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IO.fint
@@ -0,0 +1,1 @@
+Prog "IO" ["Prelude"] [Type ("IO","Handle") Public [] [],Type ("IO","IOMode") Public [] [Cons ("IO","ReadMode") 0 Public [],Cons ("IO","WriteMode") 0 Public [],Cons ("IO","AppendMode") 0 Public []],Type ("IO","SeekMode") Public [] [Cons ("IO","AbsoluteSeek") 0 Public [],Cons ("IO","RelativeSeek") 0 Public [],Cons ("IO","SeekFromEnd") 0 Public []]] [Func ("IO","stdin") 0 Public (TCons ("IO","Handle") []) (External "IO.stdin"),Func ("IO","stdout") 0 Public (TCons ("IO","Handle") []) (External "IO.stdout"),Func ("IO","stderr") 0 Public (TCons ("IO","Handle") []) (External "IO.stderr"),Func ("IO","openFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IO","IOMode") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))) (Rule [] (Var 0)),Func ("IO","hClose") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("IO","hFlush") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("IO","hIsEOF") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [] (Var 0)),Func ("IO","isEOF") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]) (Rule [] (Var 0)),Func ("IO","hSeek") 3 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("IO","SeekMode") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [] (Var 0)),Func ("IO","hWaitForInput") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))) (Rule [] (Var 0)),Func ("IO","hWaitForInputs") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("IO","Handle") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("IO","hReady") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [] (Var 0)),Func ("IO","hGetChar") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("IO","hGetLine") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("IO","hGetContents") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("IO","getContents") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (Rule [] (Var 0)),Func ("IO","hPutChar") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("IO","hPutStr") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("IO","hPutStrLn") 2 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("IO","hPrint") 1 Public (FuncType (TCons ("IO","Handle") []) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("IO","hIsReadable") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [] (Var 0)),Func ("IO","hIsWritable") 1 Public (FuncType (TCons ("IO","Handle") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/IO.uacy b/src/lib/Curry/Module/.curry/IO.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IO.uacy
@@ -0,0 +1,39 @@
+CurryProg "IO"
+ ["Prelude"]
+ [CType ("IO","Handle") Public [] [],
+  CType ("IO","IOMode") Public [] [CCons ("IO","ReadMode") 0 Public [],CCons ("IO","WriteMode") 0 Public [],CCons ("IO","AppendMode") 0 Public []],
+  CType ("IO","SeekMode") Public [] [CCons ("IO","AbsoluteSeek") 0 Public [],CCons ("IO","RelativeSeek") 0 Public [],CCons ("IO","SeekFromEnd") 0 Public []]]
+ [CFunc ("IO","getContents") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("IO","hGetContents")) (CSymbol ("IO","stdin")))] []]),
+  CFunc ("IO","hClose") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hClose"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hFlush") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hFlush"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hGetChar") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hGetChar"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hGetContents") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"eof")) (CApply (CSymbol ("IO","hIsEOF")) (CVar (0,"h"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (1,"eof"))) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("IO","hClose")) (CVar (0,"h")))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]"))))) (CDoExpr [CSPat (CPVar (2,"c")) (CApply (CSymbol ("IO","hGetChar")) (CVar (0,"h"))),CSPat (CPVar (3,"cs")) (CApply (CSymbol ("IO","hGetContents")) (CVar (0,"h"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"c"))) (CVar (3,"cs"))))]))])] []]),
+  CFunc ("IO","hGetLine") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"c")) (CApply (CSymbol ("IO","hGetChar")) (CVar (0,"h"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '\n')))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))) (CDoExpr [CSPat (CPVar (2,"cs")) (CApply (CSymbol ("IO","hGetLine")) (CVar (0,"h"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"c"))) (CVar (2,"cs"))))]))])] []]),
+  CFunc ("IO","hIsEOF") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hIsEOF"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hIsReadable") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hIsReadable"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hIsWritable") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hIsWritable"))) (CVar (0,"h")))] []]),
+  CFunc ("IO","hPrint") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("IO","hPutStrLn")) (CVar (0,"h")))) (CSymbol ("Prelude","show")))] []]),
+  CFunc ("IO","hPutChar") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hPutChar"))) (CVar (0,"h")))) (CVar (1,"c")))] []]),
+  CFunc ("IO","hPutStr") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","done"))] [],CRule [CPVar (1,"h"),CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("IO","hPutChar")) (CVar (1,"h"))) (CVar (2,"c")))) (CApply (CApply (CSymbol ("IO","hPutStr")) (CVar (1,"h"))) (CVar (3,"cs"))))] []]),
+  CFunc ("IO","hPutStrLn") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("IO","hPutStr")) (CVar (0,"h"))) (CVar (1,"s")))) (CApply (CApply (CSymbol ("IO","hPutChar")) (CVar (0,"h"))) (CLit (CCharc '\n'))))] []]),
+  CFunc ("IO","hReady") 1 Public (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"h")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("IO","hWaitForInput")) (CVar (0,"h"))) (CLit (CIntc 0)))] []]),
+  CFunc ("IO","hSeek") 3 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("IO","SeekMode") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"sm"),CPVar (2,"pos")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hSeek"))) (CVar (0,"h")))) (CVar (1,"sm")))) (CVar (2,"pos")))] []]),
+  CFunc ("IO","hWaitForInput") 2 Public (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []]))) (CRules CFlex [CRule [CPVar (0,"h"),CPVar (1,"i")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IO","prim_hWaitForInput"))) (CVar (0,"h")))) (CVar (1,"i")))] []]),
+  CFunc ("IO","hWaitForInputs") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("IO","Handle") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"handles"),CPVar (1,"timeout")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IO","prim_hWaitForInputs"))) (CVar (0,"handles")))) (CVar (1,"timeout")))] []]),
+  CFunc ("IO","isEOF") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("IO","hIsEOF")) (CSymbol ("IO","stdin")))] []]),
+  CFunc ("IO","openFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("IO","IOMode") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CRules CFlex [CRule [CPVar (0,"filename"),CPVar (1,"mode")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IO","prim_openFile"))) (CVar (0,"filename")))) (CVar (1,"mode")))] []]),
+  CFunc ("IO","prim_hClose") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_hClose"),
+  CFunc ("IO","prim_hFlush") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_hFlush"),
+  CFunc ("IO","prim_hGetChar") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Char") []])) (CExternal "prim_hGetChar"),
+  CFunc ("IO","prim_hIsEOF") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_hIsEOF"),
+  CFunc ("IO","prim_hIsReadable") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_hIsReadable"),
+  CFunc ("IO","prim_hIsWritable") 1 Private (CFuncType (CTCons ("IO","Handle") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []])) (CExternal "prim_hIsWritable"),
+  CFunc ("IO","prim_hPutChar") 2 Private (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_hPutChar"),
+  CFunc ("IO","prim_hSeek") 3 Private (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("IO","SeekMode") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CExternal "prim_hSeek"),
+  CFunc ("IO","prim_hWaitForInput") 2 Private (CFuncType (CTCons ("IO","Handle") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Bool") []]))) (CExternal "prim_hWaitForInput"),
+  CFunc ("IO","prim_hWaitForInputs") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("IO","Handle") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]))) (CExternal "prim_hWaitForInputs"),
+  CFunc ("IO","prim_openFile") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("IO","IOMode") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CExternal "prim_openFile"),
+  CFunc ("IO","stderr") 0 Public (CTCons ("IO","Handle") []) (CExternal "stderr"),
+  CFunc ("IO","stdin") 0 Public (CTCons ("IO","Handle") []) (CExternal "stdin"),
+  CFunc ("IO","stdout") 0 Public (CTCons ("IO","Handle") []) (CExternal "stdout")]
+ []
diff --git a/src/lib/Curry/Module/.curry/IOExts.acy b/src/lib/Curry/Module/.curry/IOExts.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IOExts.acy
@@ -0,0 +1,20 @@
+CurryProg "IOExts"
+ ["Prelude","System","IO"]
+ [CType ("IOExts","IORef") Public [(0,"_")] []]
+ [CFunc ("IOExts","connectToCommand") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []])) (CRules CFlex [CRule [CPVar (0,"cmd")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_connectToCmd"))) (CVar (0,"cmd")))] []]),
+  CFunc ("IOExts","exclusiveIO") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"lockfile"),CPVar (1,"action")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '1'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))) (CVar (0,"lockfile")))),CSExpr (CApply (CApply (CSymbol ("Prelude","catchFail")) (CDoExpr [CSPat (CPVar (2,"actionResult")) (CVar (1,"action")),CSExpr (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))) (CVar (0,"lockfile")))),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"actionResult")))])) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))) (CVar (0,"lockfile"))))) (CSymbol ("Prelude","failed"))))])] []]),
+  CFunc ("IOExts","execCmd") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,,)") [CTCons ("IO","Handle") [],CTCons ("IO","Handle") [],CTCons ("IO","Handle") []]])) (CRules CFlex [CRule [CPVar (0,"cmd")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_execCmd"))) (CVar (0,"cmd")))] []]),
+  CFunc ("IOExts","getAssoc") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CRules CFlex [CRule [CPVar (0,"key")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_getAssoc"))) (CVar (0,"key")))] []]),
+  CFunc ("IOExts","newIORef") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("IOExts","IORef") [CTVar (0,"a")]])) (CExternal "newIORef"),
+  CFunc ("IOExts","prim_connectToCmd") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []])) (CExternal "prim_connectToCmd"),
+  CFunc ("IOExts","prim_execCmd") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,,)") [CTCons ("IO","Handle") [],CTCons ("IO","Handle") [],CTCons ("IO","Handle") []]])) (CExternal "prim_execCmd"),
+  CFunc ("IOExts","prim_getAssoc") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CExternal "prim_getAssoc"),
+  CFunc ("IOExts","prim_readIORef") 1 Private (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "prim_readIORef"),
+  CFunc ("IOExts","prim_setAssoc") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_setAssoc"),
+  CFunc ("IOExts","prim_writeIORef") 2 Private (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_writeIORef"),
+  CFunc ("IOExts","readCompleteFile") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"s")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file"))),CSExpr (CApply (CApply (CSymbol ("IOExts","f")) (CVar (1,"s"))) (CApply (CSymbol ("Prelude","return")) (CVar (1,"s"))))])] [CLocalFunc (CFunc ("IOExts","f") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"r")] [(CSymbol ("Prelude","success"),CVar (1,"r"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"cs")],CPVar (4,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("IOExts","f")) (CVar (3,"cs"))) (CVar (4,"r")))] []]))]]),
+  CFunc ("IOExts","readIORef") 1 Public (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IOExts","prim_readIORef"))) (CVar (0,"ref")))] []]),
+  CFunc ("IOExts","setAssoc") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"val")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_setAssoc"))) (CVar (0,"key")))) (CVar (1,"val")))] []]),
+  CFunc ("IOExts","updateFile") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"file")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"s")) (CApply (CSymbol ("IOExts","readCompleteFile")) (CVar (1,"file"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (1,"file"))) (CApply (CVar (0,"f")) (CVar (2,"s"))))])] []]),
+  CFunc ("IOExts","writeIORef") 2 Public (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"val")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IOExts","prim_writeIORef"))) (CVar (0,"ref"))) (CVar (1,"val")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/IOExts.cy b/src/lib/Curry/Module/.curry/IOExts.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IOExts.cy
@@ -0,0 +1,39 @@
+Module "IOExts"
+(Just (Exporting (8,14) [(Export (QualIdent Nothing (Ident "execCmd" 0))),(Export (QualIdent Nothing (Ident "connectToCommand" 0))),(Export (QualIdent Nothing (Ident "readCompleteFile" 0))),(Export (QualIdent Nothing (Ident "updateFile" 0))),(Export (QualIdent Nothing (Ident "exclusiveIO" 0))),(Export (QualIdent Nothing (Ident "setAssoc" 0))),(Export (QualIdent Nothing (Ident "getAssoc" 0))),(Export (QualIdent Nothing (Ident "IORef" 0))),(Export (QualIdent Nothing (Ident "newIORef" 0))),(Export (QualIdent Nothing (Ident "readIORef" 0))),(Export (QualIdent Nothing (Ident "writeIORef" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (13,1) "System" False Nothing Nothing)
+,(ImportDecl (14,1) "IO" False Nothing (Just (Importing (14,10) [(Import (Ident "Handle" 0))])))
+,(DataDecl (107,1) (Ident "IORef" 0) [(Ident "_" 0)] [])
+,(TypeSig (23,1) [(Ident "execCmd" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])])])))
+,(FunctionDecl (24,1) (Ident "execCmd" 0) [(Equation (24,1) (FunLhs (Ident "execCmd" 0) [(VariablePattern (Ident "cmd" 2))]) (SimpleRhs (24,15) (InfixApply (Variable (QualIdent (Just "IOExts") (Ident "prim_execCmd" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "cmd" 2)))) []))])
+,(TypeSig (26,1) [(Ident "prim_execCmd" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])])])))
+,(FlatExternalDecl (27,1) [(Ident "prim_execCmd" 0)])
+,(TypeSig (40,1) [(Ident "connectToCommand" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])])))
+,(FunctionDecl (41,1) (Ident "connectToCommand" 0) [(Equation (41,1) (FunLhs (Ident "connectToCommand" 0) [(VariablePattern (Ident "cmd" 4))]) (SimpleRhs (41,24) (InfixApply (Variable (QualIdent (Just "IOExts") (Ident "prim_connectToCmd" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "cmd" 4)))) []))])
+,(TypeSig (43,1) [(Ident "prim_connectToCmd" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])])))
+,(FlatExternalDecl (44,1) [(Ident "prim_connectToCmd" 0)])
+,(TypeSig (52,1) [(Ident "readCompleteFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FunctionDecl (53,1) (Ident "readCompleteFile" 0) [(Equation (53,1) (FunLhs (Ident "readCompleteFile" 0) [(VariablePattern (Ident "file" 6))]) (SimpleRhs (53,25) (Do [(StmtBind (VariablePattern (Ident "s" 13)) (Apply (Variable (QualIdent (Just "Prelude") (Ident "readFile" 0))) (Variable (QualIdent Nothing (Ident "file" 6)))))] (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 7))) (Variable (QualIdent Nothing (Ident "s" 13)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "s" 13))))))) [(FunctionDecl (57,4) (Ident "f" 7) [(Equation (57,4) (FunLhs (Ident "f" 7) [(ListPattern []),(VariablePattern (Ident "r" 8))]) (SimpleRhs (57,17) (Variable (QualIdent Nothing (Ident "r" 8))) [])),(Equation (58,4) (FunLhs (Ident "f" 7) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 11)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 10)))),(VariablePattern (Ident "r" 10))]) (SimpleRhs (58,17) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 7))) (Variable (QualIdent Nothing (Ident "cs" 10)))) (Variable (QualIdent Nothing (Ident "r" 10)))) []))])]))])
+,(TypeSig (64,1) [(Ident "updateFile" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (65,1) (Ident "updateFile" 0) [(Equation (65,1) (FunLhs (Ident "updateFile" 0) [(VariablePattern (Ident "f" 14)),(VariablePattern (Ident "file" 14))]) (SimpleRhs (65,21) (Do [(StmtBind (VariablePattern (Ident "s" 16)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readCompleteFile" 0))) (Variable (QualIdent Nothing (Ident "file" 14)))))] (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "writeFile" 0))) (Variable (QualIdent Nothing (Ident "file" 14)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 14))) (Variable (QualIdent Nothing (Ident "s" 16))))))) []))])
+,(TypeSig (77,1) [(Ident "exclusiveIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (78,1) (Ident "exclusiveIO" 0) [(Equation (78,1) (FunLhs (Ident "exclusiveIO" 0) [(VariablePattern (Ident "lockfile" 17)),(VariablePattern (Ident "action" 17))]) (SimpleRhs (78,31) (Do [(StmtExpr (Apply (Variable (QualIdent (Just "System") (Ident "system" 0))) (Paren (InfixApply (Literal (String "lockfile -1 ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "lockfile" 17)))))))] (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (Do [(StmtBind (VariablePattern (Ident "actionResult" 19)) (Variable (QualIdent Nothing (Ident "action" 17)))),(StmtExpr (Apply (Variable (QualIdent (Just "System") (Ident "system" 0))) (Paren (InfixApply (Literal (String "rm -f ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "lockfile" 17)))))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "actionResult" 19))))))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "System") (Ident "system" 0))) (Paren (InfixApply (Literal (String "rm -f ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "lockfile" 17)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Variable (QualIdent (Just "Prelude") (Ident "failed" 0))))))) []))])
+,(TypeSig (89,1) [(Ident "setAssoc" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (90,1) (Ident "setAssoc" 0) [(Equation (90,1) (FunLhs (Ident "setAssoc" 0) [(VariablePattern (Ident "key" 20)),(VariablePattern (Ident "val" 20))]) (SimpleRhs (90,20) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "IOExts") (Ident "prim_setAssoc" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "key" 20))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "val" 20)))) []))])
+,(TypeSig (92,1) [(Ident "prim_setAssoc" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (93,1) [(Ident "prim_setAssoc" 0)])
+,(TypeSig (98,1) [(Ident "getAssoc" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])])))
+,(FunctionDecl (99,1) (Ident "getAssoc" 0) [(Equation (99,1) (FunLhs (Ident "getAssoc" 0) [(VariablePattern (Ident "key" 22))]) (SimpleRhs (99,16) (InfixApply (Variable (QualIdent (Just "IOExts") (Ident "prim_getAssoc" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "key" 22)))) []))])
+,(TypeSig (101,1) [(Ident "prim_getAssoc" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])])))
+,(FlatExternalDecl (102,1) [(Ident "prim_getAssoc" 0)])
+,(TypeSig (110,1) [(Ident "newIORef" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "IORef" 0)) [(VariableType (Ident "a" 0))])])))
+,(FlatExternalDecl (111,1) [(Ident "newIORef" 0)])
+,(TypeSig (114,1) [(Ident "readIORef" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IORef" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (115,1) (Ident "readIORef" 0) [(Equation (115,1) (FunLhs (Ident "readIORef" 0) [(VariablePattern (Ident "ref" 24))]) (SimpleRhs (115,17) (InfixApply (Variable (QualIdent (Just "IOExts") (Ident "prim_readIORef" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "ref" 24)))) []))])
+,(TypeSig (117,1) [(Ident "prim_readIORef" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IORef" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))
+,(FlatExternalDecl (118,1) [(Ident "prim_readIORef" 0)])
+,(TypeSig (121,1) [(Ident "writeIORef" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IORef" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (122,1) (Ident "writeIORef" 0) [(Equation (122,1) (FunLhs (Ident "writeIORef" 0) [(VariablePattern (Ident "ref" 26)),(VariablePattern (Ident "val" 26))]) (SimpleRhs (122,22) (Apply (Paren (InfixApply (Variable (QualIdent (Just "IOExts") (Ident "prim_writeIORef" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "ref" 26))))) (Variable (QualIdent Nothing (Ident "val" 26)))) []))])
+,(TypeSig (124,1) [(Ident "prim_writeIORef" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IORef" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (125,1) [(Ident "prim_writeIORef" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/IOExts.efc b/src/lib/Curry/Module/.curry/IOExts.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IOExts.efc
@@ -0,0 +1,1 @@
+Prog "IOExts" ["IO","Prelude","System"] [Type ((Nothing,Nothing,"IOExts","IORef")) Public [0] []] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") []]])),"IOExts","execCmd")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"IO","Handle")) [],TCons ((Nothing,Nothing,"IO","Handle")) [],TCons ((Nothing,Nothing,"IO","Handle")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") []]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") []]])),"IOExts","prim_execCmd")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") [],TCons (Nothing,Nothing,"IO","Handle") []]])),"IOExts","prim_execCmd")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"IO","Handle")) [],TCons ((Nothing,Nothing,"IO","Handle")) [],TCons ((Nothing,Nothing,"IO","Handle")) []]])) (External "IOExts.prim_execCmd"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []])),"IOExts","connectToCommand")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"IO","Handle")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []])),"IOExts","prim_connectToCmd")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []])),"IOExts","prim_connectToCmd")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"IO","Handle")) []])) (External "IOExts.prim_connectToCmd"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IOExts","readCompleteFile")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","readFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IOExts","readCompleteFile._#lambda2")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TVar 1) (TVar 1))),"IOExts","readCompleteFile.f.7")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TVar 1) (TVar 1))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TVar 1),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TVar 1),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TVar 1) (TVar 1))),"IOExts","readCompleteFile.f.7")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TVar 1),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IOExts","readCompleteFile._#lambda2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"IOExts","readCompleteFile.f.7")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","updateFile")) 2 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"IOExts","readCompleteFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"IOExts","updateFile._#lambda3")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"IOExts","updateFile._#lambda3")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","writeFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"IOExts","exclusiveIO")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"System","system")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'k'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '-'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '1'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude","catchFail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"IOExts","exclusiveIO._#lambda4")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"System","system")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '-'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),"Prelude","failed")) []]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 44) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 44]))),"IOExts","exclusiveIO._#lambda4")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 44) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 44]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 44),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 44]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 44]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"System","system")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '-'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]],Comb FuncCall ((Nothing,Just (FuncType (TVar 44) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 44])),"Prelude","return")) [Var ((Just (TVar 44),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","setAssoc")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","prim_setAssoc")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","prim_setAssoc")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "IOExts.prim_setAssoc"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"IOExts","getAssoc")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"IOExts","prim_getAssoc")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"IOExts","prim_getAssoc")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (External "IOExts.prim_getAssoc"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]])),"IOExts","newIORef")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"IOExts","IORef")) [TVar 0]])) (External "IOExts.newIORef"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"IOExts","readIORef")) 1 Public (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"IOExts","prim_readIORef")) [],Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"IOExts","prim_readIORef")) 1 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (External "IOExts.prim_readIORef"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TVar 0]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$#")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","prim_writeIORef")) [],Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]),1))],Var ((Just (TVar 0),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","prim_writeIORef")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TVar 0]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "IOExts.prim_writeIORef")] []
diff --git a/src/lib/Curry/Module/.curry/IOExts.fcy b/src/lib/Curry/Module/.curry/IOExts.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IOExts.fcy
@@ -0,0 +1,1 @@
+Prog "IOExts" ["IO","Prelude","System"] [Type ("IOExts","IORef") Public [0] []] [Func ("IOExts","execCmd") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,,)") [TCons ("IO","Handle") [],TCons ("IO","Handle") [],TCons ("IO","Handle") []]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("IOExts","prim_execCmd") [],Var 1])),Func ("IOExts","prim_execCmd") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,,)") [TCons ("IO","Handle") [],TCons ("IO","Handle") [],TCons ("IO","Handle") []]])) (External "IOExts.prim_execCmd"),Func ("IOExts","connectToCommand") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("IO","Handle") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("IOExts","prim_connectToCmd") [],Var 1])),Func ("IOExts","prim_connectToCmd") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("IO","Handle") []])) (External "IOExts.prim_connectToCmd"),Func ("IOExts","readCompleteFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","readFile") [Var 1],Comb (FuncPartCall 1) ("IOExts","readCompleteFile._#lambda2") []])),Func ("IOExts","readCompleteFile.f.7") 2 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TVar 1) (TVar 1))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("IOExts","readCompleteFile.f.7") [Var 4,Var 2])])),Func ("IOExts","readCompleteFile._#lambda2") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("IOExts","readCompleteFile.f.7") [Var 1,Comb FuncCall ("Prelude","return") [Var 1]])),Func ("IOExts","updateFile") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readCompleteFile") [Var 2],Comb (FuncPartCall 1) ("IOExts","updateFile._#lambda3") [Var 1,Var 2]])),Func ("IOExts","updateFile._#lambda3") 3 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","writeFile") [Var 2,Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("IOExts","exclusiveIO") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("System","system") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'k'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  '1'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]],Var 1]],Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Prelude",">>=") [Var 2,Comb (FuncPartCall 1) ("IOExts","exclusiveIO._#lambda4") [Var 1]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("System","system") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]],Var 1]],Comb FuncCall ("Prelude","failed") []]]])),Func ("IOExts","exclusiveIO._#lambda4") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 44) (TCons ("Prelude","IO") [TVar 44]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("System","system") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]],Var 1]],Comb FuncCall ("Prelude","return") [Var 2]])),Func ("IOExts","setAssoc") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("IOExts","prim_setAssoc") [],Var 1],Var 2])),Func ("IOExts","prim_setAssoc") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "IOExts.prim_setAssoc"),Func ("IOExts","getAssoc") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("IOExts","prim_getAssoc") [],Var 1])),Func ("IOExts","prim_getAssoc") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (External "IOExts.prim_getAssoc"),Func ("IOExts","newIORef") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("IOExts","IORef") [TVar 0]])) (External "IOExts.newIORef"),Func ("IOExts","readIORef") 1 Public (FuncType (TCons ("IOExts","IORef") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("IOExts","prim_readIORef") [],Var 1])),Func ("IOExts","prim_readIORef") 1 Private (FuncType (TCons ("IOExts","IORef") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (External "IOExts.prim_readIORef"),Func ("IOExts","writeIORef") 2 Public (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 2) ("IOExts","prim_writeIORef") [],Var 1],Var 2])),Func ("IOExts","prim_writeIORef") 2 Private (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "IOExts.prim_writeIORef")] []
diff --git a/src/lib/Curry/Module/.curry/IOExts.fint b/src/lib/Curry/Module/.curry/IOExts.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IOExts.fint
@@ -0,0 +1,1 @@
+Prog "IOExts" ["IO","Prelude","System"] [Type ("IOExts","IORef") Public [0] []] [Func ("IOExts","execCmd") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","(,,)") [TCons ("IO","Handle") [],TCons ("IO","Handle") [],TCons ("IO","Handle") []]])) (Rule [] (Var 0)),Func ("IOExts","connectToCommand") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("IO","Handle") []])) (Rule [] (Var 0)),Func ("IOExts","readCompleteFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("IOExts","updateFile") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("IOExts","exclusiveIO") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 0]))) (Rule [] (Var 0)),Func ("IOExts","setAssoc") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("IOExts","getAssoc") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [] (Var 0)),Func ("IOExts","newIORef") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("IOExts","IORef") [TVar 0]])) (External "IOExts.newIORef"),Func ("IOExts","readIORef") 1 Public (FuncType (TCons ("IOExts","IORef") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (Rule [] (Var 0)),Func ("IOExts","writeIORef") 2 Public (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/IOExts.uacy b/src/lib/Curry/Module/.curry/IOExts.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/IOExts.uacy
@@ -0,0 +1,20 @@
+CurryProg "IOExts"
+ ["Prelude","System","IO"]
+ [CType ("IOExts","IORef") Public [(0,"_")] []]
+ [CFunc ("IOExts","connectToCommand") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []])) (CRules CFlex [CRule [CPVar (0,"cmd")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_connectToCmd"))) (CVar (0,"cmd")))] []]),
+  CFunc ("IOExts","exclusiveIO") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"lockfile"),CPVar (1,"action")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '1'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))) (CVar (0,"lockfile")))),CSExpr (CApply (CApply (CSymbol ("Prelude","catchFail")) (CDoExpr [CSPat (CPVar (2,"actionResult")) (CVar (1,"action")),CSExpr (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))) (CVar (0,"lockfile")))),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"actionResult")))])) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("System","system")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '-'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))) (CVar (0,"lockfile"))))) (CSymbol ("Prelude","failed"))))])] []]),
+  CFunc ("IOExts","execCmd") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,,)") [CTCons ("IO","Handle") [],CTCons ("IO","Handle") [],CTCons ("IO","Handle") []]])) (CRules CFlex [CRule [CPVar (0,"cmd")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_execCmd"))) (CVar (0,"cmd")))] []]),
+  CFunc ("IOExts","getAssoc") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","String") []]])) (CRules CFlex [CRule [CPVar (0,"key")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_getAssoc"))) (CVar (0,"key")))] []]),
+  CFunc ("IOExts","newIORef") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("IOExts","IORef") [CTVar (0,"a")]])) (CExternal "newIORef"),
+  CFunc ("IOExts","prim_connectToCmd") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []])) (CExternal "prim_connectToCmd"),
+  CFunc ("IOExts","prim_execCmd") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,,)") [CTCons ("IO","Handle") [],CTCons ("IO","Handle") [],CTCons ("IO","Handle") []]])) (CExternal "prim_execCmd"),
+  CFunc ("IOExts","prim_getAssoc") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","String") []]])) (CExternal "prim_getAssoc"),
+  CFunc ("IOExts","prim_readIORef") 1 Private (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "prim_readIORef"),
+  CFunc ("IOExts","prim_setAssoc") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_setAssoc"),
+  CFunc ("IOExts","prim_writeIORef") 2 Private (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_writeIORef"),
+  CFunc ("IOExts","readCompleteFile") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"s")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file"))),CSExpr (CApply (CApply (CSymbol ("IOExts","f")) (CVar (1,"s"))) (CApply (CSymbol ("Prelude","return")) (CVar (1,"s"))))])] [CLocalFunc (CFunc ("IOExts","f") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"r")] [(CSymbol ("Prelude","success"),CVar (1,"r"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"cs")],CPVar (4,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("IOExts","f")) (CVar (3,"cs"))) (CVar (4,"r")))] []]))]]),
+  CFunc ("IOExts","readIORef") 1 Public (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IOExts","prim_readIORef"))) (CVar (0,"ref")))] []]),
+  CFunc ("IOExts","setAssoc") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"val")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("IOExts","prim_setAssoc"))) (CVar (0,"key")))) (CVar (1,"val")))] []]),
+  CFunc ("IOExts","updateFile") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"file")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"s")) (CApply (CSymbol ("IOExts","readCompleteFile")) (CVar (1,"file"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (1,"file"))) (CApply (CVar (0,"f")) (CVar (2,"s"))))])] []]),
+  CFunc ("IOExts","writeIORef") 2 Public (CFuncType (CTCons ("IOExts","IORef") [CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"val")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("IOExts","prim_writeIORef"))) (CVar (0,"ref"))) (CVar (1,"val")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Integer.acy b/src/lib/Curry/Module/.curry/Integer.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Integer.acy
@@ -0,0 +1,23 @@
+CurryProg "Integer"
+ ["Prelude"]
+ []
+ [CFunc ("Integer","abs") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CApply (CSymbol ("Prelude","negate")) (CVar (0,"n")))) (CVar (0,"n")))] []]),
+  CFunc ("Integer","binomial") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CVar (1,"m"))),CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (1,"m"))) (CVar (0,"n")))) (CApply (CSymbol ("Integer","factorial")) (CVar (1,"m"))))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (2,"x"),CPVar (3,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"x"))) (CLit (CIntc 0)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"y"))) (CApply (CApply (CSymbol ("Integer","aux")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (2,"x"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"y"))) (CLit (CIntc 1))))))] []]))]]),
+  CFunc ("Integer","bitAnd") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitAnd")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]),
+  CFunc ("Integer","bitNot") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","aux")) (CLit (CIntc 32))) (CVar (0,"n")))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (1,"c"),CPVar (2,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CLetDecl [CLocalPat (CPVar (3,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","aux")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"c"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (2,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (4,"q")) (CApply (CApply (CSymbol ("Prelude","-")) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (2,"m"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"p"))) (CVar (4,"q")))))] []]))]]),
+  CFunc ("Integer","bitOr") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CVar (0,"n"))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitOr")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]),
+  CFunc ("Integer","bitTrunc") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","bitAnd")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Integer","pow")) (CLit (CIntc 2))) (CVar (0,"n")))) (CLit (CIntc 1)))) (CVar (1,"m")))] []]),
+  CFunc ("Integer","bitXor") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CVar (0,"n"))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitXor")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2))))) (CLit (CIntc 0))) (CLit (CIntc 1))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]),
+  CFunc ("Integer","even") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))] []]),
+  CFunc ("Integer","factorial") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CApply (CSymbol ("Integer","factorial")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (0,"n"))) (CLit (CIntc 1))))))] []]),
+  CFunc ("Integer","ilog") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 10)))) (CLit (CIntc 0))) (CApply (CApply (CSymbol ("Prelude","+")) (CLit (CIntc 1))) (CApply (CSymbol ("Integer","ilog")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 10))))))] []]),
+  CFunc ("Integer","isqrt") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 4)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Integer","aux")) (CLit (CIntc 2))) (CVar (0,"n")))))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (1,"low"),CPVar (2,"past")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"past"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"low"))) (CLit (CIntc 1))))) (CVar (1,"low"))) (CLetDecl [CLocalPat (CPVar (3,"cand")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"past"))) (CVar (1,"low")))) (CLit (CIntc 2))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"cand"))) (CVar (3,"cand")))) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (1,"low"))) (CVar (3,"cand")))) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (3,"cand"))) (CVar (2,"past"))))))] []]))]]),
+  CFunc ("Integer","max") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CVar (1,"m")))) (CVar (1,"m"))) (CVar (0,"n")))] []]),
+  CFunc ("Integer","max3") 3 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m"),CPVar (2,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","max")) (CVar (0,"n"))) (CApply (CApply (CSymbol ("Integer","max")) (CVar (1,"m"))) (CVar (2,"p"))))] []]),
+  CFunc ("Integer","maxlist") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"n"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"n"),CPComb ("Prelude",":") [CPVar (2,"m"),CPVar (3,"ns")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","max")) (CVar (1,"n"))) (CApply (CSymbol ("Integer","maxlist")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"m"))) (CVar (3,"ns")))))] []]),
+  CFunc ("Integer","min") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CVar (1,"m")))) (CVar (0,"n"))) (CVar (1,"m")))] []]),
+  CFunc ("Integer","min3") 3 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m"),CPVar (2,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","min")) (CVar (0,"n"))) (CApply (CApply (CSymbol ("Integer","min")) (CVar (1,"m"))) (CVar (2,"p"))))] []]),
+  CFunc ("Integer","minlist") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"n"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"n"),CPComb ("Prelude",":") [CPVar (2,"m"),CPVar (3,"ns")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","min")) (CVar (1,"n"))) (CApply (CSymbol ("Integer","minlist")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"m"))) (CVar (3,"ns")))))] []]),
+  CFunc ("Integer","odd") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))] []]),
+  CFunc ("Integer","pow") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"a"),CPVar (1,"b")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (1,"b"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Integer","powaux")) (CLit (CIntc 1))) (CVar (0,"a"))) (CVar (1,"b")))] [CLocalFunc (CFunc ("Integer","powaux") 3 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])))) (CRules CFlex [CRule [CPVar (2,"n"),CPVar (3,"x"),CPVar (4,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"y"))) (CLit (CIntc 0)))) (CVar (2,"n"))) (CApply (CApply (CApply (CSymbol ("Integer","powaux")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (2,"n"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (4,"y"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (3,"x"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"x"))) (CVar (3,"x")))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (4,"y"))) (CLit (CIntc 2)))))] []]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Integer.cy b/src/lib/Curry/Module/.curry/Integer.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Integer.cy
@@ -0,0 +1,23 @@
+Module "Integer"
+(Just (Exporting (11,15) [(Export (QualIdent Nothing (Ident "pow" 0))),(Export (QualIdent Nothing (Ident "ilog" 0))),(Export (QualIdent Nothing (Ident "isqrt" 0))),(Export (QualIdent Nothing (Ident "factorial" 0))),(Export (QualIdent Nothing (Ident "binomial" 0))),(Export (QualIdent Nothing (Ident "abs" 0))),(Export (QualIdent Nothing (Ident "max" 0))),(Export (QualIdent Nothing (Ident "min" 0))),(Export (QualIdent Nothing (Ident "max3" 0))),(Export (QualIdent Nothing (Ident "min3" 0))),(Export (QualIdent Nothing (Ident "maxlist" 0))),(Export (QualIdent Nothing (Ident "minlist" 0))),(Export (QualIdent Nothing (Ident "bitTrunc" 0))),(Export (QualIdent Nothing (Ident "bitAnd" 0))),(Export (QualIdent Nothing (Ident "bitOr" 0))),(Export (QualIdent Nothing (Ident "bitNot" 0))),(Export (QualIdent Nothing (Ident "bitXor" 0))),(Export (QualIdent Nothing (Ident "even" 0))),(Export (QualIdent Nothing (Ident "odd" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(FunctionDecl (29,1) (Ident "pow" 0) [(Equation (29,1) (FunLhs (Ident "pow" 0) [(VariablePattern (Ident "a" 2)),(VariablePattern (Ident "b" 2))]) (GuardedRhs [(CondExpr (29,9) (InfixApply (Variable (QualIdent Nothing (Ident "b" 2))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Literal (Int (Ident "_" 11) 0))) (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "powaux" 3))) (Literal (Int (Ident "_" 12) 1))) (Variable (QualIdent Nothing (Ident "a" 2)))) (Variable (QualIdent Nothing (Ident "b" 2)))))] [(FunctionDecl (31,5) (Ident "powaux" 3) [(Equation (31,5) (FunLhs (Ident "powaux" 3) [(VariablePattern (Ident "n" 4)),(VariablePattern (Ident "x" 4)),(VariablePattern (Ident "y" 4))]) (SimpleRhs (31,20) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "y" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 6) 0))) (Variable (QualIdent Nothing (Ident "n" 4))) (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "powaux" 3))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (IfThenElse (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "y" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 7) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 8) 1)))) (Variable (QualIdent Nothing (Ident "x" 4))) (Literal (Int (Ident "_" 9) 1)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "x" 4)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 10) 2)))))) []))])]))])
+,(FunctionDecl (45,1) (Ident "ilog" 0) [(Equation (45,1) (FunLhs (Ident "ilog" 0) [(VariablePattern (Ident "n" 13))]) (GuardedRhs [(CondExpr (45,8) (InfixApply (Variable (QualIdent Nothing (Ident "n" 13))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Literal (Int (Ident "_" 15) 0))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 13))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Literal (Int (Ident "_" 16) 10))) (Literal (Int (Ident "_" 17) 0)) (InfixApply (Literal (Int (Ident "_" 18) 1)) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Apply (Variable (QualIdent (Just "Integer") (Ident "ilog" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 13))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 19) 10))))))))] []))])
+,(FunctionDecl (55,1) (Ident "isqrt" 0) [(Equation (55,1) (FunLhs (Ident "isqrt" 0) [(VariablePattern (Ident "n" 20))]) (GuardedRhs [(CondExpr (55,9) (InfixApply (Variable (QualIdent Nothing (Ident "n" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Literal (Int (Ident "_" 28) 0))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 29) 0))) (Literal (Int (Ident "_" 30) 0)) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Literal (Int (Ident "_" 31) 4))) (Literal (Int (Ident "_" 32) 1)) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 21))) (Literal (Int (Ident "_" 33) 2))) (Variable (QualIdent Nothing (Ident "n" 20)))))))] [(FunctionDecl (59,9) (Ident "aux" 21) [(Equation (59,9) (FunLhs (Ident "aux" 21) [(VariablePattern (Ident "low" 22)),(VariablePattern (Ident "past" 22))]) (SimpleRhs (60,11) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "past" 22))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "low" 22))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 24) 1)))) (Variable (QualIdent Nothing (Ident "low" 22))) (Let [(PatternDecl (61,20) (VariablePattern (Ident "cand" 25)) (SimpleRhs (61,27) (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "past" 22))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "low" 22))))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 27) 2))) []))] (IfThenElse (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "cand" 25))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "cand" 25)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Variable (QualIdent Nothing (Ident "n" 20)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 21))) (Variable (QualIdent Nothing (Ident "low" 22)))) (Variable (QualIdent Nothing (Ident "cand" 25)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 21))) (Variable (QualIdent Nothing (Ident "cand" 25)))) (Variable (QualIdent Nothing (Ident "past" 22))))))) []))])]))])
+,(FunctionDecl (70,1) (Ident "factorial" 0) [(Equation (70,1) (FunLhs (Ident "factorial" 0) [(VariablePattern (Ident "n" 34))]) (GuardedRhs [(CondExpr (70,13) (InfixApply (Variable (QualIdent Nothing (Ident "n" 34))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Literal (Int (Ident "_" 36) 0))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 34))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 37) 0))) (Literal (Int (Ident "_" 38) 1)) (InfixApply (Variable (QualIdent Nothing (Ident "n" 34))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Apply (Variable (QualIdent (Just "Integer") (Ident "factorial" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 34))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 39) 1))))))))] []))])
+,(FunctionDecl (80,1) (Ident "binomial" 0) [(Equation (80,1) (FunLhs (Ident "binomial" 0) [(VariablePattern (Ident "n" 40)),(VariablePattern (Ident "m" 40))]) (GuardedRhs [(CondExpr (80,14) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "m" 40))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Literal (Int (Ident "_" 48) 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "n" 40))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Variable (QualIdent Nothing (Ident "m" 40))))) (InfixApply (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 41))) (Variable (QualIdent Nothing (Ident "m" 40)))) (Variable (QualIdent Nothing (Ident "n" 40)))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Apply (Variable (QualIdent (Just "Integer") (Ident "factorial" 0))) (Variable (QualIdent Nothing (Ident "m" 40))))))] [(FunctionDecl (81,9) (Ident "aux" 41) [(Equation (81,9) (FunLhs (Ident "aux" 41) [(VariablePattern (Ident "x" 42)),(VariablePattern (Ident "y" 42))]) (SimpleRhs (81,19) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "x" 42))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 44) 0))) (Literal (Int (Ident "_" 45) 1)) (InfixApply (Variable (QualIdent Nothing (Ident "y" 42))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 41))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 42))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 46) 1))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 42))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 47) 1))))))) []))])]))])
+,(FunctionDecl (88,1) (Ident "abs" 0) [(Equation (88,1) (FunLhs (Ident "abs" 0) [(VariablePattern (Ident "n" 49))]) (SimpleRhs (88,9) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 49))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Literal (Int (Ident "_" 51) 0))) (UnaryMinus (Ident "-" 0) (Variable (QualIdent Nothing (Ident "n" 49)))) (Variable (QualIdent Nothing (Ident "n" 49)))) []))])
+,(FunctionDecl (96,1) (Ident "max" 0) [(Equation (96,1) (FunLhs (Ident "max" 0) [(VariablePattern (Ident "n" 52)),(VariablePattern (Ident "m" 52))]) (SimpleRhs (96,11) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 52))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "m" 52)))) (Variable (QualIdent Nothing (Ident "m" 52))) (Variable (QualIdent Nothing (Ident "n" 52)))) []))])
+,(FunctionDecl (104,1) (Ident "min" 0) [(Equation (104,1) (FunLhs (Ident "min" 0) [(VariablePattern (Ident "n" 54)),(VariablePattern (Ident "m" 54))]) (SimpleRhs (104,11) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 54))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "m" 54)))) (Variable (QualIdent Nothing (Ident "n" 54))) (Variable (QualIdent Nothing (Ident "m" 54)))) []))])
+,(FunctionDecl (113,1) (Ident "max3" 0) [(Equation (113,1) (FunLhs (Ident "max3" 0) [(VariablePattern (Ident "n" 56)),(VariablePattern (Ident "m" 56)),(VariablePattern (Ident "p" 56))]) (SimpleRhs (113,14) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "max" 0))) (Variable (QualIdent Nothing (Ident "n" 56)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "max" 0))) (Variable (QualIdent Nothing (Ident "m" 56)))) (Variable (QualIdent Nothing (Ident "p" 56)))))) []))])
+,(FunctionDecl (122,1) (Ident "min3" 0) [(Equation (122,1) (FunLhs (Ident "min3" 0) [(VariablePattern (Ident "n" 58)),(VariablePattern (Ident "m" 58)),(VariablePattern (Ident "p" 58))]) (SimpleRhs (122,14) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "min" 0))) (Variable (QualIdent Nothing (Ident "n" 58)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "min" 0))) (Variable (QualIdent Nothing (Ident "m" 58)))) (Variable (QualIdent Nothing (Ident "p" 58)))))) []))])
+,(FunctionDecl (130,1) (Ident "maxlist" 0) [(Equation (130,1) (FunLhs (Ident "maxlist" 0) [(ListPattern [(VariablePattern (Ident "n" 60))])]) (SimpleRhs (130,15) (Variable (QualIdent Nothing (Ident "n" 60))) [])),(Equation (131,1) (FunLhs (Ident "maxlist" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "n" 62)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "m" 62)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ns" 62)))))]) (SimpleRhs (131,20) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "max" 0))) (Variable (QualIdent Nothing (Ident "n" 62)))) (Paren (Apply (Variable (QualIdent (Just "Integer") (Ident "maxlist" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 62))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ns" 62)))))))) []))])
+,(FunctionDecl (139,1) (Ident "minlist" 0) [(Equation (139,1) (FunLhs (Ident "minlist" 0) [(ListPattern [(VariablePattern (Ident "n" 64))])]) (SimpleRhs (139,15) (Variable (QualIdent Nothing (Ident "n" 64))) [])),(Equation (140,1) (FunLhs (Ident "minlist" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "n" 66)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "m" 66)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ns" 66)))))]) (SimpleRhs (140,20) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "min" 0))) (Variable (QualIdent Nothing (Ident "n" 66)))) (Paren (Apply (Variable (QualIdent (Just "Integer") (Ident "minlist" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 66))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ns" 66)))))))) []))])
+,(FunctionDecl (149,1) (Ident "bitTrunc" 0) [(Equation (149,1) (FunLhs (Ident "bitTrunc" 0) [(VariablePattern (Ident "n" 68)),(VariablePattern (Ident "m" 68))]) (SimpleRhs (149,16) (Apply (Apply (Variable (QualIdent (Just "Integer") (Ident "bitAnd" 0))) (Paren (InfixApply (Apply (Apply (Variable (QualIdent (Just "Integer") (Ident "pow" 0))) (Literal (Int (Ident "_" 70) 2))) (Variable (QualIdent Nothing (Ident "n" 68)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 71) 1))))) (Variable (QualIdent Nothing (Ident "m" 68)))) []))])
+,(FunctionDecl (157,1) (Ident "bitAnd" 0) [(Equation (157,1) (FunLhs (Ident "bitAnd" 0) [(VariablePattern (Ident "n" 72)),(VariablePattern (Ident "m" 72))]) (SimpleRhs (157,14) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "m" 72))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 74) 0))) (Literal (Int (Ident "_" 75) 0)) (Let [(PatternDecl (158,23) (VariablePattern (Ident "p" 76)) (SimpleRhs (158,27) (InfixApply (Literal (Int (Ident "_" 78) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Apply (Apply (Variable (QualIdent (Just "Integer") (Ident "bitAnd" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 72))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 79) 2))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 72))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 80) 2)))))) [])),(PatternDecl (159,23) (VariablePattern (Ident "q" 76)) (SimpleRhs (159,27) (IfThenElse (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "m" 72))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 82) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 83) 0))) (Literal (Int (Ident "_" 84) 0)) (InfixApply (Variable (QualIdent Nothing (Ident "n" 72))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 85) 2)))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "p" 76))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "q" 76)))))) []))])
+,(FunctionDecl (168,1) (Ident "bitOr" 0) [(Equation (168,1) (FunLhs (Ident "bitOr" 0) [(VariablePattern (Ident "n" 86)),(VariablePattern (Ident "m" 86))]) (SimpleRhs (168,13) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "m" 86))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 88) 0))) (Variable (QualIdent Nothing (Ident "n" 86))) (Let [(PatternDecl (169,22) (VariablePattern (Ident "p" 89)) (SimpleRhs (169,26) (InfixApply (Literal (Int (Ident "_" 91) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Apply (Apply (Variable (QualIdent (Just "Integer") (Ident "bitOr" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 86))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 92) 2))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 86))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 93) 2)))))) [])),(PatternDecl (170,22) (VariablePattern (Ident "q" 89)) (SimpleRhs (170,26) (IfThenElse (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "m" 86))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 95) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 96) 1))) (Literal (Int (Ident "_" 97) 1)) (InfixApply (Variable (QualIdent Nothing (Ident "n" 86))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 98) 2)))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "p" 89))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "q" 89)))))) []))])
+,(FunctionDecl (180,1) (Ident "bitNot" 0) [(Equation (180,1) (FunLhs (Ident "bitNot" 0) [(VariablePattern (Ident "n" 99))]) (SimpleRhs (180,12) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 100))) (Literal (Int (Ident "_" 113) 32))) (Variable (QualIdent Nothing (Ident "n" 99)))) [(FunctionDecl (181,9) (Ident "aux" 100) [(Equation (181,9) (FunLhs (Ident "aux" 100) [(VariablePattern (Ident "c" 101)),(VariablePattern (Ident "m" 101))]) (SimpleRhs (181,19) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "c" 101))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 103) 0))) (Literal (Int (Ident "_" 104) 0)) (Let [(PatternDecl (182,28) (VariablePattern (Ident "p" 105)) (SimpleRhs (182,32) (InfixApply (Literal (Int (Ident "_" 107) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "aux" 100))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 101))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 108) 1))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 101))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 109) 2)))))) [])),(PatternDecl (183,28) (VariablePattern (Ident "q" 105)) (SimpleRhs (183,32) (InfixApply (Literal (Int (Ident "_" 111) 1)) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "m" 101))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 112) 2)))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "p" 105))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "q" 105)))))) []))])]))])
+,(FunctionDecl (192,1) (Ident "bitXor" 0) [(Equation (192,1) (FunLhs (Ident "bitXor" 0) [(VariablePattern (Ident "n" 114)),(VariablePattern (Ident "m" 114))]) (SimpleRhs (192,14) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "m" 114))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 116) 0))) (Variable (QualIdent Nothing (Ident "n" 114))) (Let [(PatternDecl (193,23) (VariablePattern (Ident "p" 117)) (SimpleRhs (193,27) (InfixApply (Literal (Int (Ident "_" 119) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Apply (Apply (Variable (QualIdent (Just "Integer") (Ident "bitXor" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 114))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 120) 2))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 114))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 121) 2)))))) [])),(PatternDecl (194,23) (VariablePattern (Ident "q" 117)) (SimpleRhs (194,27) (IfThenElse (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "m" 114))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 123) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "n" 114))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 124) 2)))) (Literal (Int (Ident "_" 125) 0)) (Literal (Int (Ident "_" 126) 1))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "p" 117))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "q" 117)))))) []))])
+,(FunctionDecl (202,1) (Ident "even" 0) [(Equation (202,1) (FunLhs (Ident "even" 0) [(VariablePattern (Ident "n" 127))]) (SimpleRhs (202,10) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 127))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 129) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 130) 0))) []))])
+,(FunctionDecl (209,1) (Ident "odd" 0) [(Equation (209,1) (FunLhs (Ident "odd" 0) [(VariablePattern (Ident "n" 131))]) (SimpleRhs (209,9) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 131))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 133) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Literal (Int (Ident "_" 134) 0))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Integer.efc b/src/lib/Curry/Module/.curry/Integer.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Integer.efc
@@ -0,0 +1,1 @@
+Prog "Integer" ["Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","pow")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","pow.powaux.3")) [Lit (Intc  1),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","pow.powaux.3")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","pow.powaux.3")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)],Lit (Intc  1)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Lit (Intc  1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","ilog")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  10)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Lit (Intc  1),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","ilog")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  10)]]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","isqrt")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  4)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  1)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","isqrt.aux.21")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","isqrt.aux.21")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  1)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Lit (Intc  2)])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","isqrt.aux.21")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","isqrt.aux.21")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))])]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","factorial")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  1)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","factorial")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)]]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","binomial")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","binomial.aux.41")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","factorial")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","binomial.aux.41")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  1)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","binomial.aux.41")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  1)]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","abs")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","max")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","min")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","max3")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","max")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","max")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","min3")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","min")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","min")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","maxlist")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","max")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","maxlist")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","minlist")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","min")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","minlist")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitTrunc")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitAnd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","pow")) [Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitAnd")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitAnd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)]]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)],Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)])])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitOr")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitOr")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)]]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)],Lit (Intc  1)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  1)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)])])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","bitNot")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitNot.aux.100")) [Lit (Intc  32),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitNot.aux.100")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitNot.aux.100")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)]]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Lit (Intc  1),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)]])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitXor")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitXor")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)]]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Lit (Intc  1))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Integer","even")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Lit (Intc  0)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Integer","odd")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Lit (Intc  0)]))] []
diff --git a/src/lib/Curry/Module/.curry/Integer.fcy b/src/lib/Curry/Module/.curry/Integer.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Integer.fcy
@@ -0,0 +1,1 @@
+Prog "Integer" ["Prelude"] [] [Func ("Integer","pow") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude",">=") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Integer","pow.powaux.3") [Lit (Intc  1),Var 1,Var 2]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])),Func ("Integer","pow.powaux.3") 3 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Integer","pow.powaux.3") [Comb FuncCall ("Prelude","*") [Var 1,Case  Rigid (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 3,Lit (Intc  2)],Lit (Intc  1)]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Lit (Intc  1))]],Comb FuncCall ("Prelude","*") [Var 2,Var 2],Comb FuncCall ("Prelude","div") [Var 3,Lit (Intc  2)]])])),Func ("Integer","ilog") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Prelude","<") [Var 1,Lit (Intc  10)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  0)),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","+") [Lit (Intc  1),Comb FuncCall ("Integer","ilog") [Comb FuncCall ("Prelude","div") [Var 1,Lit (Intc  10)]]])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])),Func ("Integer","isqrt") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude",">=") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  0)),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","<") [Var 1,Lit (Intc  4)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  1)),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Integer","isqrt.aux.21") [Var 1,Lit (Intc  2),Var 1])])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])),Func ("Integer","isqrt.aux.21") 3 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Comb FuncCall ("Prelude","+") [Var 2,Lit (Intc  1)]]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Let [(4,Comb FuncCall ("Prelude","div") [Comb FuncCall ("Prelude","+") [Var 3,Var 2],Lit (Intc  2)])] (Case  Rigid (Comb FuncCall ("Prelude",">") [Comb FuncCall ("Prelude","*") [Var 4,Var 4],Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Integer","isqrt.aux.21") [Var 1,Var 2,Var 4]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Integer","isqrt.aux.21") [Var 1,Var 4,Var 3])]))])),Func ("Integer","factorial") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude",">=") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  1)),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","*") [Var 1,Comb FuncCall ("Integer","factorial") [Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)]]])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])),Func ("Integer","binomial") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">") [Var 2,Lit (Intc  0)],Comb FuncCall ("Prelude",">=") [Var 1,Var 2]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","div") [Comb FuncCall ("Integer","binomial.aux.41") [Var 2,Var 1],Comb FuncCall ("Integer","factorial") [Var 2]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])),Func ("Integer","binomial.aux.41") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  1)),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","*") [Var 2,Comb FuncCall ("Integer","binomial.aux.41") [Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)],Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  1)]]])])),Func ("Integer","abs") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","<") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","negate") [Var 1]),Branch (Pattern ("Prelude","False") []) (Var 1)])),Func ("Integer","max") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","<") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Var 1)])),Func ("Integer","min") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","<") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Var 2)])),Func ("Integer","max3") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])))) (Rule [1,2,3] (Comb FuncCall ("Integer","max") [Var 1,Comb FuncCall ("Integer","max") [Var 2,Var 3]])),Func ("Integer","min3") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])))) (Rule [1,2,3] (Comb FuncCall ("Integer","min") [Var 1,Comb FuncCall ("Integer","min") [Var 2,Var 3]])),Func ("Integer","maxlist") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("Integer","max") [Var 2,Comb FuncCall ("Integer","maxlist") [Comb ConsCall ("Prelude",":") [Var 4,Var 5]]])])])),Func ("Integer","minlist") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("Integer","min") [Var 2,Comb FuncCall ("Integer","minlist") [Comb ConsCall ("Prelude",":") [Var 4,Var 5]]])])])),Func ("Integer","bitTrunc") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Comb FuncCall ("Integer","bitAnd") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Integer","pow") [Lit (Intc  2),Var 1],Lit (Intc  1)],Var 2])),Func ("Integer","bitAnd") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  0)),Branch (Pattern ("Prelude","False") []) (Let [(3,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Comb FuncCall ("Integer","bitAnd") [Comb FuncCall ("Prelude","div") [Var 1,Lit (Intc  2)],Comb FuncCall ("Prelude","div") [Var 2,Lit (Intc  2)]]])] (Let [(4,Case  Rigid (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 2,Lit (Intc  2)],Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  0)),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","mod") [Var 1,Lit (Intc  2)])])] (Comb FuncCall ("Prelude","+") [Var 3,Var 4])))])),Func ("Integer","bitOr") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Let [(3,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Comb FuncCall ("Integer","bitOr") [Comb FuncCall ("Prelude","div") [Var 1,Lit (Intc  2)],Comb FuncCall ("Prelude","div") [Var 2,Lit (Intc  2)]]])] (Let [(4,Case  Rigid (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 2,Lit (Intc  2)],Lit (Intc  1)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  1)),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","mod") [Var 1,Lit (Intc  2)])])] (Comb FuncCall ("Prelude","+") [Var 3,Var 4])))])),Func ("Integer","bitNot") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Integer","bitNot.aux.100") [Lit (Intc  32),Var 1])),Func ("Integer","bitNot.aux.100") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  0)),Branch (Pattern ("Prelude","False") []) (Let [(3,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Comb FuncCall ("Integer","bitNot.aux.100") [Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)],Comb FuncCall ("Prelude","div") [Var 2,Lit (Intc  2)]]])] (Let [(4,Comb FuncCall ("Prelude","-") [Lit (Intc  1),Comb FuncCall ("Prelude","mod") [Var 2,Lit (Intc  2)]])] (Comb FuncCall ("Prelude","+") [Var 3,Var 4])))])),Func ("Integer","bitXor") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Let [(3,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Comb FuncCall ("Integer","bitXor") [Comb FuncCall ("Prelude","div") [Var 1,Lit (Intc  2)],Comb FuncCall ("Prelude","div") [Var 2,Lit (Intc  2)]]])] (Let [(4,Case  Rigid (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 2,Lit (Intc  2)],Comb FuncCall ("Prelude","mod") [Var 1,Lit (Intc  2)]]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  0)),Branch (Pattern ("Prelude","False") []) (Lit (Intc  1))])] (Comb FuncCall ("Prelude","+") [Var 3,Var 4])))])),Func ("Integer","even") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 1,Lit (Intc  2)],Lit (Intc  0)])),Func ("Integer","odd") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","/=") [Comb FuncCall ("Prelude","mod") [Var 1,Lit (Intc  2)],Lit (Intc  0)]))] []
diff --git a/src/lib/Curry/Module/.curry/Integer.fint b/src/lib/Curry/Module/.curry/Integer.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Integer.fint
@@ -0,0 +1,1 @@
+Prog "Integer" ["Prelude"] [] [Func ("Integer","pow") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Integer","ilog") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Integer","isqrt") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Integer","factorial") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Integer","binomial") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Integer","abs") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Integer","max") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Integer","min") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Integer","max3") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])))) (Rule [] (Var 0)),Func ("Integer","min3") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])))) (Rule [] (Var 0)),Func ("Integer","maxlist") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Integer","minlist") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Integer","bitTrunc") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Integer","bitAnd") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Integer","bitOr") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Integer","bitNot") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Integer","bitXor") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Integer","even") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Integer","odd") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Integer.uacy b/src/lib/Curry/Module/.curry/Integer.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Integer.uacy
@@ -0,0 +1,23 @@
+CurryProg "Integer"
+ ["Prelude"]
+ []
+ [CFunc ("Integer","abs") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CApply (CSymbol ("Prelude","negate")) (CVar (0,"n")))) (CVar (0,"n")))] []]),
+  CFunc ("Integer","binomial") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CVar (1,"m"))),CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (1,"m"))) (CVar (0,"n")))) (CApply (CSymbol ("Integer","factorial")) (CVar (1,"m"))))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"x"),CPVar (3,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"x"))) (CLit (CIntc 0)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"y"))) (CApply (CApply (CSymbol ("Integer","aux")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (2,"x"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"y"))) (CLit (CIntc 1))))))] []]))]]),
+  CFunc ("Integer","bitAnd") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitAnd")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]),
+  CFunc ("Integer","bitNot") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","aux")) (CLit (CIntc 32))) (CVar (0,"n")))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (1,"c"),CPVar (2,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CLetDecl [CLocalPat (CPVar (3,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","aux")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"c"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (2,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (4,"q")) (CApply (CApply (CSymbol ("Prelude","-")) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (2,"m"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"p"))) (CVar (4,"q")))))] []]))]]),
+  CFunc ("Integer","bitOr") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CVar (0,"n"))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitOr")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]),
+  CFunc ("Integer","bitTrunc") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Integer","bitAnd")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Integer","pow")) (CLit (CIntc 2))) (CVar (0,"n")))) (CLit (CIntc 1)))) (CVar (1,"m")))] []]),
+  CFunc ("Integer","bitXor") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CVar (0,"n"))) (CLetDecl [CLocalPat (CPVar (2,"p")) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Integer","bitXor")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"m"))) (CLit (CIntc 2))))) [],CLocalPat (CPVar (3,"q")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"m"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2))))) (CLit (CIntc 0))) (CLit (CIntc 1))) []] (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"p"))) (CVar (3,"q")))))] []]),
+  CFunc ("Integer","even") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))] []]),
+  CFunc ("Integer","factorial") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CApply (CSymbol ("Integer","factorial")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (0,"n"))) (CLit (CIntc 1))))))] []]),
+  CFunc ("Integer","ilog") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 10)))) (CLit (CIntc 0))) (CApply (CApply (CSymbol ("Prelude","+")) (CLit (CIntc 1))) (CApply (CSymbol ("Integer","ilog")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"n"))) (CLit (CIntc 10))))))] []]),
+  CFunc ("Integer","isqrt") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (0,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CLit (CIntc 0))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CLit (CIntc 4)))) (CLit (CIntc 1))) (CApply (CApply (CSymbol ("Integer","aux")) (CLit (CIntc 2))) (CVar (0,"n")))))] [CLocalFunc (CFunc ("Integer","aux") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (1,"low"),CPVar (2,"past")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"past"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"low"))) (CLit (CIntc 1))))) (CVar (1,"low"))) (CLetDecl [CLocalPat (CPVar (3,"cand")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"past"))) (CVar (1,"low")))) (CLit (CIntc 2))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"cand"))) (CVar (3,"cand")))) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (1,"low"))) (CVar (3,"cand")))) (CApply (CApply (CSymbol ("Integer","aux")) (CVar (3,"cand"))) (CVar (2,"past"))))))] []]))]]),
+  CFunc ("Integer","max") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CVar (1,"m")))) (CVar (1,"m"))) (CVar (0,"n")))] []]),
+  CFunc ("Integer","max3") 3 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m"),CPVar (2,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","max")) (CVar (0,"n"))) (CApply (CApply (CSymbol ("Prelude","max")) (CVar (1,"m"))) (CVar (2,"p"))))] []]),
+  CFunc ("Integer","maxlist") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"n"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"n"),CPComb ("Prelude",":") [CPVar (2,"m"),CPVar (3,"ns")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","max")) (CVar (1,"n"))) (CApply (CSymbol ("Integer","maxlist")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"m"))) (CVar (3,"ns")))))] []]),
+  CFunc ("Integer","min") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"n"))) (CVar (1,"m")))) (CVar (0,"n"))) (CVar (1,"m")))] []]),
+  CFunc ("Integer","min3") 3 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m"),CPVar (2,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","min")) (CVar (0,"n"))) (CApply (CApply (CSymbol ("Prelude","min")) (CVar (1,"m"))) (CVar (2,"p"))))] []]),
+  CFunc ("Integer","minlist") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"n"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"n"),CPComb ("Prelude",":") [CPVar (2,"m"),CPVar (3,"ns")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","min")) (CVar (1,"n"))) (CApply (CSymbol ("Integer","minlist")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"m"))) (CVar (3,"ns")))))] []]),
+  CFunc ("Integer","odd") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"n"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))] []]),
+  CFunc ("Integer","pow") 2 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"a"),CPVar (1,"b")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (1,"b"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Integer","powaux")) (CLit (CIntc 1))) (CVar (0,"a"))) (CVar (1,"b")))] [CLocalFunc (CFunc ("Integer","powaux") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"n"),CPVar (3,"x"),CPVar (4,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"y"))) (CLit (CIntc 0)))) (CVar (2,"n"))) (CApply (CApply (CApply (CSymbol ("Integer","powaux")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (2,"n"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (4,"y"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (3,"x"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"x"))) (CVar (3,"x")))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (4,"y"))) (CLit (CIntc 2)))))] []]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Interactive.acy b/src/lib/Curry/Module/.curry/Interactive.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Interactive.acy
@@ -0,0 +1,7 @@
+CurryProg "Interactive"
+ ["Prelude"]
+ []
+ [CFunc ("Interactive","interactiveSols") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]"))))))))))))))))))))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CSymbol ("Interactive","printTerm")) (CVar (0,"x"))),CSExpr (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '?'))) (CSymbol ("Prelude","[]")))))))),CSPat (CPVar (2,"line")) (CSymbol ("Prelude","getLine")),CSExpr (CCase (CVar (2,"line")) [CBranch (CPComb ("Prelude",":") [CPLit (CCharc 'n'),CPVar (3,"_")]) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()"))),CBranch (CPComb ("Prelude",":") [CPLit (CCharc 'N'),CPVar (4,"_")]) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()"))),CBranch (CPVar (5,"_")) (CApply (CSymbol ("Interactive","interactiveSols")) (CVar (1,"xs")))])])] []]),
+  CFunc ("Interactive","printIO") 1 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"act")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CVar (0,"act"))) (CLambda [CPVar (1,"x")] (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putStr")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Interactive","printTerm"))) (CVar (1,"x"))))))] []]),
+  CFunc ("Interactive","printTerm") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "printTerm")]
+ []
diff --git a/src/lib/Curry/Module/.curry/Interactive.cy b/src/lib/Curry/Module/.curry/Interactive.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Interactive.cy
@@ -0,0 +1,10 @@
+Module "Interactive"
+Nothing
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(TypeSig (3,1) [(Ident "interactiveSols" 0)] (ArrowType (ListType (VariableType (Ident "_" 0))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (4,1) (Ident "interactiveSols" 0) [(Equation (4,1) (FunLhs (Ident "interactiveSols" 0) [(ListPattern [])]) (SimpleRhs (4,22) (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Literal (String "No more Solutions"))) [])),(Equation (5,1) (FunLhs (Ident "interactiveSols" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 4)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 4))))]) (SimpleRhs (5,26) (Do [(StmtExpr (Apply (Variable (QualIdent (Just "Interactive") (Ident "printTerm" 0))) (Variable (QualIdent Nothing (Ident "x" 4))))),(StmtExpr (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Literal (String "More?")))),(StmtBind (VariablePattern (Ident "line" 6)) (Variable (QualIdent (Just "Prelude") (Ident "getLine" 0))))] (Case (Variable (QualIdent Nothing (Ident "line" 6))) [(Alt (10,4) (InfixPattern (LiteralPattern (Char 'n')) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 8))) (SimpleRhs (10,13) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [])) [])),(Alt (11,4) (InfixPattern (LiteralPattern (Char 'N')) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 11))) (SimpleRhs (11,13) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [])) [])),(Alt (12,4) (VariablePattern (Ident "_" 14)) (SimpleRhs (12,9) (Apply (Variable (QualIdent (Just "Interactive") (Ident "interactiveSols" 0))) (Variable (QualIdent Nothing (Ident "xs" 4)))) []))])) []))])
+,(TypeSig (14,1) [(Ident "printIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (15,1) (Ident "printIO" 0) [(Equation (15,1) (FunLhs (Ident "printIO" 0) [(VariablePattern (Ident "act" 16))]) (SimpleRhs (15,15) (InfixApply (Variable (QualIdent Nothing (Ident "act" 16))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "x" 18))] (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Literal (String "IO: "))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Interactive") (Ident "printTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Variable (QualIdent Nothing (Ident "x" 18)))))))) []))])
+,(TypeSig (17,1) [(Ident "printTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (18,1) [(Ident "printTerm" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/Interactive.efc b/src/lib/Curry/Module/.curry/Interactive.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Interactive.efc
@@ -0,0 +1,1 @@
+Prog "Interactive" ["Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","interactiveSols")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStrLn")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'N'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","printTerm")) [Var ((Just (TVar 0),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStrLn")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '?'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","getLine")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Interactive","interactiveSols._#lambda2")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 5]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Interactive","interactiveSols._#lambda2")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 5]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 5]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3)),Lit (Charc  'n')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","()") []),"Prelude","()")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3)),Lit (Charc  'N')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","()") []),"Prelude","()")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 5]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","interactiveSols")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 5]),1))])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 5]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","interactiveSols")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 5]),1))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","printIO")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","printIO._#lambda4")) []])),Func ((Nothing,Just (FuncType (TVar 25) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","printIO._#lambda4")) 1 Private (FuncType (TVar 25) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TVar 25),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'I'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 25) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TVar 25) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 25) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","printTerm")) [],Var ((Just (TVar 25),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Interactive","printTerm")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "Interactive.printTerm")] []
diff --git a/src/lib/Curry/Module/.curry/Interactive.fcy b/src/lib/Curry/Module/.curry/Interactive.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Interactive.fcy
@@ -0,0 +1,1 @@
+Prog "Interactive" ["Prelude"] [] [Func ("Interactive","interactiveSols") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),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  's'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]),Branch (Pattern ("Prelude",":") [2,3]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Interactive","printTerm") [Var 2],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  '?'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","getLine") [],Comb (FuncPartCall 1) ("Interactive","interactiveSols._#lambda2") [Var 3]]]])])),Func ("Interactive","interactiveSols._#lambda2") 2 Private (FuncType (TCons ("Prelude","[]") [TVar 5]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Lit (Charc  'n')]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","()") []]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Lit (Charc  'N')]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","()") []]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Interactive","interactiveSols") [Var 1])])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Interactive","interactiveSols") [Var 1])])),Func ("Interactive","printIO") 1 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Var 1,Comb (FuncPartCall 1) ("Interactive","printIO._#lambda4") []])),Func ("Interactive","printIO._#lambda4") 1 Private (FuncType (TVar 25) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStr") [Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("Interactive","printTerm") [],Var 1]])),Func ("Interactive","printTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "Interactive.printTerm")] []
diff --git a/src/lib/Curry/Module/.curry/Interactive.fint b/src/lib/Curry/Module/.curry/Interactive.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Interactive.fint
@@ -0,0 +1,1 @@
+Prog "Interactive" ["Prelude"] [] [Func ("Interactive","interactiveSols") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Interactive","printIO") 1 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Interactive","printTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "Interactive.printTerm")] []
diff --git a/src/lib/Curry/Module/.curry/Interactive.uacy b/src/lib/Curry/Module/.curry/Interactive.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Interactive.uacy
@@ -0,0 +1,7 @@
+CurryProg "Interactive"
+ ["Prelude"]
+ []
+ [CFunc ("Interactive","interactiveSols") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"_")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]"))))))))))))))))))))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CSymbol ("Interactive","printTerm")) (CVar (0,"x"))),CSExpr (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '?'))) (CSymbol ("Prelude","[]")))))))),CSPat (CPVar (2,"line")) (CSymbol ("Prelude","getLine")),CSExpr (CCase (CVar (2,"line")) [CBranch (CPComb ("Prelude",":") [CPLit (CCharc 'n'),CPVar (3,"_")]) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()"))),CBranch (CPComb ("Prelude",":") [CPLit (CCharc 'N'),CPVar (4,"_")]) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()"))),CBranch (CPVar (5,"_")) (CApply (CSymbol ("Interactive","interactiveSols")) (CVar (1,"xs")))])])] []]),
+  CFunc ("Interactive","printIO") 1 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"act")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CVar (0,"act"))) (CLambda [CPVar (1,"x")] (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putStr")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Interactive","printTerm"))) (CVar (1,"x"))))))] []]),
+  CFunc ("Interactive","printTerm") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "printTerm")]
+ []
diff --git a/src/lib/Curry/Module/.curry/List.acy b/src/lib/Curry/Module/.curry/List.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/List.acy
@@ -0,0 +1,25 @@
+CurryProg "List"
+ ["Prelude","Maybe"]
+ []
+ [CFunc ("List","\\\\") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CApply (CSymbol ("Prelude","flip")) (CSymbol ("List","delete")))) (CVar (0,"xs"))) (CVar (1,"ys")))] []]),
+  CFunc ("List","delete") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"x"),CPComb ("Prelude",":") [CPVar (2,"y"),CPVar (3,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"x"))) (CVar (2,"y")))) (CVar (3,"ys"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"y"))) (CApply (CApply (CSymbol ("List","delete")) (CVar (1,"x"))) (CVar (3,"ys")))))] []]),
+  CFunc ("List","elemIndex") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","findIndex")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]),
+  CFunc ("List","elemIndices") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","findIndices")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]),
+  CFunc ("List","find") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","listToMaybe"))) (CApply (CSymbol ("Prelude","filter")) (CVar (0,"p"))))] []]),
+  CFunc ("List","findIndex") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","listToMaybe"))) (CApply (CSymbol ("List","findIndices")) (CVar (0,"p"))))] []]),
+  CFunc ("List","findIndices") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CListComp (CVar (3,"i")) [CSPat (CPComb ("Prelude","(,)") [CPVar (2,"x"),CPVar (3,"i")]) (CApply (CApply (CSymbol ("Prelude","zip")) (CVar (1,"xs"))) (CApply (CSymbol ("Prelude","enumFrom")) (CLit (CIntc 0)))),CSExpr (CApply (CVar (0,"p")) (CVar (2,"x")))])] []]),
+  CFunc ("List","group") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","groupBy")) (CSymbol ("Prelude","==")))] []]),
+  CFunc ("List","groupBy") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"eq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (4,"ys")))) (CApply (CApply (CSymbol ("List","groupBy")) (CVar (1,"eq"))) (CVar (5,"zs"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ys"),CPVar (5,"zs")]) (CApply (CApply (CSymbol ("Prelude","span")) (CApply (CVar (1,"eq")) (CVar (2,"x")))) (CVar (3,"xs"))) []]]),
+  CFunc ("List","insertBy") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"x"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (2,"le"),CPVar (3,"x"),CPComb ("Prelude",":") [CPVar (4,"y"),CPVar (5,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (3,"x"))) (CVar (4,"y")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CVar (5,"ys"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CApply (CApply (CApply (CSymbol ("List","insertBy")) (CVar (2,"le"))) (CVar (3,"x"))) (CVar (5,"ys")))))] []]),
+  CFunc ("List","intersect") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (1,"x"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("List","intersect")) (CVar (2,"xs"))) (CVar (3,"ys"))))) (CApply (CApply (CSymbol ("List","intersect")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []]),
+  CFunc ("List","intersperse") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (3,"sep"),CPComb ("Prelude",":") [CPVar (4,"x1"),CPComb ("Prelude",":") [CPVar (5,"x2"),CPVar (6,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x1"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"sep"))) (CApply (CApply (CSymbol ("List","intersperse")) (CVar (3,"sep"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x2"))) (CVar (6,"xs"))))))] []]),
+  CFunc ("List","isPrefixOf") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude",":") [CPVar (5,"y"),CPVar (6,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x"))) (CVar (5,"y")))) (CApply (CApply (CSymbol ("List","isPrefixOf")) (CVar (4,"xs"))) (CVar (6,"ys"))))] []]),
+  CFunc ("List","last") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","last")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))] []]),
+  CFunc ("List","nub") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("List","nubBy")) (CSymbol ("Prelude","=="))) (CVar (0,"xs")))] []]),
+  CFunc ("List","nubBy") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"eq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("List","nubBy")) (CVar (1,"eq"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CLambda [CPVar (4,"y")] (CApply (CSymbol ("Prelude","not")) (CApply (CApply (CVar (1,"eq")) (CVar (2,"x"))) (CVar (4,"y")))))) (CVar (3,"xs")))))] []]),
+  CFunc ("List","partition") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("List","select"))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))) (CVar (1,"xs")))] [CLocalFunc (CFunc ("List","select") 2 Private (CFuncType (CTVar (1,"_146")) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"_146")],CTCons ("Prelude","[]") [CTVar (1,"_146")]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"_146")],CTCons ("Prelude","[]") [CTVar (1,"_146")]]))) (CRules CFlex [CRule [CPVar (2,"x"),CPComb ("Prelude","(,)") [CPVar (3,"ts"),CPVar (4,"fs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (0,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"ts")))) (CVar (4,"fs")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"ts"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (4,"fs")))))] []]))]]),
+  CFunc ("List","replace") 3 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (2,"x"),CPVar (3,"p"),CPComb ("Prelude",":") [CPVar (4,"y"),CPVar (5,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"p"))) (CLit (CIntc 0)),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (5,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CApply (CApply (CApply (CSymbol ("List","replace")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"p"))) (CLit (CIntc 1)))) (CVar (5,"ys"))))] []]),
+  CFunc ("List","sortBy") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CApply (CSymbol ("List","insertBy")) (CVar (0,"le")))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("List","transpose") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","[]") [],CPVar (0,"xss")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","transpose")) (CVar (0,"xss")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"xss")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","head"))) (CVar (3,"xss"))))) (CApply (CSymbol ("List","transpose")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"xs"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","tail"))) (CVar (3,"xss"))))))] []]),
+  CFunc ("List","union") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (1,"x"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("List","union")) (CVar (2,"xs"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("List","union")) (CVar (2,"xs"))) (CVar (3,"ys")))))] []])]
+ [COp ("List","\\\\") CInfixOp 5]
diff --git a/src/lib/Curry/Module/.curry/List.cy b/src/lib/Curry/Module/.curry/List.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/List.cy
@@ -0,0 +1,48 @@
+Module "List"
+(Just (Exporting (8,12) [(Export (QualIdent Nothing (Ident "elemIndex" 0))),(Export (QualIdent Nothing (Ident "elemIndices" 0))),(Export (QualIdent Nothing (Ident "find" 0))),(Export (QualIdent Nothing (Ident "findIndex" 0))),(Export (QualIdent Nothing (Ident "findIndices" 0))),(Export (QualIdent Nothing (Ident "nub" 0))),(Export (QualIdent Nothing (Ident "nubBy" 0))),(Export (QualIdent Nothing (Ident "delete" 0))),(Export (QualIdent Nothing (Ident "\\\\" 0))),(Export (QualIdent Nothing (Ident "union" 0))),(Export (QualIdent Nothing (Ident "intersect" 0))),(Export (QualIdent Nothing (Ident "intersperse" 0))),(Export (QualIdent Nothing (Ident "transpose" 0))),(Export (QualIdent Nothing (Ident "partition" 0))),(Export (QualIdent Nothing (Ident "group" 0))),(Export (QualIdent Nothing (Ident "groupBy" 0))),(Export (QualIdent Nothing (Ident "replace" 0))),(Export (QualIdent Nothing (Ident "isPrefixOf" 0))),(Export (QualIdent Nothing (Ident "sortBy" 0))),(Export (QualIdent Nothing (Ident "insertBy" 0))),(Export (QualIdent Nothing (Ident "last" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (13,1) "Maybe" False Nothing (Just (Importing (13,13) [(Import (Ident "listToMaybe" 0))])))
+,(InfixDecl (15,1) Infix 5 [(Ident "\\\\" 0)])
+,(TypeSig (19,1) [(Ident "elemIndex" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))))
+,(FunctionDecl (20,1) (Ident "elemIndex" 0) [(Equation (20,1) (FunLhs (Ident "elemIndex" 0) [(VariablePattern (Ident "x" 2))]) (SimpleRhs (20,28) (Apply (Variable (QualIdent (Just "List") (Ident "findIndex" 0))) (LeftSection (Variable (QualIdent Nothing (Ident "x" 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))))) []))])
+,(TypeSig (23,1) [(Ident "elemIndices" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))))
+,(FunctionDecl (24,1) (Ident "elemIndices" 0) [(Equation (24,1) (FunLhs (Ident "elemIndices" 0) [(VariablePattern (Ident "x" 4))]) (SimpleRhs (24,28) (Apply (Variable (QualIdent (Just "List") (Ident "findIndices" 0))) (LeftSection (Variable (QualIdent Nothing (Ident "x" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))))) []))])
+,(TypeSig (28,1) [(Ident "find" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (29,1) (Ident "find" 0) [(Equation (29,1) (FunLhs (Ident "find" 0) [(VariablePattern (Ident "p" 6))]) (SimpleRhs (29,28) (InfixApply (Variable (QualIdent (Just "Maybe") (Ident "listToMaybe" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Variable (QualIdent Nothing (Ident "p" 6))))) []))])
+,(TypeSig (33,1) [(Ident "findIndex" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))))
+,(FunctionDecl (34,1) (Ident "findIndex" 0) [(Equation (34,1) (FunLhs (Ident "findIndex" 0) [(VariablePattern (Ident "p" 8))]) (SimpleRhs (34,28) (InfixApply (Variable (QualIdent (Just "Maybe") (Ident "listToMaybe" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "List") (Ident "findIndices" 0))) (Variable (QualIdent Nothing (Ident "p" 8))))) []))])
+,(TypeSig (37,1) [(Ident "findIndices" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))))
+,(FunctionDecl (38,1) (Ident "findIndices" 0) [(Equation (38,1) (FunLhs (Ident "findIndices" 0) [(VariablePattern (Ident "p" 10)),(VariablePattern (Ident "xs" 10))]) (SimpleRhs (38,28) (ListCompr (Variable (QualIdent Nothing (Ident "i" 13))) [(StmtBind (TuplePattern [(VariablePattern (Ident "x" 13)),(VariablePattern (Ident "i" 13))]) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "zip" 0))) (Variable (QualIdent Nothing (Ident "xs" 10)))) (EnumFrom (Literal (Int (Ident "_" 12) 0))))),(StmtExpr (Apply (Variable (QualIdent Nothing (Ident "p" 10))) (Variable (QualIdent Nothing (Ident "x" 13)))))]) []))])
+,(TypeSig (42,1) [(Ident "nub" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (43,1) (Ident "nub" 0) [(Equation (43,1) (FunLhs (Ident "nub" 0) [(VariablePattern (Ident "xs" 14))]) (SimpleRhs (43,26) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "nubBy" 0))) (Variable (QualIdent (Just "Prelude") (Ident "==" 0)))) (Variable (QualIdent Nothing (Ident "xs" 14)))) []))])
+,(TypeSig (47,1) [(Ident "nubBy" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (48,1) (Ident "nubBy" 0) [(Equation (48,1) (FunLhs (Ident "nubBy" 0) [(VariablePattern (Ident "_" 17)),(ListPattern [])]) (SimpleRhs (48,26) (List []) [])),(Equation (49,1) (FunLhs (Ident "nubBy" 0) [(VariablePattern (Ident "eq" 19)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 19)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 19))))]) (SimpleRhs (49,26) (InfixApply (Variable (QualIdent Nothing (Ident "x" 19))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "nubBy" 0))) (Variable (QualIdent Nothing (Ident "eq" 19)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (Lambda [(VariablePattern (Ident "y" 21))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "eq" 19))) (Variable (QualIdent Nothing (Ident "x" 19)))) (Variable (QualIdent Nothing (Ident "y" 21))))))))) (Variable (QualIdent Nothing (Ident "xs" 19))))))) []))])
+,(TypeSig (52,1) [(Ident "delete" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (53,1) (Ident "delete" 0) [(Equation (53,1) (FunLhs (Ident "delete" 0) [(VariablePattern (Ident "_" 23)),(ListPattern [])]) (SimpleRhs (53,26) (List []) [])),(Equation (54,1) (FunLhs (Ident "delete" 0) [(VariablePattern (Ident "x" 25)),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 25)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 25))))]) (SimpleRhs (54,26) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "x" 25))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "y" 25)))) (Variable (QualIdent Nothing (Ident "ys" 25))) (InfixApply (Variable (QualIdent Nothing (Ident "y" 25))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "delete" 0))) (Variable (QualIdent Nothing (Ident "x" 25)))) (Variable (QualIdent Nothing (Ident "ys" 25)))))) []))])
+,(TypeSig (61,1) [(Ident "\\\\" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (62,1) (Ident "\\\\" 0) [(Equation (62,1) (OpLhs (VariablePattern (Ident "xs" 27)) (Ident "\\\\" 0) (VariablePattern (Ident "ys" 27))) (SimpleRhs (62,12) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldl" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "flip" 0))) (Variable (QualIdent (Just "List") (Ident "delete" 0)))))) (Variable (QualIdent Nothing (Ident "xs" 27)))) (Variable (QualIdent Nothing (Ident "ys" 27)))) []))])
+,(TypeSig (65,1) [(Ident "union" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (66,1) (Ident "union" 0) [(Equation (66,1) (FunLhs (Ident "union" 0) [(ListPattern []),(VariablePattern (Ident "ys" 29))]) (SimpleRhs (66,26) (Variable (QualIdent Nothing (Ident "ys" 29))) [])),(Equation (67,1) (FunLhs (Ident "union" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 31)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 31)))),(VariablePattern (Ident "ys" 31))]) (SimpleRhs (67,26) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "x" 31))) (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (Variable (QualIdent Nothing (Ident "ys" 31)))) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "union" 0))) (Variable (QualIdent Nothing (Ident "xs" 31)))) (Variable (QualIdent Nothing (Ident "ys" 31)))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 31))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "union" 0))) (Variable (QualIdent Nothing (Ident "xs" 31)))) (Variable (QualIdent Nothing (Ident "ys" 31)))))) []))])
+,(TypeSig (71,1) [(Ident "intersect" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (72,1) (Ident "intersect" 0) [(Equation (72,1) (FunLhs (Ident "intersect" 0) [(ListPattern []),(VariablePattern (Ident "_" 34))]) (SimpleRhs (72,26) (List []) [])),(Equation (73,1) (FunLhs (Ident "intersect" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 36)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 36)))),(VariablePattern (Ident "ys" 36))]) (SimpleRhs (73,26) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "x" 36))) (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (Variable (QualIdent Nothing (Ident "ys" 36)))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 36))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "intersect" 0))) (Variable (QualIdent Nothing (Ident "xs" 36)))) (Variable (QualIdent Nothing (Ident "ys" 36))))) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "intersect" 0))) (Variable (QualIdent Nothing (Ident "xs" 36)))) (Variable (QualIdent Nothing (Ident "ys" 36))))) []))])
+,(TypeSig (79,1) [(Ident "intersperse" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (80,1) (Ident "intersperse" 0) [(Equation (80,1) (FunLhs (Ident "intersperse" 0) [(VariablePattern (Ident "_" 39)),(ListPattern [])]) (SimpleRhs (80,30) (List []) [])),(Equation (81,1) (FunLhs (Ident "intersperse" 0) [(VariablePattern (Ident "_" 42)),(ListPattern [(VariablePattern (Ident "x" 41))])]) (SimpleRhs (81,30) (List [(Variable (QualIdent Nothing (Ident "x" 41)))]) [])),(Equation (82,1) (FunLhs (Ident "intersperse" 0) [(VariablePattern (Ident "sep" 44)),(ParenPattern (InfixPattern (VariablePattern (Ident "x1" 44)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "x2" 44)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 44)))))]) (SimpleRhs (82,30) (InfixApply (Variable (QualIdent Nothing (Ident "x1" 44))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "sep" 44))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "intersperse" 0))) (Variable (QualIdent Nothing (Ident "sep" 44)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x2" 44))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 44)))))))) []))])
+,(TypeSig (87,1) [(Ident "transpose" 0)] (ArrowType (ListType (ListType (VariableType (Ident "a" 0)))) (ListType (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (88,1) (Ident "transpose" 0) [(Equation (88,1) (FunLhs (Ident "transpose" 0) [(ListPattern [])]) (SimpleRhs (88,28) (List []) [])),(Equation (89,1) (FunLhs (Ident "transpose" 0) [(ParenPattern (InfixPattern (ListPattern []) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xss" 48))))]) (SimpleRhs (89,28) (Apply (Variable (QualIdent (Just "List") (Ident "transpose" 0))) (Variable (QualIdent Nothing (Ident "xss" 48)))) [])),(Equation (90,1) (FunLhs (Ident "transpose" 0) [(ParenPattern (InfixPattern (ParenPattern (InfixPattern (VariablePattern (Ident "x" 50)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 50)))) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xss" 50))))]) (SimpleRhs (90,28) (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 50))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "head" 0)))) (Variable (QualIdent Nothing (Ident "xss" 50)))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "List") (Ident "transpose" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "xs" 50))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "tail" 0)))) (Variable (QualIdent Nothing (Ident "xss" 50)))))))) []))])
+,(TypeSig (97,1) [(Ident "partition" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (TupleType [(ListType (VariableType (Ident "a" 0))),(ListType (VariableType (Ident "a" 0)))]))))
+,(FunctionDecl (98,1) (Ident "partition" 0) [(Equation (98,1) (FunLhs (Ident "partition" 0) [(VariablePattern (Ident "p" 52)),(VariablePattern (Ident "xs" 52))]) (SimpleRhs (98,19) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent Nothing (Ident "select" 53)))) (Tuple [(List []),(List [])])) (Variable (QualIdent Nothing (Ident "xs" 52)))) [(FunctionDecl (99,14) (Ident "select" 53) [(Equation (99,14) (FunLhs (Ident "select" 53) [(VariablePattern (Ident "x" 54)),(TuplePattern [(VariablePattern (Ident "ts" 54)),(VariablePattern (Ident "fs" 54))])]) (SimpleRhs (99,33) (IfThenElse (Apply (Variable (QualIdent Nothing (Ident "p" 52))) (Variable (QualIdent Nothing (Ident "x" 54)))) (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "x" 54))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ts" 54)))),(Variable (QualIdent Nothing (Ident "fs" 54)))]) (Tuple [(Variable (QualIdent Nothing (Ident "ts" 54))),(InfixApply (Variable (QualIdent Nothing (Ident "x" 54))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "fs" 54))))])) []))])]))])
+,(TypeSig (106,1) [(Ident "group" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (107,1) (Ident "group" 0) [(Equation (107,1) (FunLhs (Ident "group" 0) []) (SimpleRhs (107,9) (Apply (Variable (QualIdent (Just "List") (Ident "groupBy" 0))) (Variable (QualIdent (Just "Prelude") (Ident "==" 0)))) []))])
+,(TypeSig (114,1) [(Ident "groupBy" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (ListType (VariableType (Ident "a" 0)))))))
+,(FunctionDecl (115,1) (Ident "groupBy" 0) [(Equation (115,1) (FunLhs (Ident "groupBy" 0) [(VariablePattern (Ident "_" 59)),(ListPattern [])]) (SimpleRhs (115,21) (List []) [])),(Equation (116,1) (FunLhs (Ident "groupBy" 0) [(VariablePattern (Ident "eq" 61)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 61)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 61))))]) (SimpleRhs (116,21) (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 61))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 62))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "List") (Ident "groupBy" 0))) (Variable (QualIdent Nothing (Ident "eq" 61)))) (Variable (QualIdent Nothing (Ident "zs" 62))))) [(PatternDecl (117,27) (TuplePattern [(VariablePattern (Ident "ys" 62)),(VariablePattern (Ident "zs" 62))]) (SimpleRhs (117,37) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "span" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "eq" 61))) (Variable (QualIdent Nothing (Ident "x" 61)))))) (Variable (QualIdent Nothing (Ident "xs" 61)))) []))]))])
+,(TypeSig (124,1) [(Ident "replace" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))))
+,(FunctionDecl (125,1) (Ident "replace" 0) [(Equation (125,1) (FunLhs (Ident "replace" 0) [(VariablePattern (Ident "_" 65)),(VariablePattern (Ident "_" 66)),(ListPattern [])]) (SimpleRhs (125,18) (List []) [])),(Equation (126,1) (FunLhs (Ident "replace" 0) [(VariablePattern (Ident "x" 68)),(VariablePattern (Ident "p" 68)),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 68)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 68))))]) (GuardedRhs [(CondExpr (126,20) (InfixApply (Variable (QualIdent Nothing (Ident "p" 68))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 70) 0))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 68))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 68))))),(CondExpr (127,20) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "y" 68))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "List") (Ident "replace" 0))) (Variable (QualIdent Nothing (Ident "x" 68)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 68))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 71) 1))))) (Variable (QualIdent Nothing (Ident "ys" 68)))))))] []))])
+,(TypeSig (133,1) [(Ident "isPrefixOf" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (134,1) (Ident "isPrefixOf" 0) [(Equation (134,1) (FunLhs (Ident "isPrefixOf" 0) [(ListPattern []),(VariablePattern (Ident "_" 73))]) (SimpleRhs (134,19) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (135,1) (FunLhs (Ident "isPrefixOf" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 76)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 77)))),(ListPattern [])]) (SimpleRhs (135,23) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (136,1) (FunLhs (Ident "isPrefixOf" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 79)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 79)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 79)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 79))))]) (SimpleRhs (136,28) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "x" 79))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "y" 79)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "List") (Ident "isPrefixOf" 0))) (Variable (QualIdent Nothing (Ident "xs" 79)))) (Variable (QualIdent Nothing (Ident "ys" 79)))))) []))])
+,(TypeSig (139,1) [(Ident "sortBy" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (140,1) (Ident "sortBy" 0) [(Equation (140,1) (FunLhs (Ident "sortBy" 0) [(VariablePattern (Ident "le" 81))]) (SimpleRhs (140,13) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Paren (Apply (Variable (QualIdent (Just "List") (Ident "insertBy" 0))) (Variable (QualIdent Nothing (Ident "le" 81)))))) (List [])) []))])
+,(TypeSig (147,1) [(Ident "insertBy" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))))
+,(FunctionDecl (148,1) (Ident "insertBy" 0) [(Equation (148,1) (FunLhs (Ident "insertBy" 0) [(VariablePattern (Ident "_" 84)),(VariablePattern (Ident "x" 83)),(ListPattern [])]) (SimpleRhs (148,23) (List [(Variable (QualIdent Nothing (Ident "x" 83)))]) [])),(Equation (149,1) (FunLhs (Ident "insertBy" 0) [(VariablePattern (Ident "le" 86)),(VariablePattern (Ident "x" 86)),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 86)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 86))))]) (SimpleRhs (149,24) (IfThenElse (Apply (Apply (Variable (QualIdent Nothing (Ident "le" 86))) (Variable (QualIdent Nothing (Ident "x" 86)))) (Variable (QualIdent Nothing (Ident "y" 86)))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 86))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "y" 86))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 86))))) (InfixApply (Variable (QualIdent Nothing (Ident "y" 86))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "List") (Ident "insertBy" 0))) (Variable (QualIdent Nothing (Ident "le" 86)))) (Variable (QualIdent Nothing (Ident "x" 86)))) (Variable (QualIdent Nothing (Ident "ys" 86)))))) []))])
+,(TypeSig (154,1) [(Ident "last" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (VariableType (Ident "a" 0))))
+,(FunctionDecl (155,1) (Ident "last" 0) [(Equation (155,1) (FunLhs (Ident "last" 0) [(ListPattern [(VariablePattern (Ident "x" 88))])]) (SimpleRhs (155,12) (Variable (QualIdent Nothing (Ident "x" 88))) [])),(Equation (156,1) (FunLhs (Ident "last" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 91)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "x" 90)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 90)))))]) (SimpleRhs (156,17) (Apply (Variable (QualIdent (Just "List") (Ident "last" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 90))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 90)))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/List.efc b/src/lib/Curry/Module/.curry/List.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/List.efc
@@ -0,0 +1,1 @@
+Prog "List" ["Maybe","Prelude"] [] [Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"List","elemIndex")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"List","findIndex")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"List","elemIndices")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TVar 0),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"List","findIndices")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))),"List","find")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Maybe","listToMaybe")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","filter")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"List","findIndex")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Maybe","listToMaybe")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"List","findIndices")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"List","findIndices")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"List","findIndices._#lambda4")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude","zip")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","enumFrom")) [Lit (Intc  0)]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"List","findIndices._#lambda4")) 3 Private (FuncType (FuncType (TVar 7) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 7,TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])))) (Rule [(Just (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 7) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 7,TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 7),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","++")) [Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 7) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 7),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) [])],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"List","nub")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","nubBy")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","nubBy")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","nubBy")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","filter")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"List","nubBy._#lambda6")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 45) (FuncType (TVar 45) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 45) (FuncType (TVar 45) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"List","nubBy._#lambda6")) 3 Private (FuncType (FuncType (TVar 45) (FuncType (TVar 45) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 45) (FuncType (TVar 45) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (FuncType (TVar 45) (FuncType (TVar 45) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TVar 45),2),(Just (TVar 45),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 45) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 45) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 45) (FuncType (TVar 45) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 45) (FuncType (TVar 45) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 45) (FuncType (TVar 45) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 45),2))],Var ((Just (TVar 45),3))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","delete")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 0),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","delete")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","\\\\")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","foldl")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","delete")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","union")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [Var ((Just (TVar 0),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","union")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","union")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","intersect")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [Var ((Just (TVar 0),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","intersect")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","intersect")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","intersperse")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","intersperse")) [Var ((Just (TVar 0),1)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))]]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"List","transpose")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"List","transpose")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),3))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"Prelude","head")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),3))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"List","transpose")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","tail")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),3))]]]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"List","partition")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])))),"List","partition.select.53")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1))],Comb ConsCall ((Nothing,Just (FuncType (TVar 151) (FuncType (TVar 152) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 151),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 152),"Prelude","[]")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 146) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 146) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 146],TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 146],TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]])))),"List","partition.select.53")) 3 Private (FuncType (FuncType (TVar 146) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TVar 146) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 146],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 146]]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 146],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 146]])))) (Rule [(Just (FuncType (TVar 146) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TVar 146),2),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 146],TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 146],TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 146],TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]),5)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 146) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 146) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 146) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 146),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 146],TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 146) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]))),"Prelude",":")) [Var ((Just (TVar 146),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 146],TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]]))),"Prelude","(,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]),4)),Comb ConsCall ((Nothing,Just (FuncType (TVar 146) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]))),"Prelude",":")) [Var ((Just (TVar 146),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 146]),5))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"List","group")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"List","groupBy")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"List","groupBy")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Let [((Just (TVar 159),5),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 163) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 163]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 163],TCons (Nothing,Nothing,"Prelude","[]") [TVar 163]]))),"Prelude","span")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 161) (TVar 162)) (FuncType (TVar 161) (TVar 162))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 164],TCons (Nothing,Nothing,"Prelude","[]") [TVar 164]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 164])),"List","groupBy._#selFP3#ys")) [Var ((Just (TVar 159),5))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 165],TCons (Nothing,Nothing,"Prelude","[]") [TVar 165]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 165])),"List","groupBy._#selFP4#zs")) [Var ((Just (TVar 159),5))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"List","groupBy")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))]]))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 154],TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 154])),"List","groupBy._#selFP3#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 154],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 154]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 154])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 154],TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 154],TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]) (FuncType (TVar 157) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 154],TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]),2),(Just (TVar 157),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 154],TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 154])),"List","groupBy._#selFP4#zs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 154],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 154]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 154])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 154],TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 154],TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 156) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 154],TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]]))),"Prelude","(,)")) [(Just (TVar 156),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 154]),3)))])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"List","replace")) 3 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"List","replace")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","failed")) [])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"List","isPrefixOf")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 0),5))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"List","isPrefixOf")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","sortBy")) 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"List","insertBy")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"List","insertBy")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),2))],Var ((Just (TVar 0),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"List","insertBy")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"List","last")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TVar 0),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"List","last")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]])])]))] [Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"List","\\\\")) InfixOp 5]
diff --git a/src/lib/Curry/Module/.curry/List.fcy b/src/lib/Curry/Module/.curry/List.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/List.fcy
@@ -0,0 +1,1 @@
+Prog "List" ["Maybe","Prelude"] [] [Func ("List","elemIndex") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","Int") []]))) (Rule [1] (Comb FuncCall ("List","findIndex") [Comb (FuncPartCall 1) ("Prelude","==") [Var 1]])),Func ("List","elemIndices") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1] (Comb (FuncPartCall 1) ("List","findIndices") [Comb (FuncPartCall 1) ("Prelude","==") [Var 1]])),Func ("List","find") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TVar 0]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Maybe","listToMaybe") [],Comb (FuncPartCall 1) ("Prelude","filter") [Var 1]])),Func ("List","findIndex") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","Int") []]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Maybe","listToMaybe") [],Comb (FuncPartCall 1) ("List","findIndices") [Var 1]])),Func ("List","findIndices") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("List","findIndices._#lambda4") [Var 1],Comb ConsCall ("Prelude","[]") [],Comb FuncCall ("Prelude","zip") [Var 2,Comb FuncCall ("Prelude","enumFrom") [Lit (Intc  0)]]])),Func ("List","findIndices._#lambda4") 3 Private (FuncType (FuncType (TVar 7) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","(,)") [TVar 7,TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (Rule [1,2,3] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude","(,)") [4,5]) (Comb FuncCall ("Prelude","++") [Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","[]") [])],Var 3])])),Func ("List","nub") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Comb FuncCall ("List","nubBy") [Comb (FuncPartCall 2) ("Prelude","==") [],Var 1])),Func ("List","nubBy") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("List","nubBy") [Var 1,Comb FuncCall ("Prelude","filter") [Comb (FuncPartCall 1) ("List","nubBy._#lambda6") [Var 1,Var 3],Var 4]]])])),Func ("List","nubBy._#lambda6") 3 Private (FuncType (FuncType (TVar 45) (FuncType (TVar 45) (TCons ("Prelude","Bool") []))) (FuncType (TVar 45) (FuncType (TVar 45) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 3]])),Func ("List","delete") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Var 3]) [Branch (Pattern ("Prelude","True") []) (Var 4),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("List","delete") [Var 1,Var 4]])])])),Func ("List","\\\\") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldl") [Comb (FuncPartCall 2) ("Prelude","flip") [Comb (FuncPartCall 2) ("List","delete") []],Var 1,Var 2])),Func ("List","union") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 3],Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("List","union") [Var 4,Var 2]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("List","union") [Var 4,Var 2]])])])),Func ("List","intersect") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 3],Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("List","intersect") [Var 4,Var 2]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("List","intersect") [Var 4,Var 2])])])),Func ("List","intersperse") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude",":") [Var 1,Comb FuncCall ("List","intersperse") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Var 6]]]])])])),Func ("List","transpose") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("List","transpose") [Var 3]),Branch (Pattern ("Prelude",":") [4,5]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","head") [],Var 3]],Comb FuncCall ("List","transpose") [Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","tail") [],Var 3]]]])])])),Func ("List","partition") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("List","partition.select.53") [Var 1],Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []],Var 2])),Func ("List","partition.select.53") 3 Private (FuncType (FuncType (TVar 146) (TCons ("Prelude","Bool") [])) (FuncType (TVar 146) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 146],TCons ("Prelude","[]") [TVar 146]]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 146],TCons ("Prelude","[]") [TVar 146]])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,)") [4,5]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 2,Var 4],Var 5]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","(,)") [Var 4,Comb ConsCall ("Prelude",":") [Var 2,Var 5]])])])),Func ("List","group") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]])) (Rule [] (Comb (FuncPartCall 1) ("List","groupBy") [Comb (FuncPartCall 2) ("Prelude","==") []])),Func ("List","groupBy") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Prelude","span") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4])] (Let [(6,Comb FuncCall ("List","groupBy._#selFP3#ys") [Var 5])] (Let [(7,Comb FuncCall ("List","groupBy._#selFP4#zs") [Var 5])] (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 3,Var 6],Comb FuncCall ("List","groupBy") [Var 1,Var 7]]))))])),Func ("List","groupBy._#selFP3#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 154],TCons ("Prelude","[]") [TVar 154]]) (TCons ("Prelude","[]") [TVar 154])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("List","groupBy._#selFP4#zs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 154],TCons ("Prelude","[]") [TVar 154]]) (TCons ("Prelude","[]") [TVar 154])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("List","replace") 3 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [4,5]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 1,Var 5]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("List","replace") [Var 1,Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  1)],Var 5]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("List","isPrefixOf") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 3,Var 5],Comb FuncCall ("List","isPrefixOf") [Var 4,Var 6]])])])),Func ("List","sortBy") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1] (Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("List","insertBy") [Var 1],Comb ConsCall ("Prelude","[]") []])),Func ("List","insertBy") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [4,5]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude",":") [Var 4,Var 5]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("List","insertBy") [Var 1,Var 2,Var 5]])])])),Func ("List","last") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("List","last") [Comb ConsCall ("Prelude",":") [Var 4,Var 5]])])]))] [Op ("List","\\\\") InfixOp 5]
diff --git a/src/lib/Curry/Module/.curry/List.fint b/src/lib/Curry/Module/.curry/List.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/List.fint
@@ -0,0 +1,1 @@
+Prog "List" ["Maybe","Prelude"] [] [Func ("List","elemIndex") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("List","elemIndices") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("List","find") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TVar 0]))) (Rule [] (Var 0)),Func ("List","findIndex") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("List","findIndices") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("List","nub") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("List","nubBy") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("List","delete") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("List","\\\\") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("List","union") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("List","intersect") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("List","intersperse") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("List","transpose") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]])) (Rule [] (Var 0)),Func ("List","partition") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [] (Var 0)),Func ("List","group") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]])) (Rule [] (Var 0)),Func ("List","groupBy") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]))) (Rule [] (Var 0)),Func ("List","replace") 3 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [] (Var 0)),Func ("List","isPrefixOf") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("List","sortBy") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("List","insertBy") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [] (Var 0)),Func ("List","last") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (Rule [] (Var 0))] [Op ("List","\\\\") InfixOp 5]
diff --git a/src/lib/Curry/Module/.curry/List.uacy b/src/lib/Curry/Module/.curry/List.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/List.uacy
@@ -0,0 +1,25 @@
+CurryProg "List"
+ ["Prelude","Maybe"]
+ []
+ [CFunc ("List","\\\\") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"xs"),CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CApply (CSymbol ("Prelude","flip")) (CSymbol ("List","delete")))) (CVar (0,"xs"))) (CVar (1,"ys")))] []]),
+  CFunc ("List","delete") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"x"),CPComb ("Prelude",":") [CPVar (2,"y"),CPVar (3,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"x"))) (CVar (2,"y")))) (CVar (3,"ys"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"y"))) (CApply (CApply (CSymbol ("List","delete")) (CVar (1,"x"))) (CVar (3,"ys")))))] []]),
+  CFunc ("List","elemIndex") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","findIndex")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]),
+  CFunc ("List","elemIndices") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","findIndices")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]),
+  CFunc ("List","find") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","listToMaybe"))) (CApply (CSymbol ("Prelude","filter")) (CVar (0,"p"))))] []]),
+  CFunc ("List","findIndex") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","listToMaybe"))) (CApply (CSymbol ("List","findIndices")) (CVar (0,"p"))))] []]),
+  CFunc ("List","findIndices") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CListComp (CVar (3,"i")) [CSPat (CPComb ("Prelude","(,)") [CPVar (2,"x"),CPVar (3,"i")]) (CApply (CApply (CSymbol ("Prelude","zip")) (CVar (1,"xs"))) (CApply (CSymbol ("Prelude","enumFrom")) (CLit (CIntc 0)))),CSExpr (CApply (CVar (0,"p")) (CVar (2,"x")))])] []]),
+  CFunc ("List","group") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","groupBy")) (CSymbol ("Prelude","==")))] []]),
+  CFunc ("List","groupBy") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"eq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (4,"ys")))) (CApply (CApply (CSymbol ("List","groupBy")) (CVar (1,"eq"))) (CVar (5,"zs"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ys"),CPVar (5,"zs")]) (CApply (CApply (CSymbol ("Prelude","span")) (CApply (CVar (1,"eq")) (CVar (2,"x")))) (CVar (3,"xs"))) []]]),
+  CFunc ("List","insertBy") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"x"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (2,"le"),CPVar (3,"x"),CPComb ("Prelude",":") [CPVar (4,"y"),CPVar (5,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (3,"x"))) (CVar (4,"y")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CVar (5,"ys"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CApply (CApply (CApply (CSymbol ("List","insertBy")) (CVar (2,"le"))) (CVar (3,"x"))) (CVar (5,"ys")))))] []]),
+  CFunc ("List","intersect") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (1,"x"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("List","intersect")) (CVar (2,"xs"))) (CVar (3,"ys"))))) (CApply (CApply (CSymbol ("List","intersect")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []]),
+  CFunc ("List","intersperse") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (3,"sep"),CPComb ("Prelude",":") [CPVar (4,"x1"),CPComb ("Prelude",":") [CPVar (5,"x2"),CPVar (6,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x1"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"sep"))) (CApply (CApply (CSymbol ("List","intersperse")) (CVar (3,"sep"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x2"))) (CVar (6,"xs"))))))] []]),
+  CFunc ("List","isPrefixOf") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude",":") [CPVar (5,"y"),CPVar (6,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x"))) (CVar (5,"y")))) (CApply (CApply (CSymbol ("List","isPrefixOf")) (CVar (4,"xs"))) (CVar (6,"ys"))))] []]),
+  CFunc ("List","last") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","last")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))] []]),
+  CFunc ("List","nub") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("List","nubBy")) (CSymbol ("Prelude","=="))) (CVar (0,"xs")))] []]),
+  CFunc ("List","nubBy") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"eq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("List","nubBy")) (CVar (1,"eq"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CLambda [CPVar (4,"y")] (CApply (CSymbol ("Prelude","not")) (CApply (CApply (CVar (1,"eq")) (CVar (2,"x"))) (CVar (4,"y")))))) (CVar (3,"xs")))))] []]),
+  CFunc ("List","partition") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("List","select"))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))) (CVar (1,"xs")))] [CLocalFunc (CFunc ("List","select") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"x"),CPComb ("Prelude","(,)") [CPVar (3,"ts"),CPVar (4,"fs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (0,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"ts")))) (CVar (4,"fs")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"ts"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (4,"fs")))))] []]))]]),
+  CFunc ("List","replace") 3 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (2,"x"),CPVar (3,"p"),CPComb ("Prelude",":") [CPVar (4,"y"),CPVar (5,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"p"))) (CLit (CIntc 0)),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (5,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"y"))) (CApply (CApply (CApply (CSymbol ("List","replace")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"p"))) (CLit (CIntc 1)))) (CVar (5,"ys"))))] []]),
+  CFunc ("List","sortBy") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CApply (CSymbol ("List","insertBy")) (CVar (0,"le")))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("List","transpose") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","[]") [],CPVar (0,"xss")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("List","transpose")) (CVar (0,"xss")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"xss")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","head"))) (CVar (3,"xss"))))) (CApply (CSymbol ("List","transpose")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"xs"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","tail"))) (CVar (3,"xss"))))))] []]),
+  CFunc ("List","union") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (1,"x"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("List","union")) (CVar (2,"xs"))) (CVar (3,"ys")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("List","union")) (CVar (2,"xs"))) (CVar (3,"ys")))))] []])]
+ [COp ("List","\\\\") CInfixOp 5]
diff --git a/src/lib/Curry/Module/.curry/Maybe.acy b/src/lib/Curry/Module/.curry/Maybe.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Maybe.acy
@@ -0,0 +1,15 @@
+CurryProg "Maybe"
+ ["Prelude"]
+ []
+ [CFunc ("Maybe",">>-") 2 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])) (CTCons ("Prelude","Maybe") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","Nothing") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("Prelude","Just") [CPVar (1,"x")],CPVar (2,"f")] [(CSymbol ("Prelude","success"),CApply (CVar (2,"f")) (CVar (1,"x")))] []]),
+  CFunc ("Maybe","catMaybes") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Maybe") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"ms")] [(CSymbol ("Prelude","success"),CListComp (CVar (1,"m")) [CSPat (CPComb ("Prelude","Just") [CPVar (1,"m")]) (CVar (0,"ms"))])] []]),
+  CFunc ("Maybe","fromJust") 1 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude","Just") [CPVar (0,"a")]] [(CSymbol ("Prelude","success"),CVar (0,"a"))] [],CRule [CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))] []]),
+  CFunc ("Maybe","fromMaybe") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"d"),CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CVar (0,"d"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude","Just") [CPVar (2,"a")]] [(CSymbol ("Prelude","success"),CVar (2,"a"))] []]),
+  CFunc ("Maybe","isJust") 1 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","Just") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Maybe","isNothing") 1 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","Just") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Maybe","listToMaybe") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"a"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CVar (0,"a")))] []]),
+  CFunc ("Maybe","mapMMaybe") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","sequenceMaybe"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Maybe","mapMaybe") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","catMaybes"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Maybe","maybeToList") 1 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Just") [CPVar (0,"a")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"a"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Maybe","sequenceMaybe") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Maybe") [CTVar (0,"a")]]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Maybe",">>-")) (CVar (0,"c"))) (CLambda [CPVar (2,"x")] (CApply (CApply (CSymbol ("Maybe",">>-")) (CApply (CSymbol ("Maybe","sequenceMaybe")) (CVar (1,"cs")))) (CLambda [CPVar (3,"xs")] (CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))))))] []])]
+ [COp ("Maybe",">>-") CInfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Maybe.cy b/src/lib/Curry/Module/.curry/Maybe.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Maybe.cy
@@ -0,0 +1,27 @@
+Module "Maybe"
+(Just (Exporting (9,13) [(Export (QualIdent Nothing (Ident "isJust" 0))),(Export (QualIdent Nothing (Ident "isNothing" 0))),(Export (QualIdent Nothing (Ident "fromJust" 0))),(Export (QualIdent Nothing (Ident "fromMaybe" 0))),(Export (QualIdent Nothing (Ident "listToMaybe" 0))),(Export (QualIdent Nothing (Ident "maybeToList" 0))),(Export (QualIdent Nothing (Ident "catMaybes" 0))),(Export (QualIdent Nothing (Ident "mapMaybe" 0))),(Export (QualIdent Nothing (Ident ">>-" 0))),(Export (QualIdent Nothing (Ident "sequenceMaybe" 0))),(Export (QualIdent Nothing (Ident "mapMMaybe" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Maybe" 0))),(Export (QualIdent Nothing (Ident "maybe" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(InfixDecl (19,1) InfixL 1 [(Ident ">>-" 0)])
+,(TypeSig (21,1) [(Ident "isJust" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (22,1) (Ident "isJust" 0) [(Equation (22,1) (FunLhs (Ident "isJust" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "_" 3))]))]) (SimpleRhs (22,19) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (23,1) (FunLhs (Ident "isJust" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) [])]) (SimpleRhs (23,19) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])
+,(TypeSig (25,1) [(Ident "isNothing" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (26,1) (Ident "isNothing" 0) [(Equation (26,1) (FunLhs (Ident "isNothing" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) [])]) (SimpleRhs (26,22) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (27,1) (FunLhs (Ident "isNothing" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "_" 10))]))]) (SimpleRhs (27,22) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])
+,(TypeSig (29,1) [(Ident "fromJust" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "a" 0))))
+,(FunctionDecl (30,1) (Ident "fromJust" 0) [(Equation (30,1) (FunLhs (Ident "fromJust" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "a" 12))]))]) (SimpleRhs (30,21) (Variable (QualIdent Nothing (Ident "a" 12))) [])),(Equation (31,1) (FunLhs (Ident "fromJust" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) [])]) (SimpleRhs (31,21) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Maybe.fromJust: Nothing"))) []))])
+,(TypeSig (33,1) [(Ident "fromMaybe" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (34,1) (Ident "fromMaybe" 0) [(Equation (34,1) (FunLhs (Ident "fromMaybe" 0) [(VariablePattern (Ident "d" 16)),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) [])]) (SimpleRhs (34,24) (Variable (QualIdent Nothing (Ident "d" 16))) [])),(Equation (35,1) (FunLhs (Ident "fromMaybe" 0) [(VariablePattern (Ident "_" 19)),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "a" 18))]))]) (SimpleRhs (35,24) (Variable (QualIdent Nothing (Ident "a" 18))) []))])
+,(TypeSig (37,1) [(Ident "maybeToList" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (38,1) (Ident "maybeToList" 0) [(Equation (38,1) (FunLhs (Ident "maybeToList" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) [])]) (SimpleRhs (38,24) (List []) [])),(Equation (39,1) (FunLhs (Ident "maybeToList" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "a" 23))]))]) (SimpleRhs (39,24) (List [(Variable (QualIdent Nothing (Ident "a" 23)))]) []))])
+,(TypeSig (41,1) [(Ident "listToMaybe" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (42,1) (Ident "listToMaybe" 0) [(Equation (42,1) (FunLhs (Ident "listToMaybe" 0) [(ListPattern [])]) (SimpleRhs (42,22) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (43,1) (FunLhs (Ident "listToMaybe" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "a" 27)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 28))))]) (SimpleRhs (43,21) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Variable (QualIdent Nothing (Ident "a" 27)))) []))])
+,(TypeSig (45,1) [(Ident "catMaybes" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))])) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (46,1) (Ident "catMaybes" 0) [(Equation (46,1) (FunLhs (Ident "catMaybes" 0) [(VariablePattern (Ident "ms" 30))]) (SimpleRhs (46,16) (ListCompr (Variable (QualIdent Nothing (Ident "m" 32))) [(StmtBind (ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "m" 32))])) (Variable (QualIdent Nothing (Ident "ms" 30))))]) []))])
+,(TypeSig (48,1) [(Ident "mapMaybe" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "b" 0))])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "b" 0))))))
+,(FunctionDecl (49,1) (Ident "mapMaybe" 0) [(Equation (49,1) (FunLhs (Ident "mapMaybe" 0) [(VariablePattern (Ident "f" 33))]) (SimpleRhs (49,14) (InfixApply (Variable (QualIdent (Just "Maybe") (Ident "catMaybes" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "f" 33))))) []))])
+,(TypeSig (58,1) [(Ident ">>-" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "b" 0))])) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (59,1) (Ident ">>-" 0) [(Equation (59,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) []) (Ident ">>-" 0) (VariablePattern (Ident "_" 36))) (SimpleRhs (59,17) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (60,1) (OpLhs (ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "x" 38))])) (Ident ">>-" 0) (VariablePattern (Ident "f" 38))) (SimpleRhs (60,19) (Apply (Variable (QualIdent Nothing (Ident "f" 38))) (Variable (QualIdent Nothing (Ident "x" 38)))) []))])
+,(TypeSig (63,1) [(Ident "sequenceMaybe" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))])) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ListType (VariableType (Ident "a" 0)))])))
+,(FunctionDecl (64,1) (Ident "sequenceMaybe" 0) [(Equation (64,1) (FunLhs (Ident "sequenceMaybe" 0) [(ListPattern [])]) (SimpleRhs (64,20) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (List [])) [])),(Equation (65,1) (FunLhs (Ident "sequenceMaybe" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 42)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 42))))]) (SimpleRhs (65,24) (InfixApply (Variable (QualIdent Nothing (Ident "c" 42))) (InfixOp (QualIdent (Just "Maybe") (Ident ">>-" 0))) (Lambda [(VariablePattern (Ident "x" 44))] (InfixApply (Apply (Variable (QualIdent (Just "Maybe") (Ident "sequenceMaybe" 0))) (Variable (QualIdent Nothing (Ident "cs" 42)))) (InfixOp (QualIdent (Just "Maybe") (Ident ">>-" 0))) (Lambda [(VariablePattern (Ident "xs" 45))] (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 44))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 45)))))))))) []))])
+,(TypeSig (68,1) [(Ident "mapMMaybe" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "b" 0))])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(ListType (VariableType (Ident "b" 0)))]))))
+,(FunctionDecl (69,1) (Ident "mapMMaybe" 0) [(Equation (69,1) (FunLhs (Ident "mapMMaybe" 0) [(VariablePattern (Ident "f" 46))]) (SimpleRhs (69,15) (InfixApply (Variable (QualIdent (Just "Maybe") (Ident "sequenceMaybe" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "f" 46))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Maybe.efc b/src/lib/Curry/Module/.curry/Maybe.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Maybe.efc
@@ -0,0 +1,1 @@
+Prog "Maybe" ["Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Maybe","isJust")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [(Just (TVar 0),2)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Maybe","isNothing")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [(Just (TVar 0),2)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TVar 0)),"Maybe","fromJust")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [(Just (TVar 0),2)]) (Var ((Just (TVar 0),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'J'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'N'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TVar 0))),"Maybe","fromMaybe")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]) (TVar 0))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) []) (Var ((Just (TVar 0),1))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [(Just (TVar 0),3)]) (Var ((Just (TVar 0),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Maybe","maybeToList")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [(Just (TVar 0),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Maybe","listToMaybe")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [Var ((Just (TVar 0),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Maybe","catMaybes")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Maybe","catMaybes._#lambda4")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 37]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]))),"Maybe","catMaybes._#lambda4")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 37]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 37]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 37]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 37]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 37]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 37) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 37])),"Prelude","Just")) [(Just (TVar 37),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 37) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]))),"Prelude",":")) [Var ((Just (TVar 37),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 37]),"Prelude","Nothing")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]),2)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Maybe","mapMaybe")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])),"Maybe","catMaybes")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]]))),"Prelude","map")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"Maybe",">>-")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1])) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1),(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [(Just (TVar 0),3)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),2)),Var ((Just (TVar 0),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"Maybe","sequenceMaybe")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Maybe",">>-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),2)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Maybe","sequenceMaybe._#lambda6")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]]),3))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 66]]) (FuncType (TVar 66) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]]))),"Maybe","sequenceMaybe._#lambda6")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 66]]) (FuncType (TVar 66) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 66]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 66]]),1),(Just (TVar 66),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]])) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]]))),"Maybe",">>-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 66]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]])),"Maybe","sequenceMaybe")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 66]]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 66) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]]))),"Maybe","sequenceMaybe._#lambda6._#lambda7")) [Var ((Just (TVar 66),2))]])),Func ((Nothing,Just (FuncType (TVar 66) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]]))),"Maybe","sequenceMaybe._#lambda6._#lambda7")) 2 Private (FuncType (TVar 66) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 66]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 66]]))) (Rule [(Just (TVar 66),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]),2)] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 66) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]))),"Prelude",":")) [Var ((Just (TVar 66),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]))),"Maybe","mapMMaybe")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])),"Maybe","sequenceMaybe")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]]))),"Prelude","map")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),1))]]))] [Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"Maybe",">>-")) InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Maybe.fcy b/src/lib/Curry/Module/.curry/Maybe.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Maybe.fcy
@@ -0,0 +1,1 @@
+Prog "Maybe" ["Prelude"] [] [Func ("Maybe","isJust") 1 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Just") [2]) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude","Nothing") []) (Comb ConsCall ("Prelude","False") [])])),Func ("Maybe","isNothing") 1 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Nothing") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude","Just") [2]) (Comb ConsCall ("Prelude","False") [])])),Func ("Maybe","fromJust") 1 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Just") [2]) (Var 2),Branch (Pattern ("Prelude","Nothing") []) (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'J'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]])])),Func ("Maybe","fromMaybe") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TVar 0))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Nothing") []) (Var 1),Branch (Pattern ("Prelude","Just") [3]) (Var 3)])),Func ("Maybe","maybeToList") 1 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Nothing") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","Just") [2]) (Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []])])),Func ("Maybe","listToMaybe") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("Prelude",":") [2,3]) (Comb ConsCall ("Prelude","Just") [Var 2])])),Func ("Maybe","catMaybes") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Maybe") [TVar 0]]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Maybe","catMaybes._#lambda4") [],Comb ConsCall ("Prelude","[]") [],Var 1])),Func ("Maybe","catMaybes._#lambda4") 2 Private (FuncType (TCons ("Prelude","Maybe") [TVar 37]) (FuncType (TCons ("Prelude","[]") [TVar 37]) (TCons ("Prelude","[]") [TVar 37]))) (Rule [1,2] (Case  Rigid (Var 1) [Branch (Pattern ("Prelude","Just") [3]) (Comb ConsCall ("Prelude",":") [Var 3,Var 2]),Branch (Pattern ("Prelude","Nothing") []) (Var 2)])),Func ("Maybe","mapMaybe") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 1]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Maybe","catMaybes") [],Comb (FuncPartCall 1) ("Prelude","map") [Var 1]])),Func ("Maybe",">>-") 2 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1])) (TCons ("Prelude","Maybe") [TVar 1]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Nothing") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("Prelude","Just") [3]) (Comb FuncCall ("Prelude","apply") [Var 2,Var 3])])),Func ("Maybe","sequenceMaybe") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Maybe") [TVar 0]]) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [2,3]) (Comb FuncCall ("Maybe",">>-") [Var 2,Comb (FuncPartCall 1) ("Maybe","sequenceMaybe._#lambda6") [Var 3]])])),Func ("Maybe","sequenceMaybe._#lambda6") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Maybe") [TVar 66]]) (FuncType (TVar 66) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TVar 66]]))) (Rule [1,2] (Comb FuncCall ("Maybe",">>-") [Comb FuncCall ("Maybe","sequenceMaybe") [Var 1],Comb (FuncPartCall 1) ("Maybe","sequenceMaybe._#lambda6._#lambda7") [Var 2]])),Func ("Maybe","sequenceMaybe._#lambda6._#lambda7") 2 Private (FuncType (TVar 66) (FuncType (TCons ("Prelude","[]") [TVar 66]) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TVar 66]]))) (Rule [1,2] (Comb ConsCall ("Prelude","Just") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("Maybe","mapMMaybe") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TVar 1]]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Maybe","sequenceMaybe") [],Comb (FuncPartCall 1) ("Prelude","map") [Var 1]]))] [Op ("Maybe",">>-") InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Maybe.fint b/src/lib/Curry/Module/.curry/Maybe.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Maybe.fint
@@ -0,0 +1,1 @@
+Prog "Maybe" ["Prelude"] [Type ("Prelude","Maybe") Public [0] [Cons ("Prelude","Nothing") 0 Public [],Cons ("Prelude","Just") 1 Public [TVar 0]]] [Func ("Prelude","maybe") 3 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 0)) (FuncType (TCons ("Prelude","Maybe") [TVar 1]) (TVar 0)))) (Rule [] (Var 0)),Func ("Maybe","isJust") 1 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Maybe","isNothing") 1 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Maybe","fromJust") 1 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TVar 0)) (Rule [] (Var 0)),Func ("Maybe","fromMaybe") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TVar 0))) (Rule [] (Var 0)),Func ("Maybe","maybeToList") 1 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Maybe","listToMaybe") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TVar 0])) (Rule [] (Var 0)),Func ("Maybe","catMaybes") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Maybe") [TVar 0]]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Maybe","mapMaybe") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 1]))) (Rule [] (Var 0)),Func ("Maybe",">>-") 2 Public (FuncType (TCons ("Prelude","Maybe") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1])) (TCons ("Prelude","Maybe") [TVar 1]))) (Rule [] (Var 0)),Func ("Maybe","sequenceMaybe") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Maybe") [TVar 0]]) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TVar 0]])) (Rule [] (Var 0)),Func ("Maybe","mapMMaybe") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TVar 1]]))) (Rule [] (Var 0))] [Op ("Maybe",">>-") InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Maybe.uacy b/src/lib/Curry/Module/.curry/Maybe.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Maybe.uacy
@@ -0,0 +1,15 @@
+CurryProg "Maybe"
+ ["Prelude"]
+ []
+ [CFunc ("Maybe",">>-") 2 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])) (CTCons ("Prelude","Maybe") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("Prelude","Nothing") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("Prelude","Just") [CPVar (1,"x")],CPVar (2,"f")] [(CSymbol ("Prelude","success"),CApply (CVar (2,"f")) (CVar (1,"x")))] []]),
+  CFunc ("Maybe","catMaybes") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Maybe") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"ms")] [(CSymbol ("Prelude","success"),CListComp (CVar (1,"m")) [CSPat (CPComb ("Prelude","Just") [CPVar (1,"m")]) (CVar (0,"ms"))])] []]),
+  CFunc ("Maybe","fromJust") 1 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude","Just") [CPVar (0,"a")]] [(CSymbol ("Prelude","success"),CVar (0,"a"))] [],CRule [CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))] []]),
+  CFunc ("Maybe","fromMaybe") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"d"),CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CVar (0,"d"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude","Just") [CPVar (2,"a")]] [(CSymbol ("Prelude","success"),CVar (2,"a"))] []]),
+  CFunc ("Maybe","isJust") 1 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","Just") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Maybe","isNothing") 1 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","Just") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Maybe","listToMaybe") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"a"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CVar (0,"a")))] []]),
+  CFunc ("Maybe","mapMMaybe") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","sequenceMaybe"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Maybe","mapMaybe") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","catMaybes"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Maybe","maybeToList") 1 Public (CFuncType (CTCons ("Prelude","Maybe") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Just") [CPVar (0,"a")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"a"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Maybe","sequenceMaybe") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Maybe") [CTVar (0,"a")]]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Just")) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Maybe",">>-")) (CVar (0,"c"))) (CLambda [CPVar (2,"x")] (CApply (CApply (CSymbol ("Maybe",">>-")) (CApply (CSymbol ("Maybe","sequenceMaybe")) (CVar (1,"cs")))) (CLambda [CPVar (3,"xs")] (CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))))))] []])]
+ [COp ("Maybe",">>-") CInfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Meta.acy b/src/lib/Curry/Module/.curry/Meta.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Meta.acy
@@ -0,0 +1,29 @@
+CurryProg "Meta"
+ ["Prelude"]
+ [CType ("Meta","RichSearchTree") Public [(0,"a")] [CCons ("Meta","RichFail") 1 Public [CTCons ("Meta","Exception") []],CCons ("Meta","RichValue") 1 Public [CTVar (0,"a")],CCons ("Meta","RichChoice") 2 Public [CTCons ("Meta","OrRef") [],CTCons ("Prelude","[]") [CTCons ("Meta","RichSearchTree") [CTVar (0,"a")]]],CCons ("Meta","RichSuspend") 0 Public []],
+  CType ("Meta","Exception") Public [] [CCons ("Meta","ErrorCall") 1 Public [CTCons ("Prelude","String") []],CCons ("Meta","PatternMatchFail") 1 Public [CTCons ("Prelude","String") []],CCons ("Meta","AssertionFailed") 1 Public [CTCons ("Prelude","String") []],CCons ("Meta","IOException") 1 Public [CTCons ("Prelude","String") []],CCons ("Meta","PreludeFailed") 0 Public []],
+  CType ("Meta","OrRef") Public [] [],
+  CType ("Meta","Seq") Private [(0,"a")] [CCons ("Meta","Nil") 0 Private [],CCons ("Meta","Cons") 2 Private [CTVar (0,"a"),CTCons ("Meta","Seq") [CTVar (0,"a")]],CCons ("Meta","Continued") 1 Private [CTCons ("Meta","Seq") [CTVar (0,"a")]]]]
+ [CFunc ("Meta","allValuesI") 0 Public (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Meta","list"))) (CSymbol ("Meta","seq")))] []]),
+  CFunc ("Meta","cover") 1 Public (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CExternal "cover"),
+  CFunc ("Meta","getRichSearchTree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Meta","RichSearchTree") [CTVar (0,"a")]])) (CExternal "getRichSearchTree"),
+  CFunc ("Meta","ghnfIO") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "ghnfIO"),
+  CFunc ("Meta","gnfIO") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "gnfIO"),
+  CFunc ("Meta","headNormalFormIO") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")]))) (CExternal "headNormalFormIO"),
+  CFunc ("Meta","hnfIO") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "hnfIO"),
+  CFunc ("Meta","interleave") 2 Private (CFuncType (CTCons ("Meta","Seq") [CTVar (0,"a")]) (CFuncType (CTCons ("Meta","Seq") [CTVar (0,"a")]) (CTCons ("Meta","Seq") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Meta","Nil") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Meta","Continued")) (CVar (0,"ys")))] [],CRule [CPComb ("Meta","Cons") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Meta","Cons")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Meta","interleave")) (CVar (3,"ys"))) (CVar (2,"xs"))))] [],CRule [CPAs (5,"xs") (CPComb ("Meta","Continued") [CPVar (4,"_")]),CPComb ("Meta","Nil") []] [(CSymbol ("Prelude","success"),CVar (5,"xs"))] [],CRule [CPComb ("Meta","Continued") [CPVar (6,"xs")],CPComb ("Meta","Cons") [CPVar (7,"x"),CPVar (8,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Meta","Cons")) (CVar (7,"x"))) (CApply (CApply (CSymbol ("Meta","interleave")) (CVar (6,"xs"))) (CVar (8,"ys"))))] [],CRule [CPComb ("Meta","Continued") [CPVar (9,"xs")],CPComb ("Meta","Continued") [CPVar (10,"ys")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Meta","Continued")) (CApply (CApply (CSymbol ("Meta","interleave")) (CVar (9,"xs"))) (CVar (10,"ys"))))] []]),
+  CFunc ("Meta","isFree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","Either") [CTVar (0,"a"),CTVar (0,"a")]])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Meta","headNormalFormIO")) (CSymbol ("Meta","prim_isFree"))) (CVar (0,"x")))] []]),
+  CFunc ("Meta","isValOrChoice") 1 Private (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","Fail") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","Value") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","Choice") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","Suspend") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Meta","list") 1 Private (CFuncType (CTCons ("Meta","Seq") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Meta","Nil") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Meta","Cons") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CApply (CSymbol ("Meta","list")) (CVar (1,"xs"))))] [],CRule [CPComb ("Meta","Continued") [CPVar (2,"xs")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Meta","list")) (CVar (2,"xs")))] []]),
+  CFunc ("Meta","nfIO") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "nfIO"),
+  CFunc ("Meta","ors") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CExternal "ors"),
+  CFunc ("Meta","parallelSearch") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CExternal "parallelSearch"),
+  CFunc ("Meta","prim_isFree") 1 Private (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","Either") [CTVar (0,"a"),CTVar (0,"a")]])) (CExternal "prim_isFree"),
+  CFunc ("Meta","prim_throw") 1 Private (CFuncType (CTCons ("Meta","Exception") []) (CTVar (0,"a"))) (CExternal "prim_throw"),
+  CFunc ("Meta","richST") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Meta","RichSearchTree") [CTVar (0,"a")])) (CExternal "richST"),
+  CFunc ("Meta","richSearchTree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Meta","RichSearchTree") [CTVar (0,"a")])) (CExternal "richSearchTree"),
+  CFunc ("Meta","searchTree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","SearchTree") [CTVar (0,"a")])) (CExternal "searchTree"),
+  CFunc ("Meta","seq") 1 Private (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Meta","Seq") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","Fail") []] [(CSymbol ("Prelude","success"),CSymbol ("Meta","Nil"))] [],CRule [CPComb ("Prelude","Value") [CPVar (0,"x")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Meta","Cons")) (CVar (0,"x"))) (CSymbol ("Meta","Nil")))] [],CRule [CPComb ("Prelude","Choice") [CPVar (1,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr1")) (CSymbol ("Meta","interleave"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Meta","Nil"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Meta","seq"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CSymbol ("Meta","isValOrChoice"))) (CVar (1,"ts"))))))] [],CRule [CPComb ("Prelude","Suspend") []] [(CSymbol ("Prelude","success"),CSymbol ("Meta","Nil"))] []]),
+  CFunc ("Meta","st") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","SearchTree") [CTVar (0,"a")])) (CExternal "st"),
+  CFunc ("Meta","throw") 1 Public (CFuncType (CTCons ("Meta","Exception") []) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Meta","prim_throw"))) (CVar (0,"e")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Meta.cy b/src/lib/Curry/Module/.curry/Meta.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Meta.cy
@@ -0,0 +1,49 @@
+Module "Meta"
+(Just (Exporting (2,3) [(Export (QualIdent Nothing (Ident "isFree" 0))),(Export (QualIdent Nothing (Ident "headNormalFormIO" 0))),(Export (QualIdent Nothing (Ident "hnfIO" 0))),(Export (QualIdent Nothing (Ident "nfIO" 0))),(Export (QualIdent Nothing (Ident "ghnfIO" 0))),(Export (QualIdent Nothing (Ident "gnfIO" 0))),(Export (QualIdent Nothing (Ident "searchTree" 0))),(ExportTypeAll (QualIdent Nothing (Ident "RichSearchTree" 0))),(Export (QualIdent Nothing (Ident "getRichSearchTree" 0))),(Export (QualIdent Nothing (Ident "richSearchTree" 0))),(Export (QualIdent Nothing (Ident "st" 0))),(Export (QualIdent Nothing (Ident "richST" 0))),(Export (QualIdent Nothing (Ident "cover" 0))),(Export (QualIdent Nothing (Ident "ors" 0))),(Export (QualIdent Nothing (Ident "OrRef" 0))),(Export (QualIdent Nothing (Ident "parallelSearch" 0))),(ExportTypeAll (QualIdent Nothing (Ident "Exception" 0))),(Export (QualIdent Nothing (Ident "throw" 0))),(Export (QualIdent Nothing (Ident "allValuesI" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(DataDecl (56,1) (Ident "RichSearchTree" 0) [(Ident "a" 0)] [(ConstrDecl (57,5) [] (Ident "RichFail" 0) [(ConstructorType (QualIdent Nothing (Ident "Exception" 0)) [])]),(ConstrDecl (58,5) [] (Ident "RichValue" 0) [(VariableType (Ident "a" 0))]),(ConstrDecl (59,5) [] (Ident "RichChoice" 0) [(ConstructorType (QualIdent Nothing (Ident "OrRef" 0)) []),(ListType (ConstructorType (QualIdent Nothing (Ident "RichSearchTree" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (60,5) [] (Ident "RichSuspend" 0) [])])
+,(DataDecl (62,1) (Ident "Exception" 0) [] [(ConstrDecl (63,5) [] (Ident "ErrorCall" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]),(ConstrDecl (64,5) [] (Ident "PatternMatchFail" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]),(ConstrDecl (65,5) [] (Ident "AssertionFailed" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]),(ConstrDecl (66,5) [] (Ident "IOException" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]),(ConstrDecl (67,5) [] (Ident "PreludeFailed" 0) [])])
+,(DataDecl (69,1) (Ident "OrRef" 0) [] [])
+,(DataDecl (116,1) (Ident "Seq" 0) [(Ident "a" 0)] [(ConstrDecl (116,14) [] (Ident "Nil" 0) []),(ConstrDecl (116,20) [] (Ident "Cons" 0) [(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Seq" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (116,37) [] (Ident "Continued" 0) [(ConstructorType (QualIdent Nothing (Ident "Seq" 0)) [(VariableType (Ident "a" 0))])])])
+,(TypeSig (26,1) [(Ident "isFree" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Either" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))])])))
+,(FunctionDecl (27,1) (Ident "isFree" 0) [(Equation (27,1) (FunLhs (Ident "isFree" 0) [(VariablePattern (Ident "x" 2))]) (SimpleRhs (27,12) (Apply (Apply (Variable (QualIdent (Just "Meta") (Ident "headNormalFormIO" 0))) (Variable (QualIdent (Just "Meta") (Ident "prim_isFree" 0)))) (Variable (QualIdent Nothing (Ident "x" 2)))) []))])
+,(TypeSig (29,1) [(Ident "prim_isFree" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Either" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))])])))
+,(FlatExternalDecl (30,1) [(Ident "prim_isFree" 0)])
+,(TypeSig (35,1) [(Ident "headNormalFormIO" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))
+,(FlatExternalDecl (36,1) [(Ident "headNormalFormIO" 0)])
+,(TypeSig (44,1) [(Ident "searchTree" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))])))
+,(FlatExternalDecl (45,1) [(Ident "searchTree" 0)])
+,(TypeSig (47,1) [(Ident "hnfIO" 0),(Ident "nfIO" 0),(Ident "gnfIO" 0),(Ident "ghnfIO" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))
+,(FlatExternalDecl (48,1) [(Ident "gnfIO" 0)])
+,(FlatExternalDecl (49,1) [(Ident "ghnfIO" 0)])
+,(FlatExternalDecl (50,1) [(Ident "nfIO" 0)])
+,(FlatExternalDecl (51,1) [(Ident "hnfIO" 0)])
+,(TypeSig (77,1) [(Ident "getRichSearchTree" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "RichSearchTree" 0)) [(VariableType (Ident "a" 0))])])))
+,(FlatExternalDecl (78,1) [(Ident "getRichSearchTree" 0)])
+,(TypeSig (80,1) [(Ident "richSearchTree" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "RichSearchTree" 0)) [(VariableType (Ident "a" 0))])))
+,(FlatExternalDecl (81,1) [(Ident "richSearchTree" 0)])
+,(TypeSig (84,1) [(Ident "parallelSearch" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (VariableType (Ident "a" 0)))])))
+,(FlatExternalDecl (85,1) [(Ident "parallelSearch" 0)])
+,(TypeSig (88,1) [(Ident "cover" 0)] (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))
+,(FlatExternalDecl (89,1) [(Ident "cover" 0)])
+,(TypeSig (92,1) [(Ident "st" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))])))
+,(FlatExternalDecl (93,1) [(Ident "st" 0)])
+,(TypeSig (96,1) [(Ident "richST" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "RichSearchTree" 0)) [(VariableType (Ident "a" 0))])))
+,(FlatExternalDecl (97,1) [(Ident "richST" 0)])
+,(TypeSig (100,1) [(Ident "ors" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (VariableType (Ident "a" 0))))
+,(FlatExternalDecl (101,1) [(Ident "ors" 0)])
+,(TypeSig (107,1) [(Ident "throw" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Exception" 0)) []) (VariableType (Ident "a" 0))))
+,(FunctionDecl (108,1) (Ident "throw" 0) [(Equation (108,1) (FunLhs (Ident "throw" 0) [(VariablePattern (Ident "e" 4))]) (SimpleRhs (108,11) (InfixApply (Variable (QualIdent (Just "Meta") (Ident "prim_throw" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "e" 4)))) []))])
+,(TypeSig (110,1) [(Ident "prim_throw" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Exception" 0)) []) (VariableType (Ident "a" 0))))
+,(FlatExternalDecl (111,1) [(Ident "prim_throw" 0)])
+,(TypeSig (118,1) [(Ident "list" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Seq" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (119,1) (Ident "list" 0) [(Equation (119,1) (FunLhs (Ident "list" 0) [(ConstructorPattern (QualIdent (Just "Meta") (Ident "Nil" 0)) [])]) (SimpleRhs (119,12) (List []) [])),(Equation (120,1) (FunLhs (Ident "list" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Meta") (Ident "Cons" 0)) [(VariablePattern (Ident "x" 8)),(VariablePattern (Ident "xs" 8))]))]) (SimpleRhs (120,20) (InfixApply (Variable (QualIdent Nothing (Ident "x" 8))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "Meta") (Ident "list" 0))) (Variable (QualIdent Nothing (Ident "xs" 8))))) [])),(Equation (121,1) (FunLhs (Ident "list" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Meta") (Ident "Continued" 0)) [(VariablePattern (Ident "xs" 10))]))]) (SimpleRhs (121,23) (Apply (Variable (QualIdent (Just "Meta") (Ident "list" 0))) (Variable (QualIdent Nothing (Ident "xs" 10)))) []))])
+,(TypeSig (123,1) [(Ident "interleave" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Seq" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Seq" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Seq" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (124,1) (Ident "interleave" 0) [(Equation (124,1) (FunLhs (Ident "interleave" 0) [(ConstructorPattern (QualIdent (Just "Meta") (Ident "Nil" 0)) []),(VariablePattern (Ident "ys" 12))]) (SimpleRhs (124,46) (Apply (Constructor (QualIdent (Just "Meta") (Ident "Continued" 0))) (Variable (QualIdent Nothing (Ident "ys" 12)))) [])),(Equation (125,1) (FunLhs (Ident "interleave" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Meta") (Ident "Cons" 0)) [(VariablePattern (Ident "x" 14)),(VariablePattern (Ident "xs" 14))])),(VariablePattern (Ident "ys" 14))]) (SimpleRhs (125,46) (Apply (Apply (Constructor (QualIdent (Just "Meta") (Ident "Cons" 0))) (Variable (QualIdent Nothing (Ident "x" 14)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Meta") (Ident "interleave" 0))) (Variable (QualIdent Nothing (Ident "ys" 14)))) (Variable (QualIdent Nothing (Ident "xs" 14)))))) [])),(Equation (126,1) (FunLhs (Ident "interleave" 0) [(AsPattern (Ident "xs" 16) (ParenPattern (ConstructorPattern (QualIdent (Just "Meta") (Ident "Continued" 0)) [(VariablePattern (Ident "_" 17))]))),(ConstructorPattern (QualIdent (Just "Meta") (Ident "Nil" 0)) [])]) (SimpleRhs (126,46) (Variable (QualIdent Nothing (Ident "xs" 16))) [])),(Equation (127,1) (FunLhs (Ident "interleave" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Meta") (Ident "Continued" 0)) [(VariablePattern (Ident "xs" 19))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Meta") (Ident "Cons" 0)) [(VariablePattern (Ident "x" 19)),(VariablePattern (Ident "ys" 19))]))]) (SimpleRhs (127,46) (Apply (Apply (Constructor (QualIdent (Just "Meta") (Ident "Cons" 0))) (Variable (QualIdent Nothing (Ident "x" 19)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Meta") (Ident "interleave" 0))) (Variable (QualIdent Nothing (Ident "xs" 19)))) (Variable (QualIdent Nothing (Ident "ys" 19)))))) [])),(Equation (128,1) (FunLhs (Ident "interleave" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Meta") (Ident "Continued" 0)) [(VariablePattern (Ident "xs" 21))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Meta") (Ident "Continued" 0)) [(VariablePattern (Ident "ys" 21))]))]) (SimpleRhs (128,46) (Apply (Constructor (QualIdent (Just "Meta") (Ident "Continued" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Meta") (Ident "interleave" 0))) (Variable (QualIdent Nothing (Ident "xs" 21)))) (Variable (QualIdent Nothing (Ident "ys" 21)))))) []))])
+,(TypeSig (130,1) [(Ident "seq" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Seq" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (131,1) (Ident "seq" 0) [(Equation (131,1) (FunLhs (Ident "seq" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Fail" 0)) [])]) (SimpleRhs (131,19) (Constructor (QualIdent (Just "Meta") (Ident "Nil" 0))) [])),(Equation (132,1) (FunLhs (Ident "seq" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Value" 0)) [(VariablePattern (Ident "x" 25))]))]) (SimpleRhs (132,19) (Apply (Apply (Constructor (QualIdent (Just "Meta") (Ident "Cons" 0))) (Variable (QualIdent Nothing (Ident "x" 25)))) (Constructor (QualIdent (Just "Meta") (Ident "Nil" 0)))) [])),(Equation (133,1) (FunLhs (Ident "seq" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Choice" 0)) [(VariablePattern (Ident "ts" 27))]))]) (SimpleRhs (133,19) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr1" 0))) (Variable (QualIdent (Just "Meta") (Ident "interleave" 0)))) (Paren (InfixApply (Constructor (QualIdent (Just "Meta") (Ident "Nil" 0))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "Prelude") (Ident "seq" 0)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Variable (QualIdent (Just "Meta") (Ident "isValOrChoice" 0)))) (Variable (QualIdent Nothing (Ident "ts" 27))))))))) [])),(Equation (134,1) (FunLhs (Ident "seq" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Suspend" 0)) [])]) (SimpleRhs (134,19) (Constructor (QualIdent (Just "Meta") (Ident "Nil" 0))) []))])
+,(TypeSig (136,1) [(Ident "isValOrChoice" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (137,1) (Ident "isValOrChoice" 0) [(Equation (137,1) (FunLhs (Ident "isValOrChoice" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Fail" 0)) [])]) (SimpleRhs (137,28) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (138,1) (FunLhs (Ident "isValOrChoice" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Value" 0)) [(VariablePattern (Ident "_" 34))]))]) (SimpleRhs (138,28) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (139,1) (FunLhs (Ident "isValOrChoice" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Choice" 0)) [(VariablePattern (Ident "_" 37))]))]) (SimpleRhs (139,28) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (140,1) (FunLhs (Ident "isValOrChoice" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Suspend" 0)) [])]) (SimpleRhs (140,28) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])
+,(TypeSig (142,1) [(Ident "allValuesI" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (143,1) (Ident "allValuesI" 0) [(Equation (143,1) (FunLhs (Ident "allValuesI" 0) []) (SimpleRhs (143,14) (InfixApply (Variable (QualIdent (Just "Meta") (Ident "list" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "seq" 0)))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Meta.efc b/src/lib/Curry/Module/.curry/Meta.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Meta.efc
@@ -0,0 +1,1 @@
+Prog "Meta" ["Prelude"] [Type ((Nothing,Nothing,"Meta","RichSearchTree")) Public [0] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Exception") []) (TCons (Nothing,Nothing,"Meta","RichSearchTree") [TVar 0])),"Meta","RichFail")) 1 Public [TCons ((Nothing,Nothing,"Meta","Exception")) []],Cons ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Meta","RichSearchTree") [TVar 0])),"Meta","RichValue")) 1 Public [TVar 0],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","OrRef") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Meta","RichSearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Meta","RichSearchTree") [TVar 0]))),"Meta","RichChoice")) 2 Public [TCons ((Nothing,Nothing,"Meta","OrRef")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Meta","RichSearchTree")) [TVar 0]]],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Meta","RichSearchTree") [TVar 0]),"Meta","RichSuspend")) 0 Public []],Type ((Nothing,Nothing,"Meta","Exception")) Public [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Meta","Exception") [])),"Meta","ErrorCall")) 1 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Meta","Exception") [])),"Meta","PatternMatchFail")) 1 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Meta","Exception") [])),"Meta","AssertionFailed")) 1 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Meta","Exception") [])),"Meta","IOException")) 1 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Exception") []),"Meta","PreludeFailed")) 0 Public []],Type ((Nothing,Nothing,"Meta","OrRef")) Public [] [],Type ((Nothing,Nothing,"Meta","Seq")) Private [0] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),"Meta","Nil")) 0 Private [],Cons ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","Cons")) 2 Private [TVar 0,TCons ((Nothing,Nothing,"Meta","Seq")) [TVar 0]],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","Continued")) 1 Private [TCons ((Nothing,Nothing,"Meta","Seq")) [TVar 0]]]] [Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]])),"Meta","isFree")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Either")) [TVar 0,TVar 0]])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]]))),"Meta","headNormalFormIO")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]])),"Meta","prim_isFree")) [],Var ((Just (TVar 0),1))])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]])),"Meta","prim_isFree")) 1 Private (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Either")) [TVar 0,TVar 0]])) (External "Meta.prim_isFree"),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Meta","headNormalFormIO")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))) (External "Meta.headNormalFormIO"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Meta","searchTree")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0])) (External "Meta.searchTree"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Meta","gnfIO")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (External "Meta.gnfIO"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Meta","ghnfIO")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (External "Meta.ghnfIO"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Meta","nfIO")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (External "Meta.nfIO"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Meta","hnfIO")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (External "Meta.hnfIO"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Meta","RichSearchTree") [TVar 0]])),"Meta","getRichSearchTree")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Meta","RichSearchTree")) [TVar 0]])) (External "Meta.getRichSearchTree"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Meta","RichSearchTree") [TVar 0])),"Meta","richSearchTree")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Meta","RichSearchTree")) [TVar 0])) (External "Meta.richSearchTree"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"Meta","parallelSearch")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]])) (External "Meta.parallelSearch"),Func ((Nothing,Just (FuncType (TVar 0) (TVar 0)),"Meta","cover")) 1 Public (FuncType (TVar 0) (TVar 0)) (External "Meta.cover"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Meta","st")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0])) (External "Meta.st"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Meta","RichSearchTree") [TVar 0])),"Meta","richST")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Meta","RichSearchTree")) [TVar 0])) (External "Meta.richST"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"Meta","ors")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)) (External "Meta.ors"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Exception") []) (TVar 0)),"Meta","throw")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Meta","Exception")) []) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Meta","Exception") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Meta","Exception") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Meta","Exception") []) (TVar 0))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Exception") []) (TVar 0)),"Meta","prim_throw")) [],Var ((Just (TCons (Nothing,Nothing,"Meta","Exception") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Exception") []) (TVar 0)),"Meta","prim_throw")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Meta","Exception")) []) (TVar 0)) (External "Meta.prim_throw"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Meta","list")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Meta","Seq")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),"Meta","Nil")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","Cons")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Meta","list")) [Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),3))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","Continued")) [(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Meta","list")) [Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),4))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","interleave")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Meta","Seq")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Meta","Seq")) [TVar 0]) (TCons ((Nothing,Nothing,"Meta","Seq")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),"Meta","Nil")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","Continued")) [Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),2))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","Cons")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","Cons")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","interleave")) [Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),2)),Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),4))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","Continued")) [(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),"Meta","Nil")) []) (Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),1))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","Cons")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","Cons")) [Var ((Just (TVar 0),6)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","interleave")) [Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),7))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","Continued")) [(Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),8)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","Continued")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","interleave")) [Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),8))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","seq")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Meta","Seq")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Fail")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),"Meta","Nil")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Value")) [(Just (TVar 0),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","Cons")) [Var ((Just (TVar 0),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),"Meta","Nil")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Choice")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Prelude","foldr1")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]))),"Meta","interleave")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),"Meta","Nil")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","seq")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude","filter")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Meta","isValOrChoice")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3))]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Suspend")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]),"Meta","Nil")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Meta","isValOrChoice")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Fail")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Value")) [(Just (TVar 0),2)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Choice")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Suspend")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Meta","allValuesI")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Meta","list")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Meta","Seq") [TVar 0])),"Meta","seq")) []]))] []
diff --git a/src/lib/Curry/Module/.curry/Meta.fcy b/src/lib/Curry/Module/.curry/Meta.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Meta.fcy
@@ -0,0 +1,1 @@
+Prog "Meta" ["Prelude"] [Type ("Meta","RichSearchTree") Public [0] [Cons ("Meta","RichFail") 1 Public [TCons ("Meta","Exception") []],Cons ("Meta","RichValue") 1 Public [TVar 0],Cons ("Meta","RichChoice") 2 Public [TCons ("Meta","OrRef") [],TCons ("Prelude","[]") [TCons ("Meta","RichSearchTree") [TVar 0]]],Cons ("Meta","RichSuspend") 0 Public []],Type ("Meta","Exception") Public [] [Cons ("Meta","ErrorCall") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Meta","PatternMatchFail") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Meta","AssertionFailed") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Meta","IOException") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Meta","PreludeFailed") 0 Public []],Type ("Meta","OrRef") Public [] [],Type ("Meta","Seq") Private [0] [Cons ("Meta","Nil") 0 Private [],Cons ("Meta","Cons") 2 Private [TVar 0,TCons ("Meta","Seq") [TVar 0]],Cons ("Meta","Continued") 1 Private [TCons ("Meta","Seq") [TVar 0]]]] [Func ("Meta","isFree") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","Either") [TVar 0,TVar 0]])) (Rule [1] (Comb FuncCall ("Meta","headNormalFormIO") [Comb (FuncPartCall 1) ("Meta","prim_isFree") [],Var 1])),Func ("Meta","prim_isFree") 1 Private (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","Either") [TVar 0,TVar 0]])) (External "Meta.prim_isFree"),Func ("Meta","headNormalFormIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1]))) (External "Meta.headNormalFormIO"),Func ("Meta","searchTree") 1 Public (FuncType (TVar 0) (TCons ("Prelude","SearchTree") [TVar 0])) (External "Meta.searchTree"),Func ("Meta","gnfIO") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Meta.gnfIO"),Func ("Meta","ghnfIO") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Meta.ghnfIO"),Func ("Meta","nfIO") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Meta.nfIO"),Func ("Meta","hnfIO") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Meta.hnfIO"),Func ("Meta","getRichSearchTree") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Meta","RichSearchTree") [TVar 0]])) (External "Meta.getRichSearchTree"),Func ("Meta","richSearchTree") 1 Public (FuncType (TVar 0) (TCons ("Meta","RichSearchTree") [TVar 0])) (External "Meta.richSearchTree"),Func ("Meta","parallelSearch") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 0]])) (External "Meta.parallelSearch"),Func ("Meta","cover") 1 Public (FuncType (TVar 0) (TVar 0)) (External "Meta.cover"),Func ("Meta","st") 1 Public (FuncType (TVar 0) (TCons ("Prelude","SearchTree") [TVar 0])) (External "Meta.st"),Func ("Meta","richST") 1 Public (FuncType (TVar 0) (TCons ("Meta","RichSearchTree") [TVar 0])) (External "Meta.richST"),Func ("Meta","ors") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (External "Meta.ors"),Func ("Meta","throw") 1 Public (FuncType (TCons ("Meta","Exception") []) (TVar 0)) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Meta","prim_throw") [],Var 1])),Func ("Meta","prim_throw") 1 Private (FuncType (TCons ("Meta","Exception") []) (TVar 0)) (External "Meta.prim_throw"),Func ("Meta","list") 1 Private (FuncType (TCons ("Meta","Seq") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Meta","Nil") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Meta","Cons") [2,3]) (Comb ConsCall ("Prelude",":") [Var 2,Comb FuncCall ("Meta","list") [Var 3]]),Branch (Pattern ("Meta","Continued") [4]) (Comb FuncCall ("Meta","list") [Var 4])])),Func ("Meta","interleave") 2 Private (FuncType (TCons ("Meta","Seq") [TVar 0]) (FuncType (TCons ("Meta","Seq") [TVar 0]) (TCons ("Meta","Seq") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Meta","Nil") []) (Comb ConsCall ("Meta","Continued") [Var 2]),Branch (Pattern ("Meta","Cons") [3,4]) (Comb ConsCall ("Meta","Cons") [Var 3,Comb FuncCall ("Meta","interleave") [Var 2,Var 4]]),Branch (Pattern ("Meta","Continued") [5]) (Case  Flex (Var 2) [Branch (Pattern ("Meta","Nil") []) (Var 1),Branch (Pattern ("Meta","Cons") [6,7]) (Comb ConsCall ("Meta","Cons") [Var 6,Comb FuncCall ("Meta","interleave") [Var 5,Var 7]]),Branch (Pattern ("Meta","Continued") [8]) (Comb ConsCall ("Meta","Continued") [Comb FuncCall ("Meta","interleave") [Var 5,Var 8]])])])),Func ("Meta","seq") 1 Private (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Meta","Seq") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Fail") []) (Comb ConsCall ("Meta","Nil") []),Branch (Pattern ("Prelude","Value") [2]) (Comb ConsCall ("Meta","Cons") [Var 2,Comb ConsCall ("Meta","Nil") []]),Branch (Pattern ("Prelude","Choice") [3]) (Comb FuncCall ("Prelude","foldr1") [Comb (FuncPartCall 2) ("Meta","interleave") [],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Meta","Nil") [],Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Meta","seq") [],Comb FuncCall ("Prelude","filter") [Comb (FuncPartCall 1) ("Meta","isValOrChoice") [],Var 3]]]]),Branch (Pattern ("Prelude","Suspend") []) (Comb ConsCall ("Meta","Nil") [])])),Func ("Meta","isValOrChoice") 1 Private (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Fail") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude","Value") [2]) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude","Choice") [3]) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude","Suspend") []) (Comb ConsCall ("Prelude","False") [])])),Func ("Meta","allValuesI") 0 Public (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Meta","list") [],Comb (FuncPartCall 1) ("Meta","seq") []]))] []
diff --git a/src/lib/Curry/Module/.curry/Meta.fint b/src/lib/Curry/Module/.curry/Meta.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Meta.fint
@@ -0,0 +1,1 @@
+Prog "Meta" ["Prelude"] [Type ("Meta","RichSearchTree") Public [0] [Cons ("Meta","RichFail") 1 Public [TCons ("Meta","Exception") []],Cons ("Meta","RichValue") 1 Public [TVar 0],Cons ("Meta","RichChoice") 2 Public [TCons ("Meta","OrRef") [],TCons ("Prelude","[]") [TCons ("Meta","RichSearchTree") [TVar 0]]],Cons ("Meta","RichSuspend") 0 Public []],Type ("Meta","Exception") Public [] [Cons ("Meta","ErrorCall") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Meta","PatternMatchFail") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Meta","AssertionFailed") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Meta","IOException") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],Cons ("Meta","PreludeFailed") 0 Public []],Type ("Meta","OrRef") Public [] []] [Func ("Meta","isFree") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","Either") [TVar 0,TVar 0]])) (Rule [] (Var 0)),Func ("Meta","headNormalFormIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1]))) (External "Meta.headNormalFormIO"),Func ("Meta","searchTree") 1 Public (FuncType (TVar 0) (TCons ("Prelude","SearchTree") [TVar 0])) (External "Meta.searchTree"),Func ("Meta","gnfIO") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Meta.gnfIO"),Func ("Meta","ghnfIO") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Meta.ghnfIO"),Func ("Meta","nfIO") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Meta.nfIO"),Func ("Meta","hnfIO") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Meta.hnfIO"),Func ("Meta","getRichSearchTree") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Meta","RichSearchTree") [TVar 0]])) (External "Meta.getRichSearchTree"),Func ("Meta","richSearchTree") 1 Public (FuncType (TVar 0) (TCons ("Meta","RichSearchTree") [TVar 0])) (External "Meta.richSearchTree"),Func ("Meta","parallelSearch") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 0]])) (External "Meta.parallelSearch"),Func ("Meta","cover") 1 Public (FuncType (TVar 0) (TVar 0)) (External "Meta.cover"),Func ("Meta","st") 1 Public (FuncType (TVar 0) (TCons ("Prelude","SearchTree") [TVar 0])) (External "Meta.st"),Func ("Meta","richST") 1 Public (FuncType (TVar 0) (TCons ("Meta","RichSearchTree") [TVar 0])) (External "Meta.richST"),Func ("Meta","ors") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (External "Meta.ors"),Func ("Meta","throw") 1 Public (FuncType (TCons ("Meta","Exception") []) (TVar 0)) (Rule [] (Var 0)),Func ("Meta","allValuesI") 0 Public (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Meta.uacy b/src/lib/Curry/Module/.curry/Meta.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Meta.uacy
@@ -0,0 +1,29 @@
+CurryProg "Meta"
+ ["Prelude"]
+ [CType ("Meta","RichSearchTree") Public [(0,"a")] [CCons ("Meta","RichFail") 1 Public [CTCons ("Meta","Exception") []],CCons ("Meta","RichValue") 1 Public [CTVar (0,"a")],CCons ("Meta","RichChoice") 2 Public [CTCons ("Meta","OrRef") [],CTCons ("Prelude","[]") [CTCons ("Meta","RichSearchTree") [CTVar (0,"a")]]],CCons ("Meta","RichSuspend") 0 Public []],
+  CType ("Meta","Exception") Public [] [CCons ("Meta","ErrorCall") 1 Public [CTCons ("Prelude","String") []],CCons ("Meta","PatternMatchFail") 1 Public [CTCons ("Prelude","String") []],CCons ("Meta","AssertionFailed") 1 Public [CTCons ("Prelude","String") []],CCons ("Meta","IOException") 1 Public [CTCons ("Prelude","String") []],CCons ("Meta","PreludeFailed") 0 Public []],
+  CType ("Meta","OrRef") Public [] [],
+  CType ("Meta","Seq") Private [(0,"a")] [CCons ("Meta","Nil") 0 Private [],CCons ("Meta","Cons") 2 Private [CTVar (0,"a"),CTCons ("Meta","Seq") [CTVar (0,"a")]],CCons ("Meta","Continued") 1 Private [CTCons ("Meta","Seq") [CTVar (0,"a")]]]]
+ [CFunc ("Meta","allValuesI") 0 Public (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Meta","list"))) (CSymbol ("Prelude","seq")))] []]),
+  CFunc ("Meta","cover") 1 Public (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CExternal "cover"),
+  CFunc ("Meta","getRichSearchTree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Meta","RichSearchTree") [CTVar (0,"a")]])) (CExternal "getRichSearchTree"),
+  CFunc ("Meta","ghnfIO") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "ghnfIO"),
+  CFunc ("Meta","gnfIO") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "gnfIO"),
+  CFunc ("Meta","headNormalFormIO") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")]))) (CExternal "headNormalFormIO"),
+  CFunc ("Meta","hnfIO") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "hnfIO"),
+  CFunc ("Meta","interleave") 2 Private (CFuncType (CTCons ("Meta","Seq") [CTVar (0,"a")]) (CFuncType (CTCons ("Meta","Seq") [CTVar (0,"a")]) (CTCons ("Meta","Seq") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Meta","Nil") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Meta","Continued")) (CVar (0,"ys")))] [],CRule [CPComb ("Meta","Cons") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Meta","Cons")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Meta","interleave")) (CVar (3,"ys"))) (CVar (2,"xs"))))] [],CRule [CPAs (5,"xs") (CPComb ("Meta","Continued") [CPVar (4,"_")]),CPComb ("Meta","Nil") []] [(CSymbol ("Prelude","success"),CVar (5,"xs"))] [],CRule [CPComb ("Meta","Continued") [CPVar (6,"xs")],CPComb ("Meta","Cons") [CPVar (7,"x"),CPVar (8,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Meta","Cons")) (CVar (7,"x"))) (CApply (CApply (CSymbol ("Meta","interleave")) (CVar (6,"xs"))) (CVar (8,"ys"))))] [],CRule [CPComb ("Meta","Continued") [CPVar (9,"xs")],CPComb ("Meta","Continued") [CPVar (10,"ys")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Meta","Continued")) (CApply (CApply (CSymbol ("Meta","interleave")) (CVar (9,"xs"))) (CVar (10,"ys"))))] []]),
+  CFunc ("Meta","isFree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","Either") [CTVar (0,"a"),CTVar (0,"a")]])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Meta","headNormalFormIO")) (CSymbol ("Meta","prim_isFree"))) (CVar (0,"x")))] []]),
+  CFunc ("Meta","isValOrChoice") 1 Private (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","Fail") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","Value") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","Choice") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","Suspend") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Meta","list") 1 Private (CFuncType (CTCons ("Meta","Seq") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Meta","Nil") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Meta","Cons") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CApply (CSymbol ("Meta","list")) (CVar (1,"xs"))))] [],CRule [CPComb ("Meta","Continued") [CPVar (2,"xs")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Meta","list")) (CVar (2,"xs")))] []]),
+  CFunc ("Meta","nfIO") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "nfIO"),
+  CFunc ("Meta","ors") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CExternal "ors"),
+  CFunc ("Meta","parallelSearch") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CExternal "parallelSearch"),
+  CFunc ("Meta","prim_isFree") 1 Private (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","Either") [CTVar (0,"a"),CTVar (0,"a")]])) (CExternal "prim_isFree"),
+  CFunc ("Meta","prim_throw") 1 Private (CFuncType (CTCons ("Meta","Exception") []) (CTVar (0,"a"))) (CExternal "prim_throw"),
+  CFunc ("Meta","richST") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Meta","RichSearchTree") [CTVar (0,"a")])) (CExternal "richST"),
+  CFunc ("Meta","richSearchTree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Meta","RichSearchTree") [CTVar (0,"a")])) (CExternal "richSearchTree"),
+  CFunc ("Meta","searchTree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","SearchTree") [CTVar (0,"a")])) (CExternal "searchTree"),
+  CFunc ("Meta","seq") 1 Private (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Meta","Seq") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","Fail") []] [(CSymbol ("Prelude","success"),CSymbol ("Meta","Nil"))] [],CRule [CPComb ("Prelude","Value") [CPVar (0,"x")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Meta","Cons")) (CVar (0,"x"))) (CSymbol ("Meta","Nil")))] [],CRule [CPComb ("Prelude","Choice") [CPVar (1,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr1")) (CSymbol ("Meta","interleave"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("Meta","Nil"))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Prelude","seq"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CSymbol ("Meta","isValOrChoice"))) (CVar (1,"ts"))))))] [],CRule [CPComb ("Prelude","Suspend") []] [(CSymbol ("Prelude","success"),CSymbol ("Meta","Nil"))] []]),
+  CFunc ("Meta","st") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","SearchTree") [CTVar (0,"a")])) (CExternal "st"),
+  CFunc ("Meta","throw") 1 Public (CFuncType (CTCons ("Meta","Exception") []) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Meta","prim_throw"))) (CVar (0,"e")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Parser.acy b/src/lib/Curry/Module/.curry/Parser.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Parser.acy
@@ -0,0 +1,14 @@
+CurryProg "Parser"
+ ["Prelude"]
+ [CTypeSyn ("Parser","Parser") Public [(0,"token")] (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"token")]) (CTCons ("Prelude","[]") [CTVar (0,"token")])),
+  CTypeSyn ("Parser","ParserRep") Public [(0,"rep"),(1,"token")] (CFuncType (CTVar (0,"rep")) (CTCons ("Parser","Parser") [CTVar (1,"token")]))]
+ [CFunc ("Parser","<*>") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"p1"),CPVar (1,"p2")] [(CSymbol ("Prelude","success"),CSymbol ("Parser","seq"))] [CLocalFunc (CFunc ("Parser","seq") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"_23")]) (CTCons ("Prelude","[]") [CTVar (1,"_23")])) (CRules CFlex [CRule [CPVar (2,"sentence")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!!")) (CVar (1,"p2"))) (CApply (CVar (0,"p1")) (CVar (2,"sentence"))))] []]))]]),
+  CFunc ("Parser","<|>") 2 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"_")] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"sentence")] (CApply (CVar (0,"p")) (CVar (2,"sentence"))))] [],CRule [CPVar (3,"_"),CPVar (4,"q")] [(CSymbol ("Prelude","success"),CLambda [CPVar (5,"sentence")] (CApply (CVar (4,"q")) (CVar (5,"sentence"))))] []]),
+  CFunc ("Parser","<||>") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"q")] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"rep")] (CApply (CApply (CSymbol ("Parser","<|>")) (CApply (CVar (0,"p")) (CVar (2,"rep")))) (CApply (CVar (1,"q")) (CVar (2,"rep")))))] []]),
+  CFunc ("Parser",">>>") 4 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"parser"),CPVar (1,"repexp"),CPVar (2,"rep"),CPVar (3,"sentence")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Parser","attach"))) (CApply (CVar (0,"parser")) (CVar (3,"sentence"))))] [CLocalFunc (CFunc ("Parser","attach") 1 Private (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (4,"rest")] [(CApply (CApply (CSymbol ("Prelude","=:=")) (CVar (1,"repexp"))) (CVar (2,"rep")),CVar (4,"rest"))] []]))]]),
+  CFunc ("Parser","empty") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"sentence")] [(CSymbol ("Prelude","success"),CVar (0,"sentence"))] []]),
+  CFunc ("Parser","satisfy") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"pred"),CPVar (1,"sym"),CPComb ("Prelude",":") [CPVar (2,"token"),CPVar (3,"tokens")]] [(CApply (CApply (CSymbol ("Prelude","&")) (CApply (CApply (CSymbol ("Prelude","=:=")) (CApply (CVar (0,"pred")) (CVar (2,"token")))) (CSymbol ("Prelude","True")))) (CApply (CApply (CSymbol ("Prelude","=:=")) (CVar (1,"sym"))) (CVar (2,"token"))),CVar (3,"tokens"))] []]),
+  CFunc ("Parser","some") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Parser",">>>")) (CApply (CApply (CSymbol ("Parser","<*>")) (CApply (CVar (0,"p")) (CVar (1,"x")))) (CApply (CApply (CSymbol ("Parser","star")) (CVar (0,"p"))) (CVar (2,"xs"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (2,"xs"))))] [CLocalVar (1,"x"),CLocalVar (2,"xs")]]),
+  CFunc ("Parser","star") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Parser","<||>")) (CApply (CApply (CSymbol ("Parser",">>>")) (CApply (CApply (CSymbol ("Parser","<*>")) (CApply (CVar (0,"p")) (CVar (1,"x")))) (CApply (CApply (CSymbol ("Parser","star")) (CVar (0,"p"))) (CVar (2,"xs"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (2,"xs"))))) (CApply (CApply (CSymbol ("Parser",">>>")) (CSymbol ("Parser","empty"))) (CSymbol ("Prelude","[]"))))] [CLocalVar (1,"x"),CLocalVar (2,"xs")]]),
+  CFunc ("Parser","terminal") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"sym"),CPComb ("Prelude",":") [CPVar (1,"token"),CPVar (2,"tokens")]] [(CApply (CApply (CSymbol ("Prelude","=:=")) (CVar (0,"sym"))) (CVar (1,"token")),CVar (2,"tokens"))] []])]
+ [COp ("Parser","<*>") CInfixrOp 4,COp ("Parser",">>>") CInfixrOp 3,COp ("Parser","<||>") CInfixrOp 2,COp ("Parser","<|>") CInfixrOp 2]
diff --git a/src/lib/Curry/Module/.curry/Parser.cy b/src/lib/Curry/Module/.curry/Parser.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Parser.cy
@@ -0,0 +1,27 @@
+Module "Parser"
+Nothing
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(TypeDecl (25,1) (Ident "Parser" 0) [(Ident "token" 0)] (ArrowType (ListType (VariableType (Ident "token" 0))) (ListType (VariableType (Ident "token" 0)))))
+,(TypeDecl (31,1) (Ident "ParserRep" 0) [(Ident "rep" 0),(Ident "token" 0)] (ArrowType (VariableType (Ident "rep" 0)) (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "token" 0))])))
+,(InfixDecl (16,1) InfixR 4 [(Ident "<*>" 0)])
+,(InfixDecl (17,1) InfixR 3 [(Ident ">>>" 0)])
+,(InfixDecl (18,1) InfixR 2 [(Ident "<|>" 0),(Ident "<||>" 0)])
+,(TypeSig (37,1) [(Ident "<|>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]) (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]))))
+,(FunctionDecl (38,1) (Ident "<|>" 0) [(Equation (38,1) (OpLhs (VariablePattern (Ident "p" 2)) (Ident "<|>" 0) (VariablePattern (Ident "_" 3))) (SimpleRhs (38,11) (Lambda [(VariablePattern (Ident "sentence" 5))] (Apply (Variable (QualIdent Nothing (Ident "p" 2))) (Variable (QualIdent Nothing (Ident "sentence" 5))))) [])),(Equation (39,1) (OpLhs (VariablePattern (Ident "_" 7)) (Ident "<|>" 0) (VariablePattern (Ident "q" 6))) (SimpleRhs (39,11) (Lambda [(VariablePattern (Ident "sentence" 9))] (Apply (Variable (QualIdent Nothing (Ident "q" 6))) (Variable (QualIdent Nothing (Ident "sentence" 9))))) []))])
+,(TypeSig (43,1) [(Ident "<||>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "r" 0)),(VariableType (Ident "t" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "r" 0)),(VariableType (Ident "t" 0))]) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "r" 0)),(VariableType (Ident "t" 0))]))))
+,(FunctionDecl (44,1) (Ident "<||>" 0) [(Equation (44,1) (OpLhs (VariablePattern (Ident "p" 10)) (Ident "<||>" 0) (VariablePattern (Ident "q" 10))) (SimpleRhs (44,12) (Lambda [(VariablePattern (Ident "rep" 12))] (InfixApply (Apply (Variable (QualIdent Nothing (Ident "p" 10))) (Variable (QualIdent Nothing (Ident "rep" 12)))) (InfixOp (QualIdent (Just "Parser") (Ident "<|>" 0))) (Apply (Variable (QualIdent Nothing (Ident "q" 10))) (Variable (QualIdent Nothing (Ident "rep" 12)))))) []))])
+,(TypeSig (49,1) [(Ident "<*>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]) (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "t" 0))]))))
+,(FunctionDecl (50,1) (Ident "<*>" 0) [(Equation (50,1) (OpLhs (VariablePattern (Ident "p1" 13)) (Ident "<*>" 0) (VariablePattern (Ident "p2" 13))) (SimpleRhs (50,13) (Variable (QualIdent Nothing (Ident "seq" 14))) [(FunctionDecl (51,8) (Ident "seq" 14) [(Equation (51,8) (FunLhs (Ident "seq" 14) [(VariablePattern (Ident "sentence" 15))]) (SimpleRhs (51,23) (InfixApply (Variable (QualIdent Nothing (Ident "p2" 13))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Apply (Variable (QualIdent Nothing (Ident "p1" 13))) (Variable (QualIdent Nothing (Ident "sentence" 15))))) []))])]))])
+,(TypeSig (55,1) [(Ident ">>>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "token" 0))]) (ArrowType (VariableType (Ident "rep" 0)) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "rep" 0)),(VariableType (Ident "token" 0))]))))
+,(FunctionDecl (56,1) (Ident ">>>" 0) [(Equation (56,1) (ApLhs (OpLhs (VariablePattern (Ident "parser" 17)) (Ident ">>>" 0) (VariablePattern (Ident "repexp" 17))) [(VariablePattern (Ident "rep" 17)),(VariablePattern (Ident "sentence" 17))]) (SimpleRhs (56,36) (InfixApply (Variable (QualIdent Nothing (Ident "attach" 18))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Apply (Variable (QualIdent Nothing (Ident "parser" 17))) (Variable (QualIdent Nothing (Ident "sentence" 17))))) [(FunctionDecl (57,9) (Ident "attach" 18) [(Equation (57,9) (FunLhs (Ident "attach" 18) [(VariablePattern (Ident "rest" 19))]) (GuardedRhs [(CondExpr (57,21) (InfixApply (Variable (QualIdent Nothing (Ident "repexp" 17))) (InfixOp (QualIdent (Just "Prelude") (Ident "=:=" 0))) (Variable (QualIdent Nothing (Ident "rep" 17)))) (Variable (QualIdent Nothing (Ident "rest" 19))))] []))])]))])
+,(TypeSig (63,1) [(Ident "empty" 0)] (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "_" 0))]))
+,(FunctionDecl (64,1) (Ident "empty" 0) [(Equation (64,1) (FunLhs (Ident "empty" 0) [(VariablePattern (Ident "sentence" 21))]) (SimpleRhs (64,18) (Variable (QualIdent Nothing (Ident "sentence" 21))) []))])
+,(TypeSig (67,1) [(Ident "terminal" 0)] (ArrowType (VariableType (Ident "token" 0)) (ConstructorType (QualIdent Nothing (Ident "Parser" 0)) [(VariableType (Ident "token" 0))])))
+,(FunctionDecl (68,1) (Ident "terminal" 0) [(Equation (68,1) (FunLhs (Ident "terminal" 0) [(VariablePattern (Ident "sym" 23)),(ParenPattern (InfixPattern (VariablePattern (Ident "token" 23)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "tokens" 23))))]) (GuardedRhs [(CondExpr (68,29) (InfixApply (Variable (QualIdent Nothing (Ident "sym" 23))) (InfixOp (QualIdent (Just "Prelude") (Ident "=:=" 0))) (Variable (QualIdent Nothing (Ident "token" 23)))) (Variable (QualIdent Nothing (Ident "tokens" 23))))] []))])
+,(TypeSig (72,1) [(Ident "satisfy" 0)] (ArrowType (ArrowType (VariableType (Ident "token" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "token" 0)),(VariableType (Ident "token" 0))])))
+,(FunctionDecl (73,1) (Ident "satisfy" 0) [(Equation (73,1) (FunLhs (Ident "satisfy" 0) [(VariablePattern (Ident "pred" 25)),(VariablePattern (Ident "sym" 25)),(ParenPattern (InfixPattern (VariablePattern (Ident "token" 25)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "tokens" 25))))]) (GuardedRhs [(CondExpr (73,33) (InfixApply (InfixApply (Apply (Variable (QualIdent Nothing (Ident "pred" 25))) (Variable (QualIdent Nothing (Ident "token" 25)))) (InfixOp (QualIdent (Just "Prelude") (Ident "=:=" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "sym" 25))) (InfixOp (QualIdent (Just "Prelude") (Ident "=:=" 0))) (Variable (QualIdent Nothing (Ident "token" 25))))) (Variable (QualIdent Nothing (Ident "tokens" 25))))] []))])
+,(TypeSig (78,1) [(Ident "star" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "rep" 0)),(VariableType (Ident "token" 0))]) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(ListType (VariableType (Ident "rep" 0))),(VariableType (Ident "token" 0))])))
+,(FunctionDecl (79,1) (Ident "star" 0) [(Equation (79,1) (FunLhs (Ident "star" 0) [(VariablePattern (Ident "p" 27))]) (SimpleRhs (79,13) (InfixApply (InfixApply (InfixApply (Apply (Variable (QualIdent Nothing (Ident "p" 27))) (Variable (QualIdent Nothing (Ident "x" 28)))) (InfixOp (QualIdent (Just "Parser") (Ident "<*>" 0))) (Apply (Paren (Apply (Variable (QualIdent (Just "Parser") (Ident "star" 0))) (Variable (QualIdent Nothing (Ident "p" 27))))) (Variable (QualIdent Nothing (Ident "xs" 28))))) (InfixOp (QualIdent (Just "Parser") (Ident ">>>" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 28))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 28)))))) (InfixOp (QualIdent (Just "Parser") (Ident "<||>" 0))) (InfixApply (Variable (QualIdent (Just "Parser") (Ident "empty" 0))) (InfixOp (QualIdent (Just "Parser") (Ident ">>>" 0))) (List []))) [(ExtraVariables (80,54) [(Ident "x" 28),(Ident "xs" 28)])]))])
+,(TypeSig (84,1) [(Ident "some" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(VariableType (Ident "rep" 0)),(VariableType (Ident "token" 0))]) (ConstructorType (QualIdent Nothing (Ident "ParserRep" 0)) [(ListType (VariableType (Ident "rep" 0))),(VariableType (Ident "token" 0))])))
+,(FunctionDecl (85,1) (Ident "some" 0) [(Equation (85,1) (FunLhs (Ident "some" 0) [(VariablePattern (Ident "p" 29))]) (SimpleRhs (85,10) (InfixApply (InfixApply (Apply (Variable (QualIdent Nothing (Ident "p" 29))) (Variable (QualIdent Nothing (Ident "x" 30)))) (InfixOp (QualIdent (Just "Parser") (Ident "<*>" 0))) (Apply (Paren (Apply (Variable (QualIdent (Just "Parser") (Ident "star" 0))) (Variable (QualIdent Nothing (Ident "p" 29))))) (Variable (QualIdent Nothing (Ident "xs" 30))))) (InfixOp (QualIdent (Just "Parser") (Ident ">>>" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 30))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 30)))))) [(ExtraVariables (85,54) [(Ident "x" 30),(Ident "xs" 30)])]))])
+]
diff --git a/src/lib/Curry/Module/.curry/Parser.efc b/src/lib/Curry/Module/.curry/Parser.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Parser.efc
@@ -0,0 +1,1 @@
+Prog "Parser" ["Prelude"] [TypeSyn ((Nothing,Nothing,"Parser","Parser")) Public [0] (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])),TypeSyn ((Nothing,Nothing,"Parser","ParserRep")) Public [0,1] (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1])))] [Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Parser","<|>")) 2 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),2)] (Or (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Parser","<|>._#lambda2")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),1))]) (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Parser","<|>._#lambda3")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),2))]))),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]))),"Parser","<|>._#lambda2")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),2))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]))),"Parser","<|>._#lambda3")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Parser","<||>")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))) (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),1),(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Parser","<||>._#lambda4")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))) (FuncType (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))) (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))))),"Parser","<||>._#lambda4")) 3 Private (FuncType (FuncType (TVar 17) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 18]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 18]))) (FuncType (FuncType (TVar 17) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 18]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 18]))) (FuncType (TVar 17) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 18]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 18]))))) (Rule [(Just (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))),1),(Just (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))),2),(Just (TVar 17),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18])))),"Parser","<|>")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))) (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))),1)),Var ((Just (TVar 17),3))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))) (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))),2)),Var ((Just (TVar 17),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Parser","<*>")) 2 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Parser","<*>.seq.14")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),2))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])))),"Parser","<*>.seq.14")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 23]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 23])) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 23]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 23])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 23]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 23])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]))),"Prelude","$!!")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TVar 1) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))))),"Parser",">>>")) 4 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (FuncType (TVar 1) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),1),(Just (TVar 1),2),(Just (TVar 1),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Parser",">>>.attach.18")) [Var ((Just (TVar 1),3)),Var ((Just (TVar 1),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]])),Func ((Nothing,Just (FuncType (TVar 36) (FuncType (TVar 36) (FuncType (TVar 0) (TVar 0)))),"Parser",">>>.attach.18")) 3 Private (FuncType (TVar 36) (FuncType (TVar 36) (FuncType (TVar 0) (TVar 0)))) (Rule [(Just (TVar 36),1),(Just (TVar 36),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TVar 0) (TVar 0))),"Prelude","cond")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 36) (FuncType (TVar 36) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","=:=")) [Var ((Just (TVar 36),2)),Var ((Just (TVar 36),1))],Var ((Just (TVar 0),3))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Parser","empty")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)))),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Parser","terminal")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","cond")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","=:=")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 0),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Parser","satisfy")) 3 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","cond")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","=:=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 0),4))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []],Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","=:=")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 0),4))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Parser","star")) 1 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),1)] (Free [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Parser","<||>")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Parser",">>>")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Parser","<*>")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),1)),Var ((Just (TVar 0),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Parser","star")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Parser",">>>")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])),"Parser","empty")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []]]))),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Parser","some")) 1 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),1)] (Free [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Parser",">>>")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Parser","<*>")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),1)),Var ((Just (TVar 0),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Parser","star")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]])))] [Op ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Parser","<*>")) InfixrOp 4,Op ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TVar 1) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))))),"Parser",">>>")) InfixrOp 3,Op ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Parser","<|>")) InfixrOp 2,Op ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Parser","<||>")) InfixrOp 2]
diff --git a/src/lib/Curry/Module/.curry/Parser.fcy b/src/lib/Curry/Module/.curry/Parser.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Parser.fcy
@@ -0,0 +1,1 @@
+Prog "Parser" ["Prelude"] [TypeSyn ("Parser","Parser") Public [0] (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])),TypeSyn ("Parser","ParserRep") Public [0,1] (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1])))] [Func ("Parser","<|>") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2] (Or (Comb (FuncPartCall 1) ("Parser","<|>._#lambda2") [Var 1]) (Comb (FuncPartCall 1) ("Parser","<|>._#lambda3") [Var 2]))),Func ("Parser","<|>._#lambda2") 2 Private (FuncType (FuncType (TCons ("Prelude","[]") [TVar 2]) (TCons ("Prelude","[]") [TVar 2])) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TCons ("Prelude","[]") [TVar 2]))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Var 1,Var 2])),Func ("Parser","<|>._#lambda3") 2 Private (FuncType (FuncType (TCons ("Prelude","[]") [TVar 2]) (TCons ("Prelude","[]") [TVar 2])) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TCons ("Prelude","[]") [TVar 2]))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Var 1,Var 2])),Func ("Parser","<||>") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))))) (Rule [1,2] (Comb (FuncPartCall 1) ("Parser","<||>._#lambda4") [Var 1,Var 2])),Func ("Parser","<||>._#lambda4") 3 Private (FuncType (FuncType (TVar 17) (FuncType (TCons ("Prelude","[]") [TVar 18]) (TCons ("Prelude","[]") [TVar 18]))) (FuncType (FuncType (TVar 17) (FuncType (TCons ("Prelude","[]") [TVar 18]) (TCons ("Prelude","[]") [TVar 18]))) (FuncType (TVar 17) (FuncType (TCons ("Prelude","[]") [TVar 18]) (TCons ("Prelude","[]") [TVar 18]))))) (Rule [1,2,3] (Comb FuncCall ("Parser","<|>") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb FuncCall ("Prelude","apply") [Var 2,Var 3]])),Func ("Parser","<*>") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2] (Comb (FuncPartCall 1) ("Parser","<*>.seq.14") [Var 1,Var 2])),Func ("Parser","<*>.seq.14") 3 Private (FuncType (FuncType (TCons ("Prelude","[]") [TVar 23]) (TCons ("Prelude","[]") [TVar 23])) (FuncType (FuncType (TCons ("Prelude","[]") [TVar 23]) (TCons ("Prelude","[]") [TVar 23])) (FuncType (TCons ("Prelude","[]") [TVar 23]) (TCons ("Prelude","[]") [TVar 23])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","$!!") [Var 2,Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("Parser",">>>") 4 Public (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (TVar 1) (FuncType (TVar 1) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("Parser",">>>.attach.18") [Var 3,Var 2],Comb FuncCall ("Prelude","apply") [Var 1,Var 4]])),Func ("Parser",">>>.attach.18") 3 Private (FuncType (TVar 36) (FuncType (TVar 36) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","cond") [Comb FuncCall ("Prelude","=:=") [Var 2,Var 1],Var 3])),Func ("Parser","empty") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Var 1)),Func ("Parser","terminal") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude","cond") [Comb FuncCall ("Prelude","=:=") [Var 1,Var 3],Var 4])])),Func ("Parser","satisfy") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("Prelude","cond") [Comb FuncCall ("Prelude","&") [Comb FuncCall ("Prelude","=:=") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Comb ConsCall ("Prelude","True") []],Comb FuncCall ("Prelude","=:=") [Var 2,Var 4]],Var 5])])),Func ("Parser","star") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1])))) (Rule [1] (Free [2,3] (Comb FuncCall ("Parser","<||>") [Comb (FuncPartCall 2) ("Parser",">>>") [Comb FuncCall ("Parser","<*>") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Parser","star") [Var 1],Var 3]],Comb ConsCall ("Prelude",":") [Var 2,Var 3]],Comb (FuncPartCall 2) ("Parser",">>>") [Comb (FuncPartCall 1) ("Parser","empty") [],Comb ConsCall ("Prelude","[]") []]]))),Func ("Parser","some") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1])))) (Rule [1] (Free [2,3] (Comb (FuncPartCall 2) ("Parser",">>>") [Comb FuncCall ("Parser","<*>") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Parser","star") [Var 1],Var 3]],Comb ConsCall ("Prelude",":") [Var 2,Var 3]])))] [Op ("Parser","<*>") InfixrOp 4,Op ("Parser",">>>") InfixrOp 3,Op ("Parser","<|>") InfixrOp 2,Op ("Parser","<||>") InfixrOp 2]
diff --git a/src/lib/Curry/Module/.curry/Parser.fint b/src/lib/Curry/Module/.curry/Parser.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Parser.fint
@@ -0,0 +1,1 @@
+Prog "Parser" ["Prelude"] [TypeSyn ("Parser","Parser") Public [0] (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])),TypeSyn ("Parser","ParserRep") Public [0,1] (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1])))] [Func ("Parser","<|>") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [] (Var 0)),Func ("Parser","<||>") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))))) (Rule [] (Var 0)),Func ("Parser","<*>") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [] (Var 0)),Func ("Parser",">>>") 4 Public (FuncType (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (FuncType (TVar 1) (FuncType (TVar 1) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))))) (Rule [] (Var 0)),Func ("Parser","empty") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Parser","terminal") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Parser","satisfy") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [] (Var 0)),Func ("Parser","star") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1])))) (Rule [] (Var 0)),Func ("Parser","some") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1])))) (Rule [] (Var 0))] [Op ("Parser","<*>") InfixrOp 4,Op ("Parser",">>>") InfixrOp 3,Op ("Parser","<|>") InfixrOp 2,Op ("Parser","<||>") InfixrOp 2]
diff --git a/src/lib/Curry/Module/.curry/Parser.uacy b/src/lib/Curry/Module/.curry/Parser.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Parser.uacy
@@ -0,0 +1,14 @@
+CurryProg "Parser"
+ ["Prelude"]
+ [CTypeSyn ("Parser","Parser") Public [(0,"token")] (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"token")]) (CTCons ("Prelude","[]") [CTVar (0,"token")])),
+  CTypeSyn ("Parser","ParserRep") Public [(0,"rep"),(1,"token")] (CFuncType (CTVar (0,"rep")) (CTCons ("Parser","Parser") [CTVar (1,"token")]))]
+ [CFunc ("Parser","<*>") 2 Public (CFuncType (CTCons ("Parser","Parser") [CTVar (0,"t")]) (CFuncType (CTCons ("Parser","Parser") [CTVar (0,"t")]) (CTCons ("Parser","Parser") [CTVar (0,"t")]))) (CRules CFlex [CRule [CPVar (0,"p1"),CPVar (1,"p2")] [(CSymbol ("Prelude","success"),CSymbol ("Parser","seq"))] [CLocalFunc (CFunc ("Parser","seq") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"sentence")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!!")) (CVar (1,"p2"))) (CApply (CVar (0,"p1")) (CVar (2,"sentence"))))] []]))]]),
+  CFunc ("Parser","<|>") 2 Public (CFuncType (CTCons ("Parser","Parser") [CTVar (0,"t")]) (CFuncType (CTCons ("Parser","Parser") [CTVar (0,"t")]) (CTCons ("Parser","Parser") [CTVar (0,"t")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"_")] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"sentence")] (CApply (CVar (0,"p")) (CVar (2,"sentence"))))] [],CRule [CPVar (3,"_"),CPVar (4,"q")] [(CSymbol ("Prelude","success"),CLambda [CPVar (5,"sentence")] (CApply (CVar (4,"q")) (CVar (5,"sentence"))))] []]),
+  CFunc ("Parser","<||>") 2 Public (CFuncType (CTCons ("Parser","ParserRep") [CTVar (0,"r"),CTVar (1,"t")]) (CFuncType (CTCons ("Parser","ParserRep") [CTVar (0,"r"),CTVar (1,"t")]) (CTCons ("Parser","ParserRep") [CTVar (0,"r"),CTVar (1,"t")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"q")] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"rep")] (CApply (CApply (CSymbol ("Parser","<|>")) (CApply (CVar (0,"p")) (CVar (2,"rep")))) (CApply (CVar (1,"q")) (CVar (2,"rep")))))] []]),
+  CFunc ("Parser",">>>") 4 Public (CFuncType (CTCons ("Parser","Parser") [CTVar (0,"token")]) (CFuncType (CTVar (1,"rep")) (CTCons ("Parser","ParserRep") [CTVar (1,"rep"),CTVar (0,"token")]))) (CRules CFlex [CRule [CPVar (0,"parser"),CPVar (1,"repexp"),CPVar (2,"rep"),CPVar (3,"sentence")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Parser","attach"))) (CApply (CVar (0,"parser")) (CVar (3,"sentence"))))] [CLocalFunc (CFunc ("Parser","attach") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (4,"rest")] [(CApply (CApply (CSymbol ("Prelude","=:=")) (CVar (1,"repexp"))) (CVar (2,"rep")),CVar (4,"rest"))] []]))]]),
+  CFunc ("Parser","empty") 1 Public (CTCons ("Parser","Parser") [CTVar (0,"_")]) (CRules CFlex [CRule [CPVar (0,"sentence")] [(CSymbol ("Prelude","success"),CVar (0,"sentence"))] []]),
+  CFunc ("Parser","satisfy") 3 Public (CFuncType (CFuncType (CTVar (0,"token")) (CTCons ("Prelude","Bool") [])) (CTCons ("Parser","ParserRep") [CTVar (0,"token"),CTVar (0,"token")])) (CRules CFlex [CRule [CPVar (0,"pred"),CPVar (1,"sym"),CPComb ("Prelude",":") [CPVar (2,"token"),CPVar (3,"tokens")]] [(CApply (CApply (CSymbol ("Prelude","&")) (CApply (CApply (CSymbol ("Prelude","=:=")) (CApply (CVar (0,"pred")) (CVar (2,"token")))) (CSymbol ("Prelude","True")))) (CApply (CApply (CSymbol ("Prelude","=:=")) (CVar (1,"sym"))) (CVar (2,"token"))),CVar (3,"tokens"))] []]),
+  CFunc ("Parser","some") 1 Public (CFuncType (CTCons ("Parser","ParserRep") [CTVar (0,"rep"),CTVar (1,"token")]) (CTCons ("Parser","ParserRep") [CTCons ("Prelude","[]") [CTVar (0,"rep")],CTVar (1,"token")])) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Parser",">>>")) (CApply (CApply (CSymbol ("Parser","<*>")) (CApply (CVar (0,"p")) (CVar (1,"x")))) (CApply (CApply (CSymbol ("Parser","star")) (CVar (0,"p"))) (CVar (2,"xs"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (2,"xs"))))] [CLocalVar (1,"x"),CLocalVar (2,"xs")]]),
+  CFunc ("Parser","star") 1 Public (CFuncType (CTCons ("Parser","ParserRep") [CTVar (0,"rep"),CTVar (1,"token")]) (CTCons ("Parser","ParserRep") [CTCons ("Prelude","[]") [CTVar (0,"rep")],CTVar (1,"token")])) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Parser","<||>")) (CApply (CApply (CSymbol ("Parser",">>>")) (CApply (CApply (CSymbol ("Parser","<*>")) (CApply (CVar (0,"p")) (CVar (1,"x")))) (CApply (CApply (CSymbol ("Parser","star")) (CVar (0,"p"))) (CVar (2,"xs"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (2,"xs"))))) (CApply (CApply (CSymbol ("Parser",">>>")) (CSymbol ("Parser","empty"))) (CSymbol ("Prelude","[]"))))] [CLocalVar (1,"x"),CLocalVar (2,"xs")]]),
+  CFunc ("Parser","terminal") 2 Public (CFuncType (CTVar (0,"token")) (CTCons ("Parser","Parser") [CTVar (0,"token")])) (CRules CFlex [CRule [CPVar (0,"sym"),CPComb ("Prelude",":") [CPVar (1,"token"),CPVar (2,"tokens")]] [(CApply (CApply (CSymbol ("Prelude","=:=")) (CVar (0,"sym"))) (CVar (1,"token")),CVar (2,"tokens"))] []])]
+ [COp ("Parser","<*>") CInfixrOp 4,COp ("Parser",">>>") CInfixrOp 3,COp ("Parser","<||>") CInfixrOp 2,COp ("Parser","<|>") CInfixrOp 2]
diff --git a/src/lib/Curry/Module/.curry/Prelude.acy b/src/lib/Curry/Module/.curry/Prelude.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Prelude.acy
@@ -0,0 +1,168 @@
+CurryProg "Prelude"
+ []
+ [CType ("Prelude","Float") Public [] [],
+  CType ("Prelude","Char") Public [] [],
+  CTypeSyn ("Prelude","String") Public [] (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]),
+  CType ("Prelude","Bool") Public [] [CCons ("Prelude","False") 0 Public [],CCons ("Prelude","True") 0 Public []],
+  CType ("Prelude","Ordering") Public [] [CCons ("Prelude","LT") 0 Public [],CCons ("Prelude","EQ") 0 Public [],CCons ("Prelude","GT") 0 Public []],
+  CType ("Prelude","Nat") Public [] [CCons ("Prelude","IHi") 0 Public [],CCons ("Prelude","O") 1 Public [CTCons ("Prelude","Nat") []],CCons ("Prelude","I") 1 Public [CTCons ("Prelude","Nat") []]],
+  CType ("Prelude","Int") Public [] [CCons ("Prelude","Neg") 1 Public [CTCons ("Prelude","Nat") []],CCons ("Prelude","Zero") 0 Public [],CCons ("Prelude","Pos") 1 Public [CTCons ("Prelude","Nat") []]],
+  CType ("Prelude","Success") Public [] [CCons ("Prelude","Success") 0 Public []],
+  CType ("Prelude","Maybe") Public [(0,"a")] [CCons ("Prelude","Nothing") 0 Public [],CCons ("Prelude","Just") 1 Public [CTVar (0,"a")]],
+  CType ("Prelude","Either") Public [(0,"a"),(1,"b")] [CCons ("Prelude","Left") 1 Public [CTVar (0,"a")],CCons ("Prelude","Right") 1 Public [CTVar (1,"b")]],
+  CType ("Prelude","IO") Public [(0,"_")] [],
+  CType ("Prelude","SearchTree") Public [(0,"a")] [CCons ("Prelude","Fail") 0 Public [],CCons ("Prelude","Value") 1 Public [CTVar (0,"a")],CCons ("Prelude","Choice") 1 Public [CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]],CCons ("Prelude","Suspend") 0 Public []]]
+ [CFunc ("Prelude","!!") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")],CPVar (2,"n")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"n"))) (CLit (CIntc 0)),CVar (0,"x")),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (2,"n"))) (CLit (CIntc 0)),CApply (CApply (CSymbol ("Prelude","!!")) (CVar (1,"xs"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (2,"n"))) (CLit (CIntc 1))))] []]),
+  CFunc ("Prelude","$") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CVar (1,"x")))] []]),
+  CFunc ("Prelude","$!") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "$!"),
+  CFunc ("Prelude","$!!") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "$!!"),
+  CFunc ("Prelude","$#") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "$#"),
+  CFunc ("Prelude","$##") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "$##"),
+  CFunc ("Prelude","&") 2 Public (CFuncType (CTCons ("Prelude","Success") []) (CFuncType (CTCons ("Prelude","Success") []) (CTCons ("Prelude","Success") []))) (CExternal "&"),
+  CFunc ("Prelude","&&") 2 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","True") [],CPVar (0,"x")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPComb ("Prelude","False") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Prelude","&>") 2 Public (CFuncType (CTCons ("Prelude","Success") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"x")] [(CVar (0,"c"),CVar (1,"x"))] []]),
+  CFunc ("Prelude","*") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","Pos") [CPVar (0,"x")],CPComb ("Prelude","Pos") [CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (0,"x"))) (CVar (1,"y"))))] [],CRule [CPComb ("Prelude","Pos") [CPVar (2,"x")],CPComb ("Prelude","Neg") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (2,"x"))) (CVar (3,"y"))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (4,"x")],CPComb ("Prelude","Neg") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (4,"x"))) (CVar (5,"y"))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (6,"x")],CPComb ("Prelude","Pos") [CPVar (7,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (6,"x"))) (CVar (7,"y"))))] [],CRule [CPComb ("Prelude","Zero") [],CPVar (8,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (9,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (10,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] []]),
+  CFunc ("Prelude","*^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") []))) (CRules CFlex [CRule [CPComb ("Prelude","IHi") [],CPVar (0,"y")] [(CSymbol ("Prelude","success"),CVar (0,"y"))] [],CRule [CPComb ("Prelude","I") [CPVar (1,"x")],CPVar (2,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+^")) (CApply (CSymbol ("Prelude","O")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (2,"y"))) (CVar (1,"x"))))) (CVar (2,"y")))] [],CRule [CPComb ("Prelude","O") [CPVar (3,"x")],CPVar (4,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (3,"x"))) (CVar (4,"y"))))] []]),
+  CFunc ("Prelude","+") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","Pos") [CPVar (0,"x")],CPComb ("Prelude","Pos") [CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (0,"x"))) (CVar (1,"y"))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (2,"x")],CPComb ("Prelude","Neg") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (2,"x"))) (CVar (3,"y"))))] [],CRule [CPComb ("Prelude","Pos") [CPVar (4,"x")],CPComb ("Prelude","Neg") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","-^")) (CVar (4,"x"))) (CVar (5,"y")))] [],CRule [CPComb ("Prelude","Neg") [CPVar (6,"x")],CPComb ("Prelude","Pos") [CPVar (7,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","-^")) (CVar (7,"y"))) (CVar (6,"x")))] [],CRule [CPComb ("Prelude","Zero") [],CPVar (8,"x")] [(CSymbol ("Prelude","success"),CVar (8,"x"))] [],CRule [CPAs (10,"x") (CPComb ("Prelude","Pos") [CPVar (9,"_")]),CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CVar (10,"x"))] [],CRule [CPAs (12,"x") (CPComb ("Prelude","Neg") [CPVar (11,"_")]),CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CVar (12,"x"))] []]),
+  CFunc ("Prelude","++") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []]),
+  CFunc ("Prelude","+^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") []))) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPVar (0,"x")],CPComb ("Prelude","O") [CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (0,"x"))) (CVar (1,"y"))))] [],CRule [CPComb ("Prelude","O") [CPVar (2,"x")],CPComb ("Prelude","I") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (2,"x"))) (CVar (3,"y"))))] [],CRule [CPComb ("Prelude","O") [CPVar (4,"x")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CVar (4,"x")))] [],CRule [CPComb ("Prelude","I") [CPVar (5,"x")],CPComb ("Prelude","O") [CPVar (6,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (5,"x"))) (CVar (6,"y"))))] [],CRule [CPComb ("Prelude","I") [CPVar (7,"x")],CPComb ("Prelude","I") [CPVar (8,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CApply (CSymbol ("Prelude","+^")) (CApply (CSymbol ("Prelude","succ")) (CVar (7,"x")))) (CVar (8,"y"))))] [],CRule [CPComb ("Prelude","I") [CPVar (9,"x")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CSymbol ("Prelude","succ")) (CVar (9,"x"))))] [],CRule [CPComb ("Prelude","IHi") [],CPVar (10,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","succ")) (CVar (10,"y")))] []]),
+  CFunc ("Prelude","-") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPComb ("Prelude","Neg") [CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"x"))) (CApply (CSymbol ("Prelude","Pos")) (CVar (1,"y"))))] [],CRule [CPVar (2,"x"),CPComb ("Prelude","Pos") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"x"))) (CApply (CSymbol ("Prelude","Neg")) (CVar (3,"y"))))] [],CRule [CPVar (4,"x"),CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CVar (4,"x"))] []]),
+  CFunc ("Prelude","-^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","IHi") [],CPVar (0,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","inc")) (CApply (CSymbol ("Prelude","Neg")) (CVar (0,"y"))))] [],CRule [CPComb ("Prelude","O") [CPVar (1,"x")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","pred")) (CApply (CSymbol ("Prelude","O")) (CVar (1,"x")))))] [],CRule [CPComb ("Prelude","O") [CPVar (2,"x")],CPComb ("Prelude","O") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","mult2")) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (2,"x"))) (CVar (3,"y"))))] [],CRule [CPComb ("Prelude","O") [CPVar (4,"x")],CPComb ("Prelude","I") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","dec")) (CApply (CSymbol ("Prelude","mult2")) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (4,"x"))) (CVar (5,"y")))))] [],CRule [CPComb ("Prelude","I") [CPVar (6,"x")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (6,"x"))))] [],CRule [CPComb ("Prelude","I") [CPVar (7,"x")],CPComb ("Prelude","O") [CPVar (8,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","inc")) (CApply (CSymbol ("Prelude","mult2")) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (7,"x"))) (CVar (8,"y")))))] [],CRule [CPComb ("Prelude","I") [CPVar (9,"x")],CPComb ("Prelude","I") [CPVar (10,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","mult2")) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (9,"x"))) (CVar (10,"y"))))] []]),
+  CFunc ("Prelude",".") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CFuncType (CTVar (2,"c")) (CTVar (0,"a"))) (CFuncType (CTVar (2,"c")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"x")] (CApply (CVar (0,"f")) (CApply (CVar (1,"g")) (CVar (2,"x")))))] []]),
+  CFunc ("Prelude","/=") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","not")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","<") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y")))) (CSymbol ("Prelude","LT")))] []]),
+  CFunc ("Prelude","<=") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y")))) (CSymbol ("Prelude","GT")))] []]),
+  CFunc ("Prelude","<=^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Prelude","isGT")) (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y")))))] []]),
+  CFunc ("Prelude","<^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","isLT")) (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","=:<=") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") []))) (CExternal "=:<="),
+  CFunc ("Prelude","=:=") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CApply (CApply (CSymbol ("Prelude","===")) (CVar (0,"x"))) (CVar (1,"y")),CSymbol ("Prelude","success"))] []]),
+  CFunc ("Prelude","==") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CExternal "=="),
+  CFunc ("Prelude","===") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CExternal "==="),
+  CFunc ("Prelude",">") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y")))) (CSymbol ("Prelude","GT")))] []]),
+  CFunc ("Prelude",">=") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y")))) (CSymbol ("Prelude","LT")))] []]),
+  CFunc ("Prelude",">=^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Prelude","isLT")) (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y")))))] []]),
+  CFunc ("Prelude",">>") 2 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","IO") [CTVar (1,"b")]) (CTCons ("Prelude","IO") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"a"),CPVar (1,"b")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CVar (0,"a"))) (CApply (CSymbol ("Prelude","const")) (CVar (1,"b"))))] []]),
+  CFunc ("Prelude",">>=") 2 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CTCons ("Prelude","IO") [CTVar (1,"b")]))) (CExternal ">>="),
+  CFunc ("Prelude",">^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","isGT")) (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","?") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"_")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPVar (2,"_"),CPVar (3,"y")] [(CSymbol ("Prelude","success"),CVar (3,"y"))] []]),
+  CFunc ("Prelude","PEVAL") 1 Public (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","all") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","and"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"p"))))] []]),
+  CFunc ("Prelude","allValuesB") 1 Public (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"st")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","unfoldOrs")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"st"))) (CSymbol ("Prelude","[]"))))] [CLocalFunc (CFunc ("Prelude","partition") 2 Private (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]]))) (CRules CFlex [CRule [CPComb ("Prelude","Value") [CPVar (1,"x")],CPVar (2,"y")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"vs"),CPVar (4,"ors")]) (CVar (2,"y")) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (3,"vs")))) (CVar (4,"ors"))))] [],CRule [CPComb ("Prelude","Choice") [CPVar (5,"xs")],CPVar (6,"y")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (7,"vs"),CPVar (8,"ors")]) (CVar (6,"y")) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (7,"vs"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (5,"xs"))) (CVar (8,"ors")))))] [],CRule [CPComb ("Prelude","Fail") [],CPVar (9,"y")] [(CSymbol ("Prelude","success"),CVar (9,"y"))] [],CRule [CPComb ("Prelude","Suspend") [],CPVar (10,"y")] [(CSymbol ("Prelude","success"),CVar (10,"y"))] []])),CLocalFunc (CFunc ("Prelude","unfoldOrs") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"vals"),CPVar (4,"ors")]) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","partition"))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (2,"xs")))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (3,"vals"))) (CApply (CSymbol ("Prelude","unfoldOrs")) (CVar (4,"ors")))))] []]))]]),
+  CFunc ("Prelude","allValuesD") 1 Public (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","Value") [CPVar (0,"x")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude","Fail") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Suspend") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Choice") [CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("Prelude","allValuesD"))) (CVar (1,"xs")))] []]),
+  CFunc ("Prelude","and") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","&&"))) (CSymbol ("Prelude","True")))] []]),
+  CFunc ("Prelude","any") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","or"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"p"))))] []]),
+  CFunc ("Prelude","appendFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_appendFile"))) (CVar (0,"fn")))) (CVar (1,"s")))] []]),
+  CFunc ("Prelude","apply") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "apply"),
+  CFunc ("Prelude","break") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","span")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CVar (0,"p"))))] []]),
+  CFunc ("Prelude","catchFail") 2 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CExternal "catchFail"),
+  CFunc ("Prelude","chr") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Char") [])) (CRules CFlex [CRule [CPVar (0,"i")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_chr"))) (CVar (0,"i")))] []]),
+  CFunc ("Prelude","cmpNat") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","EQ"))] [],CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","O") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","I") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","O") [CPVar (2,"_")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","I") [CPVar (3,"_")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","O") [CPVar (4,"x")],CPComb ("Prelude","O") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (4,"x"))) (CVar (5,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (6,"x")],CPComb ("Prelude","I") [CPVar (7,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (6,"x"))) (CVar (7,"y")))] [],CRule [CPComb ("Prelude","O") [CPVar (8,"x")],CPComb ("Prelude","I") [CPVar (9,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (8,"x"))) (CVar (9,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (10,"x")],CPComb ("Prelude","O") [CPVar (11,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (10,"x"))) (CVar (11,"y")))] []]),
+  CFunc ("Prelude","cmpNatGT") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","O") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","I") [CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","O") [CPVar (3,"x")],CPComb ("Prelude","O") [CPVar (4,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (3,"x"))) (CVar (4,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (5,"x")],CPComb ("Prelude","I") [CPVar (6,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (5,"x"))) (CVar (6,"y")))] [],CRule [CPComb ("Prelude","O") [CPVar (7,"x")],CPComb ("Prelude","I") [CPVar (8,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (7,"x"))) (CVar (8,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (9,"x")],CPComb ("Prelude","O") [CPVar (10,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (9,"x"))) (CVar (10,"y")))] []]),
+  CFunc ("Prelude","cmpNatLT") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPComb ("Prelude","IHi") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","O") [CPVar (1,"_")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","I") [CPVar (2,"_")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","O") [CPVar (3,"x")],CPComb ("Prelude","O") [CPVar (4,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (3,"x"))) (CVar (4,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (5,"x")],CPComb ("Prelude","I") [CPVar (6,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (5,"x"))) (CVar (6,"y")))] [],CRule [CPComb ("Prelude","O") [CPVar (7,"x")],CPComb ("Prelude","I") [CPVar (8,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (7,"x"))) (CVar (8,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (9,"x")],CPComb ("Prelude","O") [CPVar (10,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (9,"x"))) (CVar (10,"y")))] []]),
+  CFunc ("Prelude","compare") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPComb ("Prelude","Zero") [],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","EQ"))] [],CRule [CPComb ("Prelude","Zero") [],CPComb ("Prelude","Pos") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","Zero") [],CPComb ("Prelude","Neg") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (2,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (3,"x")],CPComb ("Prelude","Pos") [CPVar (4,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (3,"x"))) (CVar (4,"y")))] [],CRule [CPComb ("Prelude","Pos") [CPVar (5,"_")],CPComb ("Prelude","Neg") [CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (7,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (8,"_")],CPComb ("Prelude","Pos") [CPVar (9,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (10,"x")],CPComb ("Prelude","Neg") [CPVar (11,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (11,"y"))) (CVar (10,"x")))] []]),
+  CFunc ("Prelude","concat") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","++"))) (CSymbol ("Prelude","[]"))) (CVar (0,"l")))] []]),
+  CFunc ("Prelude","concatMap") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","concat"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Prelude","cond") 2 Public (CFuncType (CTCons ("Prelude","Success") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "cond"),
+  CFunc ("Prelude","const") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"_")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","curry") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (2,"c"))) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"a"),CPVar (2,"b")] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"a"))) (CVar (2,"b"))))] []]),
+  CFunc ("Prelude","dec") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CSymbol ("Prelude","IHi")))] [],CRule [CPComb ("Prelude","Neg") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CSymbol ("Prelude","succ")) (CVar (0,"n"))))] [],CRule [CPComb ("Prelude","Pos") [CPComb ("Prelude","IHi") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Pos") [CPComb ("Prelude","O") [CPVar (1,"n")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","pred")) (CApply (CSymbol ("Prelude","O")) (CVar (1,"n")))))] [],CRule [CPComb ("Prelude","Pos") [CPComb ("Prelude","I") [CPVar (2,"n")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (2,"n"))))] []]),
+  CFunc ("Prelude","div") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","fst")) (CApply (CApply (CSymbol ("Prelude","divmod")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","div2") 1 Public (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") [])) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPVar (0,"x")]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPComb ("Prelude","I") [CPVar (1,"x")]] [(CSymbol ("Prelude","success"),CVar (1,"x"))] []]),
+  CFunc ("Prelude","divmod") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPComb ("Prelude","Zero") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","Zero"))) (CSymbol ("Prelude","Zero")))] [],CRule [CPComb ("Prelude","Pos") [CPVar (1,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '0'))) (CSymbol ("Prelude","[]"))))))))))))))))] [],CRule [CPComb ("Prelude","Pos") [CPVar (2,"x")],CPComb ("Prelude","Pos") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","divmodNat")) (CVar (2,"x"))) (CVar (3,"y")))] [],CRule [CPComb ("Prelude","Pos") [CPVar (4,"x")],CPComb ("Prelude","Neg") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (6,"d"),CPVar (7,"m")]) (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CVar (4,"x"))) (CVar (5,"y"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","negate")) (CVar (6,"d")))) (CVar (7,"m"))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (8,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '0'))) (CSymbol ("Prelude","[]"))))))))))))))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (9,"x")],CPComb ("Prelude","Pos") [CPVar (10,"y")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (11,"d"),CPVar (12,"m")]) (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CVar (9,"x"))) (CVar (10,"y"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","negate")) (CVar (11,"d")))) (CApply (CSymbol ("Prelude","negate")) (CVar (12,"m")))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (13,"x")],CPComb ("Prelude","Neg") [CPVar (14,"y")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (15,"d"),CPVar (16,"m")]) (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CVar (13,"x"))) (CVar (14,"y"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (15,"d"))) (CApply (CSymbol ("Prelude","negate")) (CVar (16,"m")))))] []]),
+  CFunc ("Prelude","divmodNat") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"y"))) (CSymbol ("Prelude","IHi")),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CVar (0,"x")))) (CSymbol ("Prelude","Zero"))),(CSymbol ("Prelude","otherwise"),CCase (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","EQ") []) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))) (CSymbol ("Prelude","Zero"))),CBranch (CPComb ("Prelude","LT") []) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","Zero"))) (CApply (CSymbol ("Prelude","Pos")) (CVar (0,"x")))),CBranch (CPComb ("Prelude","GT") []) (CCase (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CApply (CSymbol ("Prelude","div2")) (CVar (0,"x")))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Zero") [],CPVar (2,"_")]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (0,"x"))) (CVar (1,"y")))),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Pos") [CPVar (3,"d")],CPComb ("Prelude","Zero") []]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (3,"d"))))) (CApply (CSymbol ("Prelude","mod2")) (CVar (0,"x")))),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Pos") [CPVar (4,"d")],CPComb ("Prelude","Pos") [CPVar (5,"m")]]) (CCase (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CApply (CApply (CSymbol ("Prelude","shift")) (CVar (0,"x"))) (CVar (5,"m")))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Zero") [],CPVar (6,"m'")]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (4,"d"))))) (CVar (6,"m'"))),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Pos") [CPVar (7,"d'")],CPVar (8,"m'")]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CApply (CApply (CSymbol ("Prelude","+^")) (CApply (CSymbol ("Prelude","O")) (CVar (4,"d")))) (CVar (7,"d'"))))) (CVar (8,"m'")))])])])] [CLocalFunc (CFunc ("Prelude","shift") 2 Private (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") []))) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPVar (2,"_")],CPVar (3,"n")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CVar (3,"n")))] [],CRule [CPComb ("Prelude","I") [CPVar (4,"_")],CPVar (5,"n")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CVar (5,"n")))] []]))]]),
+  CFunc ("Prelude","doSolve") 1 Public (CFuncType (CTCons ("Prelude","Success") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"constraint")] [(CVar (0,"constraint"),CSymbol ("Prelude","done"))] []]),
+  CFunc ("Prelude","done") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()")))] []]),
+  CFunc ("Prelude","drop") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CVar (1,"l"))) (CApply (CApply (CSymbol ("Prelude","dropp")) (CVar (0,"n"))) (CVar (1,"l"))))] [CLocalFunc (CFunc ("Prelude","dropp") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (3,"m"),CPComb ("Prelude",":") [CPVar (4,"_"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","drop")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"m"))) (CLit (CIntc 1)))) (CVar (5,"xs")))] []]))]]),
+  CFunc ("Prelude","dropWhile") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (1,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CVar (1,"p"))) (CVar (3,"xs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))] []]),
+  CFunc ("Prelude","either") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CFuncType (CTVar (2,"c")) (CTVar (1,"b"))) (CFuncType (CTCons ("Prelude","Either") [CTVar (0,"a"),CTVar (2,"c")]) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"_"),CPComb ("Prelude","Left") [CPVar (2,"x")]] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CVar (2,"x")))] [],CRule [CPVar (3,"_"),CPVar (4,"g"),CPComb ("Prelude","Right") [CPVar (5,"x")]] [(CSymbol ("Prelude","success"),CApply (CVar (4,"g")) (CVar (5,"x")))] []]),
+  CFunc ("Prelude","elem") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","any")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]),
+  CFunc ("Prelude","ensureSpine") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Prelude","ensureList"))) (CVar (0,"x0"))))] [CLocalFunc (CFunc ("Prelude","ensureList") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CApply (CSymbol ("Prelude","ensureSpine")) (CVar (1,"xs"))))] []]))]]),
+  CFunc ("Prelude","enumFrom") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"n"))) (CApply (CSymbol ("Prelude","enumFrom")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"n"))) (CLit (CIntc 1)))))] []]),
+  CFunc ("Prelude","enumFromThen") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"n1"),CPVar (1,"n2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","iterate")) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"n2"))) (CVar (0,"n1")))) (CVar (2,"x0"))))) (CVar (0,"n1")))] []]),
+  CFunc ("Prelude","enumFromThenTo") 3 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])))) (CRules CFlex [CRule [CPVar (0,"n1"),CPVar (1,"n2"),CPVar (2,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","takeWhile")) (CSymbol ("Prelude","p"))) (CApply (CApply (CSymbol ("Prelude","enumFromThen")) (CVar (0,"n1"))) (CVar (1,"n2"))))] [CLocalFunc (CFunc ("Prelude","p") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (3,"x")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (1,"n2"))) (CVar (0,"n1")),CApply (CApply (CSymbol ("Prelude","<=")) (CVar (3,"x"))) (CVar (2,"m"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",">=")) (CVar (3,"x"))) (CVar (2,"m")))] []]))]]),
+  CFunc ("Prelude","enumFromTo") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (0,"n"))) (CVar (1,"m")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"n"))) (CApply (CApply (CSymbol ("Prelude","enumFromTo")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"n"))) (CLit (CIntc 1)))) (CVar (1,"m")))))] []]),
+  CFunc ("Prelude","error") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_error"))) (CVar (0,"s")))] []]),
+  CFunc ("Prelude","failed") 0 Public (CTVar (0,"a")) (CExternal "failed"),
+  CFunc ("Prelude","filter") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (1,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CVar (1,"p"))) (CVar (3,"xs"))))) (CApply (CApply (CSymbol ("Prelude","filter")) (CVar (1,"p"))) (CVar (3,"xs"))))] []]),
+  CFunc ("Prelude","flip") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (0,"a")) (CTVar (2,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"f")) (CVar (2,"y"))) (CVar (1,"x")))] []]),
+  CFunc ("Prelude","foldl") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (0,"a")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"z"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CVar (1,"z"))] [],CRule [CPVar (2,"f"),CPVar (3,"z"),CPComb ("Prelude",":") [CPVar (4,"x"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CVar (2,"f"))) (CApply (CApply (CVar (2,"f")) (CVar (3,"z"))) (CVar (4,"x")))) (CVar (5,"xs")))] []]),
+  CFunc ("Prelude","foldl1") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"xs")))] []]),
+  CFunc ("Prelude","foldr") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"z"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CVar (1,"z"))] [],CRule [CPVar (2,"f"),CPVar (3,"z"),CPComb ("Prelude",":") [CPVar (4,"x"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (2,"f")) (CVar (4,"x"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CVar (2,"f"))) (CVar (3,"z"))) (CVar (5,"xs"))))] []]),
+  CFunc ("Prelude","foldr1") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude",":") [CPVar (1,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (1,"x"))] [],CRule [CPVar (2,"f"),CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (2,"f")) (CVar (3,"x1"))) (CApply (CApply (CSymbol ("Prelude","foldr1")) (CVar (2,"f"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x2"))) (CVar (5,"xs")))))] []]),
+  CFunc ("Prelude","fst") 1 Public (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"x"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","getChar") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Char") []]) (CExternal "getChar"),
+  CFunc ("Prelude","getLine") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (0,"c")) (CSymbol ("Prelude","getChar")),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc '\n')))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))) (CDoExpr [CSPat (CPVar (1,"cs")) (CSymbol ("Prelude","getLine")),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"c"))) (CVar (1,"cs"))))]))])] []]),
+  CFunc ("Prelude","getSearchTree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]])) (CExternal "getSearchTree"),
+  CFunc ("Prelude","head") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","id") 1 Public (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","if_then_else") 3 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"b"),CPVar (1,"t"),CPVar (2,"f")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"b")) [CBranch (CPComb ("Prelude","True") []) (CVar (1,"t")),CBranch (CPComb ("Prelude","False") []) (CVar (2,"f"))])] []]),
+  CFunc ("Prelude","inc") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))] [],CRule [CPComb ("Prelude","Pos") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","succ")) (CVar (0,"n"))))] [],CRule [CPComb ("Prelude","Neg") [CPComb ("Prelude","IHi") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Neg") [CPComb ("Prelude","O") [CPVar (1,"n")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CSymbol ("Prelude","pred")) (CApply (CSymbol ("Prelude","O")) (CVar (1,"n")))))] [],CRule [CPComb ("Prelude","Neg") [CPComb ("Prelude","I") [CPVar (2,"n")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CSymbol ("Prelude","O")) (CVar (2,"n"))))] []]),
+  CFunc ("Prelude","inject") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") [])) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") [])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") [])))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"p")] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"x")] (CApply (CApply (CSymbol ("Prelude","&")) (CApply (CVar (1,"p")) (CVar (2,"x")))) (CApply (CVar (0,"g")) (CVar (2,"x")))))] []]),
+  CFunc ("Prelude","isEQ") 1 Public (CFuncType (CTCons ("Prelude","Ordering") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","LT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","GT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","EQ") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] []]),
+  CFunc ("Prelude","isGT") 1 Public (CFuncType (CTCons ("Prelude","Ordering") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","LT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","GT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","EQ") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Prelude","isLT") 1 Public (CFuncType (CTCons ("Prelude","Ordering") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","LT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","GT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","EQ") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Prelude","iterate") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Prelude","iterate")) (CVar (0,"f"))) (CApply (CVar (0,"f")) (CVar (1,"x")))))] []]),
+  CFunc ("Prelude","length") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"_"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CLit (CIntc 1))) (CApply (CSymbol ("Prelude","length")) (CVar (1,"xs"))))] []]),
+  CFunc ("Prelude","lines") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"l"),CPVar (3,"xs_l")]) (CApply (CSymbol ("Prelude","splitline")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (1,"xs")))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"l"))) (CApply (CSymbol ("Prelude","lines")) (CVar (3,"xs_l")))))] [CLocalFunc (CFunc ("Prelude","splitline") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CLit (CCharc '\n')))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CVar (3,"cs")))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ds"),CPVar (5,"es")]) (CApply (CSymbol ("Prelude","splitline")) (CVar (3,"cs"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"c"))) (CVar (4,"ds")))) (CVar (5,"es")))))] []]))]]),
+  CFunc ("Prelude","lookup") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","Maybe") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPVar (1,"k"),CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"x"),CPVar (3,"y")],CPVar (4,"xys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"k"))) (CVar (2,"x")),CApply (CSymbol ("Prelude","Just")) (CVar (3,"y"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","lookup")) (CVar (1,"k"))) (CVar (4,"xys")))] []]),
+  CFunc ("Prelude","map") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"f"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CVar (1,"f")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude","map")) (CVar (1,"f"))) (CVar (3,"xs"))))] []]),
+  CFunc ("Prelude","mapIO") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","sequenceIO"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Prelude","mapIO_") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","sequenceIO_"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Prelude","max") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","LT") []) (CVar (1,"y")),CBranch (CPVar (2,"_")) (CVar (0,"x"))])] []]),
+  CFunc ("Prelude","maybe") 3 Public (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (0,"a"))) (CFuncType (CTCons ("Prelude","Maybe") [CTVar (1,"b")]) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"_"),CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CVar (0,"n"))] [],CRule [CPVar (2,"_"),CPVar (3,"f"),CPComb ("Prelude","Just") [CPVar (4,"x")]] [(CSymbol ("Prelude","success"),CApply (CVar (3,"f")) (CVar (4,"x")))] []]),
+  CFunc ("Prelude","min") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","GT") []) (CVar (1,"y")),CBranch (CPVar (2,"_")) (CVar (0,"x"))])] []]),
+  CFunc ("Prelude","mod") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","snd")) (CApply (CApply (CSymbol ("Prelude","divmod")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","mod2") 1 Public (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))] [],CRule [CPComb ("Prelude","O") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","I") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))] []]),
+  CFunc ("Prelude","mult2") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","Pos") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (0,"n"))))] [],CRule [CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (1,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CSymbol ("Prelude","O")) (CVar (1,"n"))))] []]),
+  CFunc ("Prelude","negate") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (0,"x")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CVar (0,"x")))] [],CRule [CPComb ("Prelude","Neg") [CPVar (1,"x")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CVar (1,"x")))] []]),
+  CFunc ("Prelude","not") 1 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","True") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","False") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] []]),
+  CFunc ("Prelude","notElem") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","all")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]),
+  CFunc ("Prelude","null") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"_"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Prelude","or") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","||"))) (CSymbol ("Prelude","False")))] []]),
+  CFunc ("Prelude","ord") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_ord"))) (CVar (0,"c")))] []]),
+  CFunc ("Prelude","otherwise") 0 Public (CTCons ("Prelude","Bool") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] []]),
+  CFunc ("Prelude","pred") 1 Public (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") [])) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPComb ("Prelude","IHi") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","IHi"))] [],CRule [CPComb ("Prelude","O") [CPAs (1,"x") (CPComb ("Prelude","O") [CPVar (0,"_")])]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CApply (CSymbol ("Prelude","pred")) (CVar (1,"x"))))] [],CRule [CPComb ("Prelude","O") [CPComb ("Prelude","I") [CPVar (2,"x")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CApply (CSymbol ("Prelude","O")) (CVar (2,"x"))))] [],CRule [CPComb ("Prelude","I") [CPVar (3,"x")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CVar (3,"x")))] []]),
+  CFunc ("Prelude","prim_appendFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_appendFile"),
+  CFunc ("Prelude","prim_chr") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Char") [])) (CExternal "prim_chr"),
+  CFunc ("Prelude","prim_error") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (0,"a"))) (CExternal "prim_error"),
+  CFunc ("Prelude","prim_ord") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Int") [])) (CExternal "prim_ord"),
+  CFunc ("Prelude","prim_putChar") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_putChar"),
+  CFunc ("Prelude","prim_readFile") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CExternal "prim_readFile"),
+  CFunc ("Prelude","prim_show") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CExternal "prim_show"),
+  CFunc ("Prelude","prim_writeFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_writeFile"),
+  CFunc ("Prelude","print") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"t")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","putStrLn")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"t"))))] []]),
+  CFunc ("Prelude","putChar") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_putChar"))) (CVar (0,"c")))] []]),
+  CFunc ("Prelude","putStr") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","done"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putChar")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","putStr")) (CVar (1,"cs"))))] []]),
+  CFunc ("Prelude","putStrLn") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"cs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putStr")) (CVar (0,"cs")))) (CApply (CSymbol ("Prelude","putChar")) (CLit (CCharc '\n'))))] []]),
+  CFunc ("Prelude","readFile") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_readFile"))) (CVar (0,"s")))] []]),
+  CFunc ("Prelude","repeat") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CApply (CSymbol ("Prelude","repeat")) (CVar (0,"x"))))] []]),
+  CFunc ("Prelude","replicate") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","take")) (CVar (0,"n"))) (CApply (CSymbol ("Prelude","repeat")) (CVar (1,"x"))))] []]),
+  CFunc ("Prelude","return") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "return"),
+  CFunc ("Prelude","reverse") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldl")) (CApply (CSymbol ("Prelude","flip")) (CSymbol ("Prelude",":")))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Prelude","seq") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!")) (CApply (CSymbol ("Prelude","const")) (CVar (1,"y")))) (CVar (0,"x")))] []]),
+  CFunc ("Prelude","sequenceIO") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","IO") [CTVar (0,"a")]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"cs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"x")) (CVar (0,"c")),CSPat (CPVar (3,"xs")) (CApply (CSymbol ("Prelude","sequenceIO")) (CVar (1,"cs"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))])] []]),
+  CFunc ("Prelude","sequenceIO_") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","IO") [CTVar (0,"a")]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude",">>"))) (CSymbol ("Prelude","done")))] []]),
+  CFunc ("Prelude","show") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_show"))) (CVar (0,"s")))] []]),
+  CFunc ("Prelude","snd") 1 Public (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (1,"b"))) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"_"),CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CVar (1,"y"))] []]),
+  CFunc ("Prelude","span") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CApply (CVar (1,"p")) (CVar (2,"x")),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ys"),CPVar (5,"zs")]) (CApply (CApply (CSymbol ("Prelude","span")) (CVar (1,"p"))) (CVar (3,"xs"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (4,"ys")))) (CVar (5,"zs")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))] []]),
+  CFunc ("Prelude","splitAt") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CVar (1,"l")))) (CApply (CApply (CSymbol ("Prelude","splitAtp")) (CVar (0,"n"))) (CVar (1,"l"))))] [CLocalFunc (CFunc ("Prelude","splitAtp") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (3,"m"),CPComb ("Prelude",":") [CPVar (4,"x"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (6,"ys"),CPVar (7,"zs")]) (CApply (CApply (CSymbol ("Prelude","splitAt")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"m"))) (CLit (CIntc 1)))) (CVar (5,"xs"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x"))) (CVar (6,"ys")))) (CVar (7,"zs"))))] []]))]]),
+  CFunc ("Prelude","succ") 1 Public (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") [])) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPVar (0,"bs")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CVar (0,"bs")))] [],CRule [CPComb ("Prelude","I") [CPVar (1,"bs")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CSymbol ("Prelude","succ")) (CVar (1,"bs"))))] [],CRule [CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CSymbol ("Prelude","IHi")))] []]),
+  CFunc ("Prelude","success") 0 Public (CTCons ("Prelude","Success") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Success"))] []]),
+  CFunc ("Prelude","tail") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"_"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CVar (1,"xs"))] []]),
+  CFunc ("Prelude","take") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","Neg") [CPVar (0,"_")],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Zero") [],CPVar (2,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (3,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (4,"n")],CPComb ("Prelude",":") [CPVar (5,"x"),CPVar (6,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x"))) (CApply (CApply (CSymbol ("Prelude","take")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","Pos")) (CVar (4,"n")))) (CLit (CIntc 1)))) (CVar (6,"xs"))))] []]),
+  CFunc ("Prelude","takeWhile") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (1,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","takeWhile")) (CVar (1,"p"))) (CVar (3,"xs"))))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Prelude","uncurry") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (2,"c")))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("Prelude","(,)") [CPVar (1,"a"),CPVar (2,"b")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"f")) (CVar (1,"a"))) (CVar (2,"b")))] []]),
+  CFunc ("Prelude","unknown") 0 Public (CTVar (0,"a")) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLetDecl [CLocalVar (0,"x")] (CVar (0,"x")))] []]),
+  CFunc ("Prelude","unlines") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"ls")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"x0"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CVar (0,"ls")))] []]),
+  CFunc ("Prelude","until") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"f"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (0,"p")) (CVar (2,"x")))) (CVar (2,"x"))) (CApply (CApply (CApply (CSymbol ("Prelude","until")) (CVar (0,"p"))) (CVar (1,"f"))) (CApply (CVar (1,"f")) (CVar (2,"x")))))] []]),
+  CFunc ("Prelude","unwords") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"ws")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"ws"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude","foldr1")) (CLambda [CPVar (1,"w"),CPVar (2,"s")] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"w"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CVar (2,"s")))))) (CVar (0,"ws"))))] []]),
+  CFunc ("Prelude","unzip") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (0,"x"),CPVar (1,"y")],CPVar (2,"ps")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (3,"xs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"y"))) (CVar (4,"ys"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"xs"),CPVar (4,"ys")]) (CApply (CSymbol ("Prelude","unzip")) (CVar (2,"ps"))) []]]),
+  CFunc ("Prelude","unzip3") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTVar (0,"a"),CTVar (1,"b"),CTVar (2,"c")]]) (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (1,"b")],CTCons ("Prelude","[]") [CTVar (2,"c")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","(,,)") [CPVar (0,"x"),CPVar (1,"y"),CPVar (2,"z")],CPVar (3,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (4,"xs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"y"))) (CVar (5,"ys")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"z"))) (CVar (6,"zs"))))] [CLocalPat (CPComb ("Prelude","(,,)") [CPVar (4,"xs"),CPVar (5,"ys"),CPVar (6,"zs")]) (CApply (CSymbol ("Prelude","unzip3")) (CVar (3,"ts"))) []]]),
+  CFunc ("Prelude","words") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (1,"s1")) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CSymbol ("Prelude","isSpace"))) (CVar (0,"s"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"s1"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]"))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"w"),CPVar (3,"s2")]) (CApply (CApply (CSymbol ("Prelude","break")) (CSymbol ("Prelude","isSpace"))) (CVar (1,"s1"))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"w"))) (CApply (CSymbol ("Prelude","words")) (CVar (3,"s2")))))))] [CLocalFunc (CFunc ("Prelude","isSpace") 1 Private (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (1,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc ' ')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '\t')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '\n')))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '\r'))))))] []]))]]),
+  CFunc ("Prelude","writeFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_writeFile"))) (CVar (0,"fn")))) (CVar (1,"s")))] []]),
+  CFunc ("Prelude","zip") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude",":") [CPVar (5,"y"),CPVar (6,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"x"))) (CVar (5,"y")))) (CApply (CApply (CSymbol ("Prelude","zip")) (CVar (4,"xs"))) (CVar (6,"ys"))))] []]),
+  CFunc ("Prelude","zip3") 3 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (2,"c")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTVar (0,"a"),CTVar (1,"b"),CTVar (2,"c")]])))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_"),CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")],CPComb ("Prelude","[]") [],CPVar (4,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"_")],CPComb ("Prelude",":") [CPVar (7,"_"),CPVar (8,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (9,"x"),CPVar (10,"xs")],CPComb ("Prelude",":") [CPVar (11,"y"),CPVar (12,"ys")],CPComb ("Prelude",":") [CPVar (13,"z"),CPVar (14,"zs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (9,"x"))) (CVar (11,"y"))) (CVar (13,"z")))) (CApply (CApply (CApply (CSymbol ("Prelude","zip3")) (CVar (10,"xs"))) (CVar (12,"ys"))) (CVar (14,"zs"))))] []]),
+  CFunc ("Prelude","zipWith") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (2,"c")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"_"),CPVar (4,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (5,"f"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPComb ("Prelude",":") [CPVar (8,"y"),CPVar (9,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CVar (5,"f")) (CVar (6,"x"))) (CVar (8,"y")))) (CApply (CApply (CApply (CSymbol ("Prelude","zipWith")) (CVar (5,"f"))) (CVar (7,"xs"))) (CVar (9,"ys"))))] []]),
+  CFunc ("Prelude","zipWith3") 4 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTVar (3,"d"))))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (2,"c")]) (CTCons ("Prelude","[]") [CTVar (3,"d")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_"),CPVar (2,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (3,"_"),CPComb ("Prelude",":") [CPVar (4,"_"),CPVar (5,"_")],CPComb ("Prelude","[]") [],CPVar (6,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (7,"_"),CPComb ("Prelude",":") [CPVar (8,"_"),CPVar (9,"_")],CPComb ("Prelude",":") [CPVar (10,"_"),CPVar (11,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (12,"f"),CPComb ("Prelude",":") [CPVar (13,"x"),CPVar (14,"xs")],CPComb ("Prelude",":") [CPVar (15,"y"),CPVar (16,"ys")],CPComb ("Prelude",":") [CPVar (17,"z"),CPVar (18,"zs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CVar (12,"f")) (CVar (13,"x"))) (CVar (15,"y"))) (CVar (17,"z")))) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","zipWith3")) (CVar (12,"f"))) (CVar (14,"xs"))) (CVar (16,"ys"))) (CVar (18,"zs"))))] []]),
+  CFunc ("Prelude","||") 2 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","True") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","False") [],CPVar (1,"x")] [(CSymbol ("Prelude","success"),CVar (1,"x"))] []])]
+ [COp ("Prelude","!!") CInfixlOp 9,COp ("Prelude",".") CInfixrOp 9,COp ("Prelude","mod") CInfixlOp 7,COp ("Prelude","div") CInfixlOp 7,COp ("Prelude","*^") CInfixlOp 7,COp ("Prelude","*") CInfixlOp 7,COp ("Prelude","-^") CInfixlOp 6,COp ("Prelude","-") CInfixlOp 6,COp ("Prelude","+^") CInfixlOp 6,COp ("Prelude","+") CInfixlOp 6,COp ("Prelude","++") CInfixrOp 5,COp ("Prelude",">=^") CInfixOp 4,COp ("Prelude",">^") CInfixOp 4,COp ("Prelude","<=^") CInfixOp 4,COp ("Prelude","<^") CInfixOp 4,COp ("Prelude","=:<=") CInfixOp 4,COp ("Prelude",">=") CInfixOp 4,COp ("Prelude","<=") CInfixOp 4,COp ("Prelude",">") CInfixOp 4,COp ("Prelude","<") CInfixOp 4,COp ("Prelude","/=") CInfixOp 4,COp ("Prelude","===") CInfixOp 4,COp ("Prelude","==") CInfixOp 4,COp ("Prelude","=:=") CInfixOp 4,COp ("Prelude","notElem") CInfixOp 4,COp ("Prelude","elem") CInfixOp 4,COp ("Prelude","&&") CInfixrOp 3,COp ("Prelude","||") CInfixrOp 2,COp ("Prelude",">>=") CInfixlOp 1,COp ("Prelude",">>") CInfixlOp 1,COp ("Prelude","?") CInfixrOp 0,COp ("Prelude","&>") CInfixrOp 0,COp ("Prelude","&") CInfixrOp 0,COp ("Prelude","seq") CInfixrOp 0,COp ("Prelude","$##") CInfixrOp 0,COp ("Prelude","$#") CInfixrOp 0,COp ("Prelude","$!!") CInfixrOp 0,COp ("Prelude","$!") CInfixrOp 0,COp ("Prelude","$") CInfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/Prelude.cy b/src/lib/Curry/Module/.curry/Prelude.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Prelude.cy
@@ -0,0 +1,323 @@
+Module "Prelude"
+Nothing
+[(DataDecl (27,1) (Ident "Float" 0) [] [])
+,(DataDecl (28,1) (Ident "Char" 0) [] [])
+,(TypeDecl (29,1) (Ident "String" 0) [] (ListType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])))
+,(DataDecl (114,1) (Ident "Bool" 0) [] [(ConstrDecl (114,13) [] (Ident "False" 0) []),(ConstrDecl (114,21) [] (Ident "True" 0) [])])
+,(DataDecl (145,1) (Ident "Ordering" 0) [] [(ConstrDecl (145,17) [] (Ident "LT" 0) []),(ConstrDecl (145,22) [] (Ident "EQ" 0) []),(ConstrDecl (145,27) [] (Ident "GT" 0) [])])
+,(DataDecl (509,1) (Ident "Nat" 0) [] [(ConstrDecl (509,12) [] (Ident "IHi" 0) []),(ConstrDecl (509,18) [] (Ident "O" 0) [(ConstructorType (QualIdent Nothing (Ident "Nat" 0)) [])]),(ConstrDecl (509,26) [] (Ident "I" 0) [(ConstructorType (QualIdent Nothing (Ident "Nat" 0)) [])])])
+,(DataDecl (574,1) (Ident "Int" 0) [] [(ConstrDecl (574,12) [] (Ident "Neg" 0) [(ConstructorType (QualIdent Nothing (Ident "Nat" 0)) [])]),(ConstrDecl (574,22) [] (Ident "Zero" 0) []),(ConstrDecl (574,29) [] (Ident "Pos" 0) [(ConstructorType (QualIdent Nothing (Ident "Nat" 0)) [])])])
+,(DataDecl (689,1) (Ident "Success" 0) [] [(ConstrDecl (689,16) [] (Ident "Success" 0) [])])
+,(DataDecl (723,1) (Ident "Maybe" 0) [(Ident "a" 0)] [(ConstrDecl (723,16) [] (Ident "Nothing" 0) []),(ConstrDecl (723,26) [] (Ident "Just" 0) [(VariableType (Ident "a" 0))])])
+,(DataDecl (732,1) (Ident "Either" 0) [(Ident "a" 0),(Ident "b" 0)] [(ConstrDecl (732,19) [] (Ident "Left" 0) [(VariableType (Ident "a" 0))]),(ConstrDecl (732,28) [] (Ident "Right" 0) [(VariableType (Ident "b" 0))])])
+,(DataDecl (741,1) (Ident "IO" 0) [(Ident "_" 0)] [])
+,(DataDecl (891,1) (Ident "SearchTree" 0) [(Ident "a" 0)] [(ConstrDecl (892,5) [] (Ident "Fail" 0) []),(ConstrDecl (893,5) [] (Ident "Value" 0) [(VariableType (Ident "a" 0))]),(ConstrDecl (894,5) [] (Ident "Choice" 0) [(ListType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]))]),(ConstrDecl (895,5) [] (Ident "Suspend" 0) [])])
+,(InfixDecl (13,1) InfixL 9 [(Ident "!!" 0)])
+,(InfixDecl (14,1) InfixR 9 [(Ident "." 0)])
+,(InfixDecl (15,1) InfixL 7 [(Ident "*" 0),(Ident "*^" 0),(Ident "div" 0),(Ident "mod" 0)])
+,(InfixDecl (16,1) InfixL 6 [(Ident "+" 0),(Ident "+^" 0),(Ident "-" 0),(Ident "-^" 0)])
+,(InfixDecl (18,1) InfixR 5 [(Ident "++" 0)])
+,(InfixDecl (19,1) Infix 4 [(Ident "=:=" 0),(Ident "==" 0),(Ident "===" 0),(Ident "/=" 0),(Ident "<" 0),(Ident ">" 0),(Ident "<=" 0),(Ident ">=" 0),(Ident "=:<=" 0),(Ident "<^" 0),(Ident "<=^" 0),(Ident ">^" 0),(Ident ">=^" 0)])
+,(InfixDecl (20,1) Infix 4 [(Ident "elem" 0),(Ident "notElem" 0)])
+,(InfixDecl (21,1) InfixR 3 [(Ident "&&" 0)])
+,(InfixDecl (22,1) InfixR 2 [(Ident "||" 0)])
+,(InfixDecl (23,1) InfixL 1 [(Ident ">>" 0),(Ident ">>=" 0)])
+,(InfixDecl (24,1) InfixR 0 [(Ident "$" 0),(Ident "$!" 0),(Ident "$!!" 0),(Ident "$#" 0),(Ident "$##" 0),(Ident "seq" 0),(Ident "&" 0),(Ident "&>" 0),(Ident "?" 0)])
+,(TypeSig (34,1) [(Ident "." 0)] (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "c" 0))))))
+,(FunctionDecl (35,1) (Ident "." 0) [(Equation (35,1) (OpLhs (VariablePattern (Ident "f" 2)) (Ident "." 0) (VariablePattern (Ident "g" 2))) (SimpleRhs (35,9) (Lambda [(VariablePattern (Ident "x" 4))] (Apply (Variable (QualIdent Nothing (Ident "f" 2))) (Paren (Apply (Variable (QualIdent Nothing (Ident "g" 2))) (Variable (QualIdent Nothing (Ident "x" 4))))))) []))])
+,(TypeSig (38,1) [(Ident "id" 0)] (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))
+,(FunctionDecl (39,1) (Ident "id" 0) [(Equation (39,1) (FunLhs (Ident "id" 0) [(VariablePattern (Ident "x" 5))]) (SimpleRhs (39,19) (Variable (QualIdent Nothing (Ident "x" 5))) []))])
+,(TypeSig (42,1) [(Ident "const" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "_" 0)) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (43,1) (Ident "const" 0) [(Equation (43,1) (FunLhs (Ident "const" 0) [(VariablePattern (Ident "x" 7)),(VariablePattern (Ident "_" 8))]) (SimpleRhs (43,19) (Variable (QualIdent Nothing (Ident "x" 7))) []))])
+,(TypeSig (46,1) [(Ident "curry" 0)] (ArrowType (ArrowType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (VariableType (Ident "c" 0))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0))))))
+,(FunctionDecl (47,1) (Ident "curry" 0) [(Equation (47,1) (FunLhs (Ident "curry" 0) [(VariablePattern (Ident "f" 10)),(VariablePattern (Ident "a" 10)),(VariablePattern (Ident "b" 10))]) (SimpleRhs (47,20) (Apply (Variable (QualIdent Nothing (Ident "f" 10))) (Tuple [(Variable (QualIdent Nothing (Ident "a" 10))),(Variable (QualIdent Nothing (Ident "b" 10)))])) []))])
+,(TypeSig (50,1) [(Ident "uncurry" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0)))) (ArrowType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (VariableType (Ident "c" 0)))))
+,(FunctionDecl (51,1) (Ident "uncurry" 0) [(Equation (51,1) (FunLhs (Ident "uncurry" 0) [(VariablePattern (Ident "f" 12)),(TuplePattern [(VariablePattern (Ident "a" 12)),(VariablePattern (Ident "b" 12))])]) (SimpleRhs (51,19) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 12))) (Variable (QualIdent Nothing (Ident "a" 12)))) (Variable (QualIdent Nothing (Ident "b" 12)))) []))])
+,(TypeSig (54,1) [(Ident "flip" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0)))) (ArrowType (VariableType (Ident "b" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "c" 0))))))
+,(FunctionDecl (55,1) (Ident "flip" 0) [(Equation (55,1) (FunLhs (Ident "flip" 0) [(VariablePattern (Ident "f" 14)),(VariablePattern (Ident "x" 14)),(VariablePattern (Ident "y" 14))]) (SimpleRhs (55,19) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 14))) (Variable (QualIdent Nothing (Ident "y" 14)))) (Variable (QualIdent Nothing (Ident "x" 14)))) []))])
+,(TypeSig (58,1) [(Ident "until" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (59,1) (Ident "until" 0) [(Equation (59,1) (FunLhs (Ident "until" 0) [(VariablePattern (Ident "p" 16)),(VariablePattern (Ident "f" 16)),(VariablePattern (Ident "x" 16))]) (SimpleRhs (59,19) (IfThenElse (Apply (Variable (QualIdent Nothing (Ident "p" 16))) (Variable (QualIdent Nothing (Ident "x" 16)))) (Variable (QualIdent Nothing (Ident "x" 16))) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "until" 0))) (Variable (QualIdent Nothing (Ident "p" 16)))) (Variable (QualIdent Nothing (Ident "f" 16)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 16))) (Variable (QualIdent Nothing (Ident "x" 16))))))) []))])
+,(TypeSig (62,1) [(Ident "$" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))))
+,(FunctionDecl (63,1) (Ident "$" 0) [(Equation (63,1) (OpLhs (VariablePattern (Ident "f" 18)) (Ident "$" 0) (VariablePattern (Ident "x" 18))) (SimpleRhs (63,19) (Apply (Variable (QualIdent Nothing (Ident "f" 18))) (Variable (QualIdent Nothing (Ident "x" 18)))) []))])
+,(TypeSig (67,1) [(Ident "$!" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))))
+,(FlatExternalDecl (68,1) [(Ident "$!" 0)])
+,(TypeSig (72,1) [(Ident "$!!" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))))
+,(FlatExternalDecl (73,1) [(Ident "$!!" 0)])
+,(TypeSig (78,1) [(Ident "$#" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))))
+,(FlatExternalDecl (79,1) [(Ident "$#" 0)])
+,(TypeSig (84,1) [(Ident "$##" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))))
+,(FlatExternalDecl (85,1) [(Ident "$##" 0)])
+,(TypeSig (89,1) [(Ident "ensureSpine" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (90,1) (Ident "ensureSpine" 0) [(Equation (90,1) (FunLhs (Ident "ensureSpine" 0) []) (SimpleRhs (90,15) (LeftSection (Variable (QualIdent Nothing (Ident "ensureList" 21))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0)))) [(FunctionDecl (91,8) (Ident "ensureList" 21) [(Equation (91,8) (FunLhs (Ident "ensureList" 21) [(ListPattern [])]) (SimpleRhs (91,28) (List []) [])),(Equation (92,8) (FunLhs (Ident "ensureList" 21) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 24)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 24))))]) (SimpleRhs (92,28) (InfixApply (Variable (QualIdent Nothing (Ident "x" 24))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ensureSpine" 0))) (Variable (QualIdent Nothing (Ident "xs" 24))))) []))])]))])
+,(TypeSig (96,1) [(Ident "seq" 0)] (ArrowType (VariableType (Ident "_" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (97,1) (Ident "seq" 0) [(Equation (97,1) (FunLhs (Ident "seq" 0) [(VariablePattern (Ident "x" 26)),(VariablePattern (Ident "y" 26))]) (SimpleRhs (97,11) (InfixApply (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Variable (QualIdent Nothing (Ident "y" 26))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!" 0))) (Variable (QualIdent Nothing (Ident "x" 26)))) []))])
+,(TypeSig (102,1) [(Ident "error" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "_" 0))))
+,(FunctionDecl (103,1) (Ident "error" 0) [(Equation (103,1) (FunLhs (Ident "error" 0) [(VariablePattern (Ident "s" 28))]) (SimpleRhs (103,11) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "prim_error" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 28)))) []))])
+,(TypeSig (105,1) [(Ident "prim_error" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "_" 0))))
+,(FlatExternalDecl (106,1) [(Ident "prim_error" 0)])
+,(TypeSig (110,1) [(Ident "failed" 0)] (VariableType (Ident "_" 0)))
+,(FlatExternalDecl (111,1) [(Ident "failed" 0)])
+,(TypeSig (117,1) [(Ident "&&" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (118,1) (Ident "&&" 0) [(Equation (118,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "True" 0)) []) (Ident "&&" 0) (VariablePattern (Ident "x" 30))) (SimpleRhs (118,19) (Variable (QualIdent Nothing (Ident "x" 30))) [])),(Equation (119,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "False" 0)) []) (Ident "&&" 0) (VariablePattern (Ident "_" 33))) (SimpleRhs (119,19) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])
+,(TypeSig (123,1) [(Ident "||" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (124,1) (Ident "||" 0) [(Equation (124,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "True" 0)) []) (Ident "||" 0) (VariablePattern (Ident "_" 36))) (SimpleRhs (124,19) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (125,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "False" 0)) []) (Ident "||" 0) (VariablePattern (Ident "x" 38))) (SimpleRhs (125,19) (Variable (QualIdent Nothing (Ident "x" 38))) []))])
+,(TypeSig (129,1) [(Ident "not" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (130,1) (Ident "not" 0) [(Equation (130,1) (FunLhs (Ident "not" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "True" 0)) [])]) (SimpleRhs (130,19) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (131,1) (FunLhs (Ident "not" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "False" 0)) [])]) (SimpleRhs (131,19) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) []))])
+,(TypeSig (134,1) [(Ident "otherwise" 0)] (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))
+,(FunctionDecl (135,1) (Ident "otherwise" 0) [(Equation (135,1) (FunLhs (Ident "otherwise" 0) []) (SimpleRhs (135,19) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) []))])
+,(TypeSig (139,1) [(Ident "if_then_else" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (140,1) (Ident "if_then_else" 0) [(Equation (140,1) (FunLhs (Ident "if_then_else" 0) [(VariablePattern (Ident "b" 46)),(VariablePattern (Ident "t" 46)),(VariablePattern (Ident "f" 46))]) (SimpleRhs (140,22) (Case (Variable (QualIdent Nothing (Ident "b" 46))) [(Alt (140,32) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "True" 0)) []) (SimpleRhs (140,41) (Variable (QualIdent Nothing (Ident "t" 46))) [])),(Alt (141,32) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "False" 0)) []) (SimpleRhs (141,41) (Variable (QualIdent Nothing (Ident "f" 46))) []))]) []))])
+,(FunctionDecl (147,1) (Ident "isLT" 0) [(Equation (147,1) (FunLhs (Ident "isLT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "LT" 0)) [])]) (SimpleRhs (147,11) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (148,1) (FunLhs (Ident "isLT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "GT" 0)) [])]) (SimpleRhs (148,11) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (149,1) (FunLhs (Ident "isLT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "EQ" 0)) [])]) (SimpleRhs (149,11) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])
+,(FunctionDecl (151,1) (Ident "isGT" 0) [(Equation (151,1) (FunLhs (Ident "isGT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "LT" 0)) [])]) (SimpleRhs (151,11) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (152,1) (FunLhs (Ident "isGT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "GT" 0)) [])]) (SimpleRhs (152,11) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (153,1) (FunLhs (Ident "isGT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "EQ" 0)) [])]) (SimpleRhs (153,11) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])
+,(FunctionDecl (155,1) (Ident "isEQ" 0) [(Equation (155,1) (FunLhs (Ident "isEQ" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "LT" 0)) [])]) (SimpleRhs (155,11) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (156,1) (FunLhs (Ident "isEQ" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "GT" 0)) [])]) (SimpleRhs (156,11) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (157,1) (FunLhs (Ident "isEQ" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "EQ" 0)) [])]) (SimpleRhs (157,11) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) []))])
+,(TypeSig (164,1) [(Ident "compare" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (165,1) (Ident "compare" 0) [(Equation (165,1) (FunLhs (Ident "compare" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (165,27) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0))) [])),(Equation (166,1) (FunLhs (Ident "compare" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "_" 73))]))]) (SimpleRhs (166,27) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (167,1) (FunLhs (Ident "compare" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "_" 76))]))]) (SimpleRhs (167,27) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (168,1) (FunLhs (Ident "compare" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "_" 79))])),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (168,27) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (169,1) (FunLhs (Ident "compare" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "x" 81))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "y" 81))]))]) (SimpleRhs (169,27) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "x" 81)))) (Variable (QualIdent Nothing (Ident "y" 81)))) [])),(Equation (170,1) (FunLhs (Ident "compare" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "_" 84))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "_" 85))]))]) (SimpleRhs (170,27) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (171,1) (FunLhs (Ident "compare" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "_" 88))])),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (171,27) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (172,1) (FunLhs (Ident "compare" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "_" 91))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "_" 92))]))]) (SimpleRhs (172,27) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (173,1) (FunLhs (Ident "compare" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "x" 94))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "y" 94))]))]) (SimpleRhs (173,27) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "y" 94)))) (Variable (QualIdent Nothing (Ident "x" 94)))) []))])
+,(TypeSig (187,1) [(Ident "<" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (188,1) (Ident "<" 0) [(Equation (188,1) (OpLhs (VariablePattern (Ident "x" 96)) (Ident "<" 0) (VariablePattern (Ident "y" 96))) (SimpleRhs (188,9) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "compare" 0))) (Variable (QualIdent Nothing (Ident "x" 96)))) (Variable (QualIdent Nothing (Ident "y" 96)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0)))) []))])
+,(TypeSig (191,1) [(Ident ">" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (192,1) (Ident ">" 0) [(Equation (192,1) (OpLhs (VariablePattern (Ident "x" 98)) (Ident ">" 0) (VariablePattern (Ident "y" 98))) (SimpleRhs (192,9) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "compare" 0))) (Variable (QualIdent Nothing (Ident "x" 98)))) (Variable (QualIdent Nothing (Ident "y" 98)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0)))) []))])
+,(TypeSig (195,1) [(Ident "<=" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (196,1) (Ident "<=" 0) [(Equation (196,1) (OpLhs (VariablePattern (Ident "x" 100)) (Ident "<=" 0) (VariablePattern (Ident "y" 100))) (SimpleRhs (196,10) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "compare" 0))) (Variable (QualIdent Nothing (Ident "x" 100)))) (Variable (QualIdent Nothing (Ident "y" 100)))) (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0)))) []))])
+,(TypeSig (199,1) [(Ident ">=" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (200,1) (Ident ">=" 0) [(Equation (200,1) (OpLhs (VariablePattern (Ident "x" 102)) (Ident ">=" 0) (VariablePattern (Ident "y" 102))) (SimpleRhs (200,10) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "compare" 0))) (Variable (QualIdent Nothing (Ident "x" 102)))) (Variable (QualIdent Nothing (Ident "y" 102)))) (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0)))) []))])
+,(TypeSig (203,1) [(Ident "max" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (204,1) (Ident "max" 0) [(Equation (204,1) (FunLhs (Ident "max" 0) [(VariablePattern (Ident "x" 104)),(VariablePattern (Ident "y" 104))]) (SimpleRhs (204,11) (Case (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "compare" 0))) (Variable (QualIdent Nothing (Ident "x" 104)))) (Variable (QualIdent Nothing (Ident "y" 104)))) [(Alt (205,3) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "LT" 0)) []) (SimpleRhs (205,9) (Variable (QualIdent Nothing (Ident "y" 104))) [])),(Alt (206,3) (VariablePattern (Ident "_" 109)) (SimpleRhs (206,9) (Variable (QualIdent Nothing (Ident "x" 104))) []))]) []))])
+,(TypeSig (209,1) [(Ident "min" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (210,1) (Ident "min" 0) [(Equation (210,1) (FunLhs (Ident "min" 0) [(VariablePattern (Ident "x" 111)),(VariablePattern (Ident "y" 111))]) (SimpleRhs (210,12) (Case (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "compare" 0))) (Variable (QualIdent Nothing (Ident "x" 111)))) (Variable (QualIdent Nothing (Ident "y" 111)))) [(Alt (211,3) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "GT" 0)) []) (SimpleRhs (211,9) (Variable (QualIdent Nothing (Ident "y" 111))) [])),(Alt (212,3) (VariablePattern (Ident "_" 116)) (SimpleRhs (212,9) (Variable (QualIdent Nothing (Ident "x" 111))) []))]) []))])
+,(TypeSig (215,1) [(Ident "==" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FlatExternalDecl (216,1) [(Ident "==" 0)])
+,(TypeSig (219,1) [(Ident "/=" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (220,1) (Ident "/=" 0) [(Equation (220,1) (OpLhs (VariablePattern (Ident "x" 118)) (Ident "/=" 0) (VariablePattern (Ident "y" 118))) (SimpleRhs (220,19) (Apply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 118))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "y" 118)))))) []))])
+,(TypeSig (228,1) [(Ident "fst" 0)] (ArrowType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "_" 0))]) (VariableType (Ident "a" 0))))
+,(FunctionDecl (229,1) (Ident "fst" 0) [(Equation (229,1) (FunLhs (Ident "fst" 0) [(TuplePattern [(VariablePattern (Ident "x" 120)),(VariablePattern (Ident "_" 121))])]) (SimpleRhs (229,19) (Variable (QualIdent Nothing (Ident "x" 120))) []))])
+,(TypeSig (232,1) [(Ident "snd" 0)] (ArrowType (TupleType [(VariableType (Ident "_" 0)),(VariableType (Ident "b" 0))]) (VariableType (Ident "b" 0))))
+,(FunctionDecl (233,1) (Ident "snd" 0) [(Equation (233,1) (FunLhs (Ident "snd" 0) [(TuplePattern [(VariablePattern (Ident "_" 124)),(VariablePattern (Ident "y" 123))])]) (SimpleRhs (233,19) (Variable (QualIdent Nothing (Ident "y" 123))) []))])
+,(TypeSig (244,1) [(Ident "head" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (VariableType (Ident "a" 0))))
+,(FunctionDecl (245,1) (Ident "head" 0) [(Equation (245,1) (FunLhs (Ident "head" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 126)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 127))))]) (SimpleRhs (245,19) (Variable (QualIdent Nothing (Ident "x" 126))) []))])
+,(TypeSig (248,1) [(Ident "tail" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (249,1) (Ident "tail" 0) [(Equation (249,1) (FunLhs (Ident "tail" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 130)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 129))))]) (SimpleRhs (249,19) (Variable (QualIdent Nothing (Ident "xs" 129))) []))])
+,(TypeSig (252,1) [(Ident "null" 0)] (ArrowType (ListType (VariableType (Ident "_" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (253,1) (Ident "null" 0) [(Equation (253,1) (FunLhs (Ident "null" 0) [(ListPattern [])]) (SimpleRhs (253,19) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (254,1) (FunLhs (Ident "null" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 135)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 136))))]) (SimpleRhs (254,19) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])
+,(TypeSig (259,1) [(Ident "++" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (260,1) (Ident "++" 0) [(Equation (260,1) (OpLhs (ListPattern []) (Ident "++" 0) (VariablePattern (Ident "ys" 138))) (SimpleRhs (260,19) (Variable (QualIdent Nothing (Ident "ys" 138))) [])),(Equation (261,1) (OpLhs (ParenPattern (InfixPattern (VariablePattern (Ident "x" 140)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 140)))) (Ident "++" 0) (VariablePattern (Ident "ys" 140))) (SimpleRhs (261,19) (InfixApply (Variable (QualIdent Nothing (Ident "x" 140))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "xs" 140))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "ys" 140))))) []))])
+,(TypeSig (264,1) [(Ident "length" 0)] (ArrowType (ListType (VariableType (Ident "_" 0))) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (265,1) (Ident "length" 0) [(Equation (265,1) (FunLhs (Ident "length" 0) [(ListPattern [])]) (SimpleRhs (265,19) (Literal (Int (Ident "_" 144) 0)) [])),(Equation (266,1) (FunLhs (Ident "length" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 146)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 145))))]) (SimpleRhs (266,19) (InfixApply (Literal (Int (Ident "_" 148) 1)) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "xs" 145))))) []))])
+,(TypeSig (269,1) [(Ident "!!" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (270,1) (Ident "!!" 0) [(Equation (270,1) (OpLhs (ParenPattern (InfixPattern (VariablePattern (Ident "x" 149)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 149)))) (Ident "!!" 0) (VariablePattern (Ident "n" 149))) (GuardedRhs [(CondExpr (270,13) (InfixApply (Variable (QualIdent Nothing (Ident "n" 149))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 151) 0))) (Variable (QualIdent Nothing (Ident "x" 149)))),(CondExpr (271,13) (InfixApply (Variable (QualIdent Nothing (Ident "n" 149))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Literal (Int (Ident "_" 152) 0))) (InfixApply (Variable (QualIdent Nothing (Ident "xs" 149))) (InfixOp (QualIdent (Just "Prelude") (Ident "!!" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 149))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 153) 1))))))] []))])
+,(TypeSig (274,1) [(Ident "map" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "b" 0))))))
+,(FunctionDecl (275,1) (Ident "map" 0) [(Equation (275,1) (FunLhs (Ident "map" 0) [(VariablePattern (Ident "_" 155)),(ListPattern [])]) (SimpleRhs (275,19) (List []) [])),(Equation (276,1) (FunLhs (Ident "map" 0) [(VariablePattern (Ident "f" 157)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 157)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 157))))]) (SimpleRhs (276,19) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "f" 157))) (Variable (QualIdent Nothing (Ident "x" 157)))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "f" 157)))) (Variable (QualIdent Nothing (Ident "xs" 157))))) []))])
+,(TypeSig (281,1) [(Ident "foldl" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "a" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "b" 0))) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (282,1) (Ident "foldl" 0) [(Equation (282,1) (FunLhs (Ident "foldl" 0) [(VariablePattern (Ident "_" 160)),(VariablePattern (Ident "z" 159)),(ListPattern [])]) (SimpleRhs (282,20) (Variable (QualIdent Nothing (Ident "z" 159))) [])),(Equation (283,1) (FunLhs (Ident "foldl" 0) [(VariablePattern (Ident "f" 162)),(VariablePattern (Ident "z" 162)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 162)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 162))))]) (SimpleRhs (283,20) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldl" 0))) (Variable (QualIdent Nothing (Ident "f" 162)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 162))) (Variable (QualIdent Nothing (Ident "z" 162)))) (Variable (QualIdent Nothing (Ident "x" 162)))))) (Variable (QualIdent Nothing (Ident "xs" 162)))) []))])
+,(TypeSig (286,1) [(Ident "foldl1" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))) (ArrowType (ListType (VariableType (Ident "a" 0))) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (287,1) (Ident "foldl1" 0) [(Equation (287,1) (FunLhs (Ident "foldl1" 0) [(VariablePattern (Ident "f" 164)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 164)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 164))))]) (SimpleRhs (287,20) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldl" 0))) (Variable (QualIdent Nothing (Ident "f" 164)))) (Variable (QualIdent Nothing (Ident "x" 164)))) (Variable (QualIdent Nothing (Ident "xs" 164)))) []))])
+,(TypeSig (292,1) [(Ident "foldr" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (VariableType (Ident "b" 0))))))
+,(FunctionDecl (293,1) (Ident "foldr" 0) [(Equation (293,1) (FunLhs (Ident "foldr" 0) [(VariablePattern (Ident "_" 167)),(VariablePattern (Ident "z" 166)),(ListPattern [])]) (SimpleRhs (293,20) (Variable (QualIdent Nothing (Ident "z" 166))) [])),(Equation (294,1) (FunLhs (Ident "foldr" 0) [(VariablePattern (Ident "f" 169)),(VariablePattern (Ident "z" 169)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 169)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 169))))]) (SimpleRhs (294,20) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 169))) (Variable (QualIdent Nothing (Ident "x" 169)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent Nothing (Ident "f" 169)))) (Variable (QualIdent Nothing (Ident "z" 169)))) (Variable (QualIdent Nothing (Ident "xs" 169)))))) []))])
+,(TypeSig (297,1) [(Ident "foldr1" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))) (ArrowType (ListType (VariableType (Ident "a" 0))) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (298,1) (Ident "foldr1" 0) [(Equation (298,1) (FunLhs (Ident "foldr1" 0) [(VariablePattern (Ident "_" 172)),(ListPattern [(VariablePattern (Ident "x" 171))])]) (SimpleRhs (298,23) (Variable (QualIdent Nothing (Ident "x" 171))) [])),(Equation (299,1) (FunLhs (Ident "foldr1" 0) [(VariablePattern (Ident "f" 174)),(ParenPattern (InfixPattern (VariablePattern (Ident "x1" 174)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "x2" 174)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 174)))))]) (SimpleRhs (299,23) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 174))) (Variable (QualIdent Nothing (Ident "x1" 174)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr1" 0))) (Variable (QualIdent Nothing (Ident "f" 174)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x2" 174))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 174)))))))) []))])
+,(TypeSig (302,1) [(Ident "filter" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (303,1) (Ident "filter" 0) [(Equation (303,1) (FunLhs (Ident "filter" 0) [(VariablePattern (Ident "_" 177)),(ListPattern [])]) (SimpleRhs (303,21) (List []) [])),(Equation (304,1) (FunLhs (Ident "filter" 0) [(VariablePattern (Ident "p" 179)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 179)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 179))))]) (SimpleRhs (304,21) (IfThenElse (Apply (Variable (QualIdent Nothing (Ident "p" 179))) (Variable (QualIdent Nothing (Ident "x" 179)))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 179))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Variable (QualIdent Nothing (Ident "p" 179)))) (Variable (QualIdent Nothing (Ident "xs" 179))))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Variable (QualIdent Nothing (Ident "p" 179)))) (Variable (QualIdent Nothing (Ident "xs" 179))))) []))])
+,(TypeSig (309,1) [(Ident "zip" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "b" 0))) (ListType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (310,1) (Ident "zip" 0) [(Equation (310,1) (FunLhs (Ident "zip" 0) [(ListPattern []),(VariablePattern (Ident "_" 182))]) (SimpleRhs (310,21) (List []) [])),(Equation (311,1) (FunLhs (Ident "zip" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 185)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 186)))),(ListPattern [])]) (SimpleRhs (311,21) (List []) [])),(Equation (312,1) (FunLhs (Ident "zip" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 188)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 188)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 188)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 188))))]) (SimpleRhs (312,21) (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "x" 188))),(Variable (QualIdent Nothing (Ident "y" 188)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "zip" 0))) (Variable (QualIdent Nothing (Ident "xs" 188)))) (Variable (QualIdent Nothing (Ident "ys" 188))))) []))])
+,(TypeSig (316,1) [(Ident "zip3" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "b" 0))) (ArrowType (ListType (VariableType (Ident "c" 0))) (ListType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0)),(VariableType (Ident "c" 0))]))))))
+,(FunctionDecl (317,1) (Ident "zip3" 0) [(Equation (317,1) (FunLhs (Ident "zip3" 0) [(ListPattern []),(VariablePattern (Ident "_" 191)),(VariablePattern (Ident "_" 192))]) (SimpleRhs (317,29) (List []) [])),(Equation (318,1) (FunLhs (Ident "zip3" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 195)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 196)))),(ListPattern []),(VariablePattern (Ident "_" 197))]) (SimpleRhs (318,29) (List []) [])),(Equation (319,1) (FunLhs (Ident "zip3" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 200)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 201)))),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 202)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 203)))),(ListPattern [])]) (SimpleRhs (319,29) (List []) [])),(Equation (320,1) (FunLhs (Ident "zip3" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 205)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 205)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 205)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 205)))),(ParenPattern (InfixPattern (VariablePattern (Ident "z" 205)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "zs" 205))))]) (SimpleRhs (320,29) (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "x" 205))),(Variable (QualIdent Nothing (Ident "y" 205))),(Variable (QualIdent Nothing (Ident "z" 205)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "zip3" 0))) (Variable (QualIdent Nothing (Ident "xs" 205)))) (Variable (QualIdent Nothing (Ident "ys" 205)))) (Variable (QualIdent Nothing (Ident "zs" 205))))) []))])
+,(TypeSig (324,1) [(Ident "zipWith" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0)))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "b" 0))) (ListType (VariableType (Ident "c" 0)))))))
+,(FunctionDecl (325,1) (Ident "zipWith" 0) [(Equation (325,1) (FunLhs (Ident "zipWith" 0) [(VariablePattern (Ident "_" 208)),(ListPattern []),(VariablePattern (Ident "_" 209))]) (SimpleRhs (325,27) (List []) [])),(Equation (326,1) (FunLhs (Ident "zipWith" 0) [(VariablePattern (Ident "_" 212)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 213)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 214)))),(ListPattern [])]) (SimpleRhs (326,27) (List []) [])),(Equation (327,1) (FunLhs (Ident "zipWith" 0) [(VariablePattern (Ident "f" 216)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 216)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 216)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 216)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 216))))]) (SimpleRhs (327,27) (InfixApply (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 216))) (Variable (QualIdent Nothing (Ident "x" 216)))) (Variable (QualIdent Nothing (Ident "y" 216)))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "zipWith" 0))) (Variable (QualIdent Nothing (Ident "f" 216)))) (Variable (QualIdent Nothing (Ident "xs" 216)))) (Variable (QualIdent Nothing (Ident "ys" 216))))) []))])
+,(TypeSig (331,1) [(Ident "zipWith3" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "b" 0)) (ArrowType (VariableType (Ident "c" 0)) (VariableType (Ident "d" 0))))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "b" 0))) (ArrowType (ListType (VariableType (Ident "c" 0))) (ListType (VariableType (Ident "d" 0))))))))
+,(FunctionDecl (332,1) (Ident "zipWith3" 0) [(Equation (332,1) (FunLhs (Ident "zipWith3" 0) [(VariablePattern (Ident "_" 219)),(ListPattern []),(VariablePattern (Ident "_" 220)),(VariablePattern (Ident "_" 221))]) (SimpleRhs (332,35) (List []) [])),(Equation (333,1) (FunLhs (Ident "zipWith3" 0) [(VariablePattern (Ident "_" 224)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 225)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 226)))),(ListPattern []),(VariablePattern (Ident "_" 227))]) (SimpleRhs (333,35) (List []) [])),(Equation (334,1) (FunLhs (Ident "zipWith3" 0) [(VariablePattern (Ident "_" 230)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 231)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 232)))),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 233)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 234)))),(ListPattern [])]) (SimpleRhs (334,35) (List []) [])),(Equation (335,1) (FunLhs (Ident "zipWith3" 0) [(VariablePattern (Ident "f" 236)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 236)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 236)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 236)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 236)))),(ParenPattern (InfixPattern (VariablePattern (Ident "z" 236)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "zs" 236))))]) (SimpleRhs (335,35) (InfixApply (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 236))) (Variable (QualIdent Nothing (Ident "x" 236)))) (Variable (QualIdent Nothing (Ident "y" 236)))) (Variable (QualIdent Nothing (Ident "z" 236)))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "zipWith3" 0))) (Variable (QualIdent Nothing (Ident "f" 236)))) (Variable (QualIdent Nothing (Ident "xs" 236)))) (Variable (QualIdent Nothing (Ident "ys" 236)))) (Variable (QualIdent Nothing (Ident "zs" 236))))) []))])
+,(TypeSig (338,1) [(Ident "unzip" 0)] (ArrowType (ListType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])) (TupleType [(ListType (VariableType (Ident "a" 0))),(ListType (VariableType (Ident "b" 0)))])))
+,(FunctionDecl (339,1) (Ident "unzip" 0) [(Equation (339,1) (FunLhs (Ident "unzip" 0) [(ListPattern [])]) (SimpleRhs (339,23) (Tuple [(List []),(List [])]) [])),(Equation (340,1) (FunLhs (Ident "unzip" 0) [(ParenPattern (InfixPattern (TuplePattern [(VariablePattern (Ident "x" 240)),(VariablePattern (Ident "y" 240))]) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ps" 240))))]) (SimpleRhs (340,23) (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "x" 240))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 241)))),(InfixApply (Variable (QualIdent Nothing (Ident "y" 240))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 241))))]) [(PatternDecl (340,41) (TuplePattern [(VariablePattern (Ident "xs" 241)),(VariablePattern (Ident "ys" 241))]) (SimpleRhs (340,51) (Apply (Variable (QualIdent (Just "Prelude") (Ident "unzip" 0))) (Variable (QualIdent Nothing (Ident "ps" 240)))) []))]))])
+,(TypeSig (343,1) [(Ident "unzip3" 0)] (ArrowType (ListType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0)),(VariableType (Ident "c" 0))])) (TupleType [(ListType (VariableType (Ident "a" 0))),(ListType (VariableType (Ident "b" 0))),(ListType (VariableType (Ident "c" 0)))])))
+,(FunctionDecl (344,1) (Ident "unzip3" 0) [(Equation (344,1) (FunLhs (Ident "unzip3" 0) [(ListPattern [])]) (SimpleRhs (344,23) (Tuple [(List []),(List []),(List [])]) [])),(Equation (345,1) (FunLhs (Ident "unzip3" 0) [(ParenPattern (InfixPattern (TuplePattern [(VariablePattern (Ident "x" 245)),(VariablePattern (Ident "y" 245)),(VariablePattern (Ident "z" 245))]) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ts" 245))))]) (SimpleRhs (345,23) (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "x" 245))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 246)))),(InfixApply (Variable (QualIdent Nothing (Ident "y" 245))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 246)))),(InfixApply (Variable (QualIdent Nothing (Ident "z" 245))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "zs" 246))))]) [(PatternDecl (345,46) (TuplePattern [(VariablePattern (Ident "xs" 246)),(VariablePattern (Ident "ys" 246)),(VariablePattern (Ident "zs" 246))]) (SimpleRhs (345,59) (Apply (Variable (QualIdent (Just "Prelude") (Ident "unzip3" 0))) (Variable (QualIdent Nothing (Ident "ts" 245)))) []))]))])
+,(TypeSig (348,1) [(Ident "concat" 0)] (ArrowType (ListType (ListType (VariableType (Ident "a" 0)))) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (349,1) (Ident "concat" 0) [(Equation (349,1) (FunLhs (Ident "concat" 0) [(VariablePattern (Ident "l" 248))]) (SimpleRhs (349,21) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "Prelude") (Ident "++" 0)))) (List [])) (Variable (QualIdent Nothing (Ident "l" 248)))) []))])
+,(TypeSig (352,1) [(Ident "concatMap" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ListType (VariableType (Ident "b" 0)))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "b" 0))))))
+,(FunctionDecl (353,1) (Ident "concatMap" 0) [(Equation (353,1) (FunLhs (Ident "concatMap" 0) [(VariablePattern (Ident "f" 250))]) (SimpleRhs (353,21) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "concat" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "f" 250))))) []))])
+,(TypeSig (357,1) [(Ident "iterate" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))) (ArrowType (VariableType (Ident "a" 0)) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (358,1) (Ident "iterate" 0) [(Equation (358,1) (FunLhs (Ident "iterate" 0) [(VariablePattern (Ident "f" 252)),(VariablePattern (Ident "x" 252))]) (SimpleRhs (358,21) (InfixApply (Variable (QualIdent Nothing (Ident "x" 252))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "iterate" 0))) (Variable (QualIdent Nothing (Ident "f" 252)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 252))) (Variable (QualIdent Nothing (Ident "x" 252))))))) []))])
+,(TypeSig (362,1) [(Ident "repeat" 0)] (ArrowType (VariableType (Ident "a" 0)) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (363,1) (Ident "repeat" 0) [(Equation (363,1) (FunLhs (Ident "repeat" 0) [(VariablePattern (Ident "x" 254))]) (SimpleRhs (363,21) (InfixApply (Variable (QualIdent Nothing (Ident "x" 254))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "repeat" 0))) (Variable (QualIdent Nothing (Ident "x" 254))))) []))])
+,(TypeSig (366,1) [(Ident "replicate" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (367,1) (Ident "replicate" 0) [(Equation (367,1) (FunLhs (Ident "replicate" 0) [(VariablePattern (Ident "n" 256)),(VariablePattern (Ident "x" 256))]) (SimpleRhs (367,21) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "take" 0))) (Variable (QualIdent Nothing (Ident "n" 256)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "repeat" 0))) (Variable (QualIdent Nothing (Ident "x" 256)))))) []))])
+,(TypeSig (370,1) [(Ident "take" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (371,1) (Ident "take" 0) [(Equation (371,1) (FunLhs (Ident "take" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "_" 259))])),(VariablePattern (Ident "_" 260))]) (SimpleRhs (371,25) (List []) [])),(Equation (372,1) (FunLhs (Ident "take" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []),(VariablePattern (Ident "_" 263))]) (SimpleRhs (372,25) (List []) [])),(Equation (373,1) (FunLhs (Ident "take" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "_" 266))])),(ListPattern [])]) (SimpleRhs (373,25) (List []) [])),(Equation (374,1) (FunLhs (Ident "take" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "n" 268))])),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 268)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 268))))]) (SimpleRhs (374,23) (InfixApply (Variable (QualIdent Nothing (Ident "x" 268))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "take" 0))) (Paren (InfixApply (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Variable (QualIdent Nothing (Ident "n" 268)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 270) 1))))) (Variable (QualIdent Nothing (Ident "xs" 268))))) []))])
+,(TypeSig (377,1) [(Ident "drop" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (378,1) (Ident "drop" 0) [(Equation (378,1) (FunLhs (Ident "drop" 0) [(VariablePattern (Ident "n" 271)),(VariablePattern (Ident "l" 271))]) (SimpleRhs (378,21) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 271))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Literal (Int (Ident "_" 280) 0))) (Variable (QualIdent Nothing (Ident "l" 271))) (Apply (Apply (Variable (QualIdent Nothing (Ident "dropp" 272))) (Variable (QualIdent Nothing (Ident "n" 271)))) (Variable (QualIdent Nothing (Ident "l" 271))))) [(FunctionDecl (379,10) (Ident "dropp" 272) [(Equation (379,10) (FunLhs (Ident "dropp" 272) [(VariablePattern (Ident "_" 274)),(ListPattern [])]) (SimpleRhs (379,27) (List []) [])),(Equation (380,10) (FunLhs (Ident "dropp" 272) [(VariablePattern (Ident "m" 276)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 277)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 276))))]) (SimpleRhs (380,27) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "drop" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 276))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 279) 1))))) (Variable (QualIdent Nothing (Ident "xs" 276)))) []))])]))])
+,(TypeSig (383,1) [(Ident "splitAt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (TupleType [(ListType (VariableType (Ident "a" 0))),(ListType (VariableType (Ident "a" 0)))]))))
+,(FunctionDecl (384,1) (Ident "splitAt" 0) [(Equation (384,1) (FunLhs (Ident "splitAt" 0) [(VariablePattern (Ident "n" 281)),(VariablePattern (Ident "l" 281))]) (SimpleRhs (384,21) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 281))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Literal (Int (Ident "_" 291) 0))) (Tuple [(List []),(Variable (QualIdent Nothing (Ident "l" 281)))]) (Apply (Apply (Variable (QualIdent Nothing (Ident "splitAtp" 282))) (Variable (QualIdent Nothing (Ident "n" 281)))) (Variable (QualIdent Nothing (Ident "l" 281))))) [(FunctionDecl (385,10) (Ident "splitAtp" 282) [(Equation (385,10) (FunLhs (Ident "splitAtp" 282) [(VariablePattern (Ident "_" 284)),(ListPattern [])]) (SimpleRhs (385,30) (Tuple [(List []),(List [])]) [])),(Equation (386,10) (FunLhs (Ident "splitAtp" 282) [(VariablePattern (Ident "m" 286)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 286)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 286))))]) (SimpleRhs (386,30) (Let [(PatternDecl (386,34) (TuplePattern [(VariablePattern (Ident "ys" 288)),(VariablePattern (Ident "zs" 288))]) (SimpleRhs (386,44) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "splitAt" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 286))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 290) 1))))) (Variable (QualIdent Nothing (Ident "xs" 286)))) []))] (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "x" 286))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 288)))),(Variable (QualIdent Nothing (Ident "zs" 288)))])) []))])]))])
+,(TypeSig (389,1) [(Ident "takeWhile" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (390,1) (Ident "takeWhile" 0) [(Equation (390,1) (FunLhs (Ident "takeWhile" 0) [(VariablePattern (Ident "_" 293)),(ListPattern [])]) (SimpleRhs (390,22) (List []) [])),(Equation (391,1) (FunLhs (Ident "takeWhile" 0) [(VariablePattern (Ident "p" 295)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 295)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 295))))]) (SimpleRhs (391,22) (IfThenElse (Apply (Variable (QualIdent Nothing (Ident "p" 295))) (Variable (QualIdent Nothing (Ident "x" 295)))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 295))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "takeWhile" 0))) (Variable (QualIdent Nothing (Ident "p" 295)))) (Variable (QualIdent Nothing (Ident "xs" 295))))) (List [])) []))])
+,(TypeSig (394,1) [(Ident "dropWhile" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (395,1) (Ident "dropWhile" 0) [(Equation (395,1) (FunLhs (Ident "dropWhile" 0) [(VariablePattern (Ident "_" 298)),(ListPattern [])]) (SimpleRhs (395,22) (List []) [])),(Equation (396,1) (FunLhs (Ident "dropWhile" 0) [(VariablePattern (Ident "p" 300)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 300)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 300))))]) (SimpleRhs (396,22) (IfThenElse (Apply (Variable (QualIdent Nothing (Ident "p" 300))) (Variable (QualIdent Nothing (Ident "x" 300)))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "dropWhile" 0))) (Variable (QualIdent Nothing (Ident "p" 300)))) (Variable (QualIdent Nothing (Ident "xs" 300)))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 300))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 300))))) []))])
+,(TypeSig (399,1) [(Ident "span" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (TupleType [(ListType (VariableType (Ident "a" 0))),(ListType (VariableType (Ident "a" 0)))]))))
+,(FunctionDecl (400,1) (Ident "span" 0) [(Equation (400,1) (FunLhs (Ident "span" 0) [(VariablePattern (Ident "_" 303)),(ListPattern [])]) (SimpleRhs (400,22) (Tuple [(List []),(List [])]) [])),(Equation (401,1) (FunLhs (Ident "span" 0) [(VariablePattern (Ident "p" 305)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 305)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 305))))]) (GuardedRhs [(CondExpr (402,8) (Apply (Variable (QualIdent Nothing (Ident "p" 305))) (Variable (QualIdent Nothing (Ident "x" 305)))) (Let [(PatternDecl (402,26) (TuplePattern [(VariablePattern (Ident "ys" 307)),(VariablePattern (Ident "zs" 307))]) (SimpleRhs (402,36) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "span" 0))) (Variable (QualIdent Nothing (Ident "p" 305)))) (Variable (QualIdent Nothing (Ident "xs" 305)))) []))] (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "x" 305))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 307)))),(Variable (QualIdent Nothing (Ident "zs" 307)))]))),(CondExpr (403,8) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Tuple [(List []),(InfixApply (Variable (QualIdent Nothing (Ident "x" 305))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 305))))]))] []))])
+,(TypeSig (407,1) [(Ident "break" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (TupleType [(ListType (VariableType (Ident "a" 0))),(ListType (VariableType (Ident "a" 0)))]))))
+,(FunctionDecl (408,1) (Ident "break" 0) [(Equation (408,1) (FunLhs (Ident "break" 0) [(VariablePattern (Ident "p" 309))]) (SimpleRhs (408,22) (Apply (Variable (QualIdent (Just "Prelude") (Ident "span" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent Nothing (Ident "p" 309)))))) []))])
+,(TypeSig (412,1) [(Ident "lines" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(FunctionDecl (413,1) (Ident "lines" 0) [(Equation (413,1) (FunLhs (Ident "lines" 0) [(ListPattern [])]) (SimpleRhs (413,16) (List []) [])),(Equation (414,1) (FunLhs (Ident "lines" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 313)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 313))))]) (SimpleRhs (414,16) (Let [(PatternDecl (414,20) (TuplePattern [(VariablePattern (Ident "l" 321)),(VariablePattern (Ident "xs_l" 321))]) (SimpleRhs (414,31) (Apply (Variable (QualIdent Nothing (Ident "splitline" 314))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 313))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 313)))))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "l" 321))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "lines" 0))) (Variable (QualIdent Nothing (Ident "xs_l" 321)))))) [(FunctionDecl (415,8) (Ident "splitline" 314) [(Equation (415,8) (FunLhs (Ident "splitline" 314) [(ListPattern [])]) (SimpleRhs (415,27) (Tuple [(List []),(List [])]) [])),(Equation (416,8) (FunLhs (Ident "splitline" 314) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 317)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 317))))]) (SimpleRhs (416,27) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "c" 317))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\n'))) (Tuple [(List []),(Variable (QualIdent Nothing (Ident "cs" 317)))]) (Let [(PatternDecl (418,36) (TuplePattern [(VariablePattern (Ident "ds" 319)),(VariablePattern (Ident "es" 319))]) (SimpleRhs (418,46) (Apply (Variable (QualIdent Nothing (Ident "splitline" 314))) (Variable (QualIdent Nothing (Ident "cs" 317)))) []))] (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "c" 317))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ds" 319)))),(Variable (QualIdent Nothing (Ident "es" 319)))]))) []))])]))])
+,(TypeSig (421,1) [(Ident "unlines" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (422,1) (Ident "unlines" 0) [(Equation (422,1) (FunLhs (Ident "unlines" 0) [(VariablePattern (Ident "ls" 323))]) (SimpleRhs (422,14) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "concatMap" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n")))) (Variable (QualIdent Nothing (Ident "ls" 323)))) []))])
+,(TypeSig (426,1) [(Ident "words" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(FunctionDecl (427,1) (Ident "words" 0) [(Equation (427,1) (FunLhs (Ident "words" 0) [(VariablePattern (Ident "s" 325))]) (SimpleRhs (427,14) (Let [(PatternDecl (427,18) (VariablePattern (Ident "s1" 329)) (SimpleRhs (427,23) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "dropWhile" 0))) (Variable (QualIdent Nothing (Ident "isSpace" 326)))) (Variable (QualIdent Nothing (Ident "s" 325)))) []))] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "s1" 329))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (String ""))) (List []) (Let [(PatternDecl (429,37) (TuplePattern [(VariablePattern (Ident "w" 331)),(VariablePattern (Ident "s2" 331))]) (SimpleRhs (429,46) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "break" 0))) (Variable (QualIdent Nothing (Ident "isSpace" 326)))) (Variable (QualIdent Nothing (Ident "s1" 329)))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "w" 331))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "words" 0))) (Variable (QualIdent Nothing (Ident "s2" 331)))))))) [(FunctionDecl (432,4) (Ident "isSpace" 326) [(Equation (432,4) (FunLhs (Ident "isSpace" 326) [(VariablePattern (Ident "c" 327))]) (SimpleRhs (432,16) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 327))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char ' '))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 327))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\t'))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 327))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\n'))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "c" 327))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\r')))))) []))])]))])
+,(TypeSig (435,1) [(Ident "unwords" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (436,1) (Ident "unwords" 0) [(Equation (436,1) (FunLhs (Ident "unwords" 0) [(VariablePattern (Ident "ws" 333))]) (SimpleRhs (436,14) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "ws" 333))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (List [])) (List []) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr1" 0))) (Paren (Lambda [(VariablePattern (Ident "w" 335)),(VariablePattern (Ident "s" 335))] (InfixApply (Variable (QualIdent Nothing (Ident "w" 335))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (Char ' ')) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "s" 335)))))))) (Variable (QualIdent Nothing (Ident "ws" 333))))) []))])
+,(TypeSig (440,1) [(Ident "reverse" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (441,1) (Ident "reverse" 0) [(Equation (441,1) (FunLhs (Ident "reverse" 0) []) (SimpleRhs (441,14) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldl" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "flip" 0))) (Constructor (QualIdent Nothing (Ident ":" 0)))))) (List [])) []))])
+,(TypeSig (444,1) [(Ident "and" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (445,1) (Ident "and" 0) [(Equation (445,1) (FunLhs (Ident "and" 0) []) (SimpleRhs (445,14) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "Prelude") (Ident "&&" 0)))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))) []))])
+,(TypeSig (448,1) [(Ident "or" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (449,1) (Ident "or" 0) [(Equation (449,1) (FunLhs (Ident "or" 0) []) (SimpleRhs (449,14) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "Prelude") (Ident "||" 0)))) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))) []))])
+,(TypeSig (452,1) [(Ident "any" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (453,1) (Ident "any" 0) [(Equation (453,1) (FunLhs (Ident "any" 0) [(VariablePattern (Ident "p" 342))]) (SimpleRhs (453,14) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "or" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "p" 342))))) []))])
+,(TypeSig (456,1) [(Ident "all" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (457,1) (Ident "all" 0) [(Equation (457,1) (FunLhs (Ident "all" 0) [(VariablePattern (Ident "p" 344))]) (SimpleRhs (457,14) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "and" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "p" 344))))) []))])
+,(TypeSig (460,1) [(Ident "elem" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (461,1) (Ident "elem" 0) [(Equation (461,1) (FunLhs (Ident "elem" 0) [(VariablePattern (Ident "x" 346))]) (SimpleRhs (461,14) (Apply (Variable (QualIdent (Just "Prelude") (Ident "any" 0))) (LeftSection (Variable (QualIdent Nothing (Ident "x" 346))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))))) []))])
+,(TypeSig (464,1) [(Ident "notElem" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (465,1) (Ident "notElem" 0) [(Equation (465,1) (FunLhs (Ident "notElem" 0) [(VariablePattern (Ident "x" 348))]) (SimpleRhs (465,14) (Apply (Variable (QualIdent (Just "Prelude") (Ident "all" 0))) (LeftSection (Variable (QualIdent Nothing (Ident "x" 348))) (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))))) []))])
+,(TypeSig (468,1) [(Ident "lookup" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (TupleType [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))])) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (469,1) (Ident "lookup" 0) [(Equation (469,1) (FunLhs (Ident "lookup" 0) [(VariablePattern (Ident "_" 351)),(ListPattern [])]) (SimpleRhs (469,21) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (470,1) (FunLhs (Ident "lookup" 0) [(VariablePattern (Ident "k" 353)),(ParenPattern (InfixPattern (TuplePattern [(VariablePattern (Ident "x" 353)),(VariablePattern (Ident "y" 353))]) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xys" 353))))]) (GuardedRhs [(CondExpr (471,7) (InfixApply (Variable (QualIdent Nothing (Ident "k" 353))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "x" 353)))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Variable (QualIdent Nothing (Ident "y" 353))))),(CondExpr (472,7) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "lookup" 0))) (Variable (QualIdent Nothing (Ident "k" 353)))) (Variable (QualIdent Nothing (Ident "xys" 353)))))] []))])
+,(TypeSig (475,1) [(Ident "enumFrom" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (476,1) (Ident "enumFrom" 0) [(Equation (476,1) (FunLhs (Ident "enumFrom" 0) [(VariablePattern (Ident "n" 355))]) (SimpleRhs (476,26) (InfixApply (Variable (QualIdent Nothing (Ident "n" 355))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "enumFrom" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 355))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 357) 1)))))) []))])
+,(TypeSig (479,1) [(Ident "enumFromThen" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))))
+,(FunctionDecl (480,1) (Ident "enumFromThen" 0) [(Equation (480,1) (FunLhs (Ident "enumFromThen" 0) [(VariablePattern (Ident "n1" 358)),(VariablePattern (Ident "n2" 358))]) (SimpleRhs (480,26) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "iterate" 0))) (LeftSection (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n2" 358))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "n1" 358))))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))))) (Variable (QualIdent Nothing (Ident "n1" 358)))) []))])
+,(TypeSig (483,1) [(Ident "enumFromTo" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))))
+,(FunctionDecl (484,1) (Ident "enumFromTo" 0) [(Equation (484,1) (FunLhs (Ident "enumFromTo" 0) [(VariablePattern (Ident "n" 360)),(VariablePattern (Ident "m" 360))]) (SimpleRhs (484,26) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 360))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Variable (QualIdent Nothing (Ident "m" 360)))) (List []) (InfixApply (Variable (QualIdent Nothing (Ident "n" 360))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "enumFromTo" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 360))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 362) 1))))) (Variable (QualIdent Nothing (Ident "m" 360)))))) []))])
+,(TypeSig (487,1) [(Ident "enumFromThenTo" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))))
+,(FunctionDecl (488,1) (Ident "enumFromThenTo" 0) [(Equation (488,1) (FunLhs (Ident "enumFromThenTo" 0) [(VariablePattern (Ident "n1" 363)),(VariablePattern (Ident "n2" 363)),(VariablePattern (Ident "m" 363))]) (SimpleRhs (488,26) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "takeWhile" 0))) (Variable (QualIdent Nothing (Ident "p" 364)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "enumFromThen" 0))) (Variable (QualIdent Nothing (Ident "n1" 363)))) (Variable (QualIdent Nothing (Ident "n2" 363)))))) [(FunctionDecl (489,32) (Ident "p" 364) [(Equation (489,32) (FunLhs (Ident "p" 364) [(VariablePattern (Ident "x" 365))]) (GuardedRhs [(CondExpr (489,36) (InfixApply (Variable (QualIdent Nothing (Ident "n2" 363))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Variable (QualIdent Nothing (Ident "n1" 363)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 365))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Variable (QualIdent Nothing (Ident "m" 363)))))),(CondExpr (490,36) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 365))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Variable (QualIdent Nothing (Ident "m" 363))))))] []))])]))])
+,(TypeSig (494,1) [(Ident "ord" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (495,1) (Ident "ord" 0) [(Equation (495,1) (FunLhs (Ident "ord" 0) [(VariablePattern (Ident "c" 367))]) (SimpleRhs (495,9) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "prim_ord" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "c" 367)))) []))])
+,(TypeSig (497,1) [(Ident "prim_ord" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FlatExternalDecl (498,1) [(Ident "prim_ord" 0)])
+,(TypeSig (501,1) [(Ident "chr" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])))
+,(FunctionDecl (502,1) (Ident "chr" 0) [(Equation (502,1) (FunLhs (Ident "chr" 0) [(VariablePattern (Ident "i" 369))]) (SimpleRhs (502,9) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "prim_chr" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "i" 369)))) []))])
+,(TypeSig (504,1) [(Ident "prim_chr" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])))
+,(FlatExternalDecl (505,1) [(Ident "prim_chr" 0)])
+,(TypeSig (511,1) [(Ident "succ" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) [])))
+,(FunctionDecl (512,1) (Ident "succ" 0) [(Equation (512,1) (FunLhs (Ident "succ" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "bs" 371))]))]) (SimpleRhs (512,15) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "I" 0))) (Variable (QualIdent Nothing (Ident "bs" 371)))) [])),(Equation (513,1) (FunLhs (Ident "succ" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "bs" 373))]))]) (SimpleRhs (513,15) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "succ" 0))) (Variable (QualIdent Nothing (Ident "bs" 373)))))) [])),(Equation (514,1) (FunLhs (Ident "succ" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]) (SimpleRhs (514,12) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0)))) []))])
+,(TypeSig (516,1) [(Ident "+^" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []))))
+,(FunctionDecl (517,1) (Ident "+^" 0) [(Equation (517,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 377))]) (Ident "+^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 377))])) (SimpleRhs (517,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 377))) (InfixOp (QualIdent (Just "Prelude") (Ident "+^" 0))) (Variable (QualIdent Nothing (Ident "y" 377)))))) [])),(Equation (518,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 379))]) (Ident "+^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 379))])) (SimpleRhs (518,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "I" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 379))) (InfixOp (QualIdent (Just "Prelude") (Ident "+^" 0))) (Variable (QualIdent Nothing (Ident "y" 379)))))) [])),(Equation (519,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 381))]) (Ident "+^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])) (SimpleRhs (519,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "I" 0))) (Variable (QualIdent Nothing (Ident "x" 381)))) [])),(Equation (520,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 383))]) (Ident "+^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 383))])) (SimpleRhs (520,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "I" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 383))) (InfixOp (QualIdent (Just "Prelude") (Ident "+^" 0))) (Variable (QualIdent Nothing (Ident "y" 383)))))) [])),(Equation (521,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 385))]) (Ident "+^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 385))])) (SimpleRhs (521,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "succ" 0))) (Variable (QualIdent Nothing (Ident "x" 385)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+^" 0))) (Variable (QualIdent Nothing (Ident "y" 385)))))) [])),(Equation (522,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 387))]) (Ident "+^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])) (SimpleRhs (522,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "succ" 0))) (Variable (QualIdent Nothing (Ident "x" 387)))))) [])),(Equation (523,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []) (Ident "+^" 0) (VariablePattern (Ident "y" 389))) (SimpleRhs (523,14) (Apply (Variable (QualIdent (Just "Prelude") (Ident "succ" 0))) (Variable (QualIdent Nothing (Ident "y" 389)))) []))])
+,(TypeSig (525,1) [(Ident "cmpNat" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (526,1) (Ident "cmpNat" 0) [(Equation (526,1) (FunLhs (Ident "cmpNat" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]) (SimpleRhs (526,20) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0))) [])),(Equation (527,1) (FunLhs (Ident "cmpNat" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "_" 394))]))]) (SimpleRhs (527,20) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (528,1) (FunLhs (Ident "cmpNat" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "_" 397))]))]) (SimpleRhs (528,20) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (529,1) (FunLhs (Ident "cmpNat" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "_" 400))])),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]) (SimpleRhs (529,20) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (530,1) (FunLhs (Ident "cmpNat" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "_" 403))])),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]) (SimpleRhs (530,20) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (531,1) (FunLhs (Ident "cmpNat" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 405))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 405))]))]) (SimpleRhs (531,22) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "x" 405)))) (Variable (QualIdent Nothing (Ident "y" 405)))) [])),(Equation (532,1) (FunLhs (Ident "cmpNat" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 407))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 407))]))]) (SimpleRhs (532,22) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "x" 407)))) (Variable (QualIdent Nothing (Ident "y" 407)))) [])),(Equation (533,1) (FunLhs (Ident "cmpNat" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 409))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 409))]))]) (SimpleRhs (533,22) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatLT" 0))) (Variable (QualIdent Nothing (Ident "x" 409)))) (Variable (QualIdent Nothing (Ident "y" 409)))) [])),(Equation (534,1) (FunLhs (Ident "cmpNat" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 411))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 411))]))]) (SimpleRhs (534,22) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatGT" 0))) (Variable (QualIdent Nothing (Ident "x" 411)))) (Variable (QualIdent Nothing (Ident "y" 411)))) []))])
+,(TypeSig (536,1) [(Ident "cmpNatLT" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (537,1) (Ident "cmpNatLT" 0) [(Equation (537,1) (FunLhs (Ident "cmpNatLT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []),(VariablePattern (Ident "_" 414))]) (SimpleRhs (537,22) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (538,1) (FunLhs (Ident "cmpNatLT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "_" 417))])),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]) (SimpleRhs (538,22) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (539,1) (FunLhs (Ident "cmpNatLT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "_" 420))])),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]) (SimpleRhs (539,22) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (540,1) (FunLhs (Ident "cmpNatLT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 422))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 422))]))]) (SimpleRhs (540,24) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatLT" 0))) (Variable (QualIdent Nothing (Ident "x" 422)))) (Variable (QualIdent Nothing (Ident "y" 422)))) [])),(Equation (541,1) (FunLhs (Ident "cmpNatLT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 424))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 424))]))]) (SimpleRhs (541,24) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatLT" 0))) (Variable (QualIdent Nothing (Ident "x" 424)))) (Variable (QualIdent Nothing (Ident "y" 424)))) [])),(Equation (542,1) (FunLhs (Ident "cmpNatLT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 426))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 426))]))]) (SimpleRhs (542,24) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatLT" 0))) (Variable (QualIdent Nothing (Ident "x" 426)))) (Variable (QualIdent Nothing (Ident "y" 426)))) [])),(Equation (543,1) (FunLhs (Ident "cmpNatLT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 428))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 428))]))]) (SimpleRhs (543,24) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatGT" 0))) (Variable (QualIdent Nothing (Ident "x" 428)))) (Variable (QualIdent Nothing (Ident "y" 428)))) []))])
+,(TypeSig (545,1) [(Ident "cmpNatGT" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (546,1) (Ident "cmpNatGT" 0) [(Equation (546,1) (FunLhs (Ident "cmpNatGT" 0) [(VariablePattern (Ident "_" 431)),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]) (SimpleRhs (546,22) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (547,1) (FunLhs (Ident "cmpNatGT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "_" 434))]))]) (SimpleRhs (547,22) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (548,1) (FunLhs (Ident "cmpNatGT" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "_" 437))]))]) (SimpleRhs (548,22) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (549,1) (FunLhs (Ident "cmpNatGT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 439))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 439))]))]) (SimpleRhs (549,24) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatGT" 0))) (Variable (QualIdent Nothing (Ident "x" 439)))) (Variable (QualIdent Nothing (Ident "y" 439)))) [])),(Equation (550,1) (FunLhs (Ident "cmpNatGT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 441))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 441))]))]) (SimpleRhs (550,24) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatGT" 0))) (Variable (QualIdent Nothing (Ident "x" 441)))) (Variable (QualIdent Nothing (Ident "y" 441)))) [])),(Equation (551,1) (FunLhs (Ident "cmpNatGT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 443))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 443))]))]) (SimpleRhs (551,24) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatLT" 0))) (Variable (QualIdent Nothing (Ident "x" 443)))) (Variable (QualIdent Nothing (Ident "y" 443)))) [])),(Equation (552,1) (FunLhs (Ident "cmpNatGT" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 445))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 445))]))]) (SimpleRhs (552,24) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNatGT" 0))) (Variable (QualIdent Nothing (Ident "x" 445)))) (Variable (QualIdent Nothing (Ident "y" 445)))) []))])
+,(TypeSig (554,1) [(Ident "<^" 0),(Ident ">^" 0),(Ident "<=^" 0),(Ident ">=^" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (556,1) (Ident "<^" 0) [(Equation (556,1) (OpLhs (VariablePattern (Ident "x" 447)) (Ident "<^" 0) (VariablePattern (Ident "y" 447))) (SimpleRhs (556,11) (Apply (Variable (QualIdent (Just "Prelude") (Ident "isLT" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "x" 447)))) (Variable (QualIdent Nothing (Ident "y" 447)))))) []))])
+,(FunctionDecl (557,1) (Ident ">^" 0) [(Equation (557,1) (OpLhs (VariablePattern (Ident "x" 449)) (Ident ">^" 0) (VariablePattern (Ident "y" 449))) (SimpleRhs (557,11) (Apply (Variable (QualIdent (Just "Prelude") (Ident "isGT" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "x" 449)))) (Variable (QualIdent Nothing (Ident "y" 449)))))) []))])
+,(FunctionDecl (558,1) (Ident "<=^" 0) [(Equation (558,1) (OpLhs (VariablePattern (Ident "x" 451)) (Ident "<=^" 0) (VariablePattern (Ident "y" 451))) (SimpleRhs (558,11) (Apply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "isGT" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "x" 451)))) (Variable (QualIdent Nothing (Ident "y" 451)))))))) []))])
+,(FunctionDecl (559,1) (Ident ">=^" 0) [(Equation (559,1) (OpLhs (VariablePattern (Ident "x" 453)) (Ident ">=^" 0) (VariablePattern (Ident "y" 453))) (SimpleRhs (559,11) (Apply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "isLT" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "x" 453)))) (Variable (QualIdent Nothing (Ident "y" 453)))))))) []))])
+,(TypeSig (561,1) [(Ident "*^" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []))))
+,(FunctionDecl (562,1) (Ident "*^" 0) [(Equation (562,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []) (Ident "*^" 0) (VariablePattern (Ident "y" 455))) (SimpleRhs (562,12) (Variable (QualIdent Nothing (Ident "y" 455))) [])),(Equation (563,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 457))]) (Ident "*^" 0) (VariablePattern (Ident "y" 457))) (SimpleRhs (563,12) (InfixApply (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 457))) (InfixOp (QualIdent (Just "Prelude") (Ident "*^" 0))) (Variable (QualIdent Nothing (Ident "x" 457)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "+^" 0))) (Variable (QualIdent Nothing (Ident "y" 457)))) [])),(Equation (564,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 459))]) (Ident "*^" 0) (VariablePattern (Ident "y" 459))) (SimpleRhs (564,12) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 459))) (InfixOp (QualIdent (Just "Prelude") (Ident "*^" 0))) (Variable (QualIdent Nothing (Ident "y" 459)))))) []))])
+,(TypeSig (566,1) [(Ident "pred" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) [])))
+,(FunctionDecl (567,1) (Ident "pred" 0) [(Equation (567,1) (FunLhs (Ident "pred" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]))]) (SimpleRhs (567,20) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0))) [])),(Equation (568,1) (FunLhs (Ident "pred" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(AsPattern (Ident "x" 463) (ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "_" 464))])))]))]) (SimpleRhs (568,20) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "I" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "pred" 0))) (Variable (QualIdent Nothing (Ident "x" 463)))))) [])),(Equation (569,1) (FunLhs (Ident "pred" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 466))]))]))]) (SimpleRhs (569,20) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "I" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "x" 466)))))) [])),(Equation (570,1) (FunLhs (Ident "pred" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 468))]))]) (SimpleRhs (570,20) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "x" 468)))) []))])
+,(TypeSig (578,1) [(Ident "inc" 0),(Ident "dec" 0),(Ident "mult2" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (580,1) (Ident "inc" 0) [(Equation (580,1) (FunLhs (Ident "inc" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (580,12) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0)))) [])),(Equation (581,1) (FunLhs (Ident "inc" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "n" 472))]))]) (SimpleRhs (581,15) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "succ" 0))) (Variable (QualIdent Nothing (Ident "n" 472)))))) [])),(Equation (582,1) (FunLhs (Ident "inc" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]))]) (SimpleRhs (582,17) (Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))) [])),(Equation (583,1) (FunLhs (Ident "inc" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "n" 476))]))]))]) (SimpleRhs (583,19) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "pred" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "n" 476)))))))) [])),(Equation (584,1) (FunLhs (Ident "inc" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "n" 478))]))]))]) (SimpleRhs (584,19) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "n" 478)))))) []))])
+,(FunctionDecl (586,1) (Ident "dec" 0) [(Equation (586,1) (FunLhs (Ident "dec" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (586,12) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0)))) [])),(Equation (587,1) (FunLhs (Ident "dec" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "n" 482))]))]) (SimpleRhs (587,15) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "succ" 0))) (Variable (QualIdent Nothing (Ident "n" 482)))))) [])),(Equation (588,1) (FunLhs (Ident "dec" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]))]) (SimpleRhs (588,17) (Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))) [])),(Equation (589,1) (FunLhs (Ident "dec" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "n" 486))]))]))]) (SimpleRhs (589,19) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "pred" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "n" 486)))))))) [])),(Equation (590,1) (FunLhs (Ident "dec" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "n" 488))]))]))]) (SimpleRhs (590,19) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "n" 488)))))) []))])
+,(FunctionDecl (592,1) (Ident "mult2" 0) [(Equation (592,1) (FunLhs (Ident "mult2" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "n" 490))]))]) (SimpleRhs (592,17) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "n" 490)))))) [])),(Equation (593,1) (FunLhs (Ident "mult2" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (593,17) (Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))) [])),(Equation (594,1) (FunLhs (Ident "mult2" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "n" 494))]))]) (SimpleRhs (594,17) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "n" 494)))))) []))])
+,(TypeSig (596,1) [(Ident "-^" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (597,1) (Ident "-^" 0) [(Equation (597,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) []) (Ident "-^" 0) (VariablePattern (Ident "y" 496))) (SimpleRhs (597,14) (Apply (Variable (QualIdent (Just "Prelude") (Ident "inc" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Variable (QualIdent Nothing (Ident "y" 496)))))) [])),(Equation (598,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 498))]) (Ident "-^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])) (SimpleRhs (598,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "pred" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "x" 498)))))))) [])),(Equation (599,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 500))]) (Ident "-^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 500))])) (SimpleRhs (599,14) (Apply (Variable (QualIdent (Just "Prelude") (Ident "mult2" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 500))) (InfixOp (QualIdent (Just "Prelude") (Ident "-^" 0))) (Variable (QualIdent Nothing (Ident "y" 500)))))) [])),(Equation (600,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 502))]) (Ident "-^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 502))])) (SimpleRhs (600,14) (Apply (Variable (QualIdent (Just "Prelude") (Ident "dec" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "mult2" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 502))) (InfixOp (QualIdent (Just "Prelude") (Ident "-^" 0))) (Variable (QualIdent Nothing (Ident "y" 502)))))))) [])),(Equation (601,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 504))]) (Ident "-^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])) (SimpleRhs (601,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "x" 504)))))) [])),(Equation (602,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 506))]) (Ident "-^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "y" 506))])) (SimpleRhs (602,14) (Apply (Variable (QualIdent (Just "Prelude") (Ident "inc" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "mult2" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 506))) (InfixOp (QualIdent (Just "Prelude") (Ident "-^" 0))) (Variable (QualIdent Nothing (Ident "y" 506)))))))) [])),(Equation (603,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 508))]) (Ident "-^" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "y" 508))])) (SimpleRhs (603,14) (Apply (Variable (QualIdent (Just "Prelude") (Ident "mult2" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 508))) (InfixOp (QualIdent (Just "Prelude") (Ident "-^" 0))) (Variable (QualIdent Nothing (Ident "y" 508)))))) []))])
+,(TypeSig (605,1) [(Ident "div2" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) [])))
+,(FunctionDecl (606,1) (Ident "div2" 0) [(Equation (606,1) (FunLhs (Ident "div2" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "x" 510))]))]) (SimpleRhs (606,14) (Variable (QualIdent Nothing (Ident "x" 510))) [])),(Equation (607,1) (FunLhs (Ident "div2" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "x" 512))]))]) (SimpleRhs (607,14) (Variable (QualIdent Nothing (Ident "x" 512))) []))])
+,(TypeSig (609,1) [(Ident "mod2" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (610,1) (Ident "mod2" 0) [(Equation (610,1) (FunLhs (Ident "mod2" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "IHi" 0)) [])]) (SimpleRhs (610,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0)))) [])),(Equation (611,1) (FunLhs (Ident "mod2" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "_" 517))]))]) (SimpleRhs (611,14) (Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))) [])),(Equation (612,1) (FunLhs (Ident "mod2" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "_" 520))]))]) (SimpleRhs (612,14) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0)))) []))])
+,(TypeSig (614,1) [(Ident "divmodNat" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Nat" 0)) []) (TupleType [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))))
+,(FunctionDecl (615,1) (Ident "divmodNat" 0) [(Equation (615,1) (FunLhs (Ident "divmodNat" 0) [(VariablePattern (Ident "x" 522)),(VariablePattern (Ident "y" 522))]) (GuardedRhs [(CondExpr (616,3) (InfixApply (Variable (QualIdent Nothing (Ident "y" 522))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0)))) (Tuple [(Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Variable (QualIdent Nothing (Ident "x" 522)))),(Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0)))])),(CondExpr (617,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Case (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "cmpNat" 0))) (Variable (QualIdent Nothing (Ident "x" 522)))) (Variable (QualIdent Nothing (Ident "y" 522)))) [(Alt (618,5) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "EQ" 0)) []) (SimpleRhs (618,11) (Tuple [(Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0)))),(Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0)))]) [])),(Alt (619,5) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "LT" 0)) []) (SimpleRhs (619,11) (Tuple [(Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))),(Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Variable (QualIdent Nothing (Ident "x" 522))))]) [])),(Alt (620,5) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "GT" 0)) []) (SimpleRhs (620,11) (Case (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "divmodNat" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "div2" 0))) (Variable (QualIdent Nothing (Ident "x" 522)))))) (Variable (QualIdent Nothing (Ident "y" 522)))) [(Alt (621,7) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []),(VariablePattern (Ident "_" 537))]) (SimpleRhs (621,24) (Tuple [(Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "IHi" 0)))),(InfixApply (Variable (QualIdent Nothing (Ident "x" 522))) (InfixOp (QualIdent (Just "Prelude") (Ident "-^" 0))) (Variable (QualIdent Nothing (Ident "y" 522))))]) [])),(Alt (622,7) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "d" 539))]),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (622,24) (Tuple [(Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "d" 539)))))),(Apply (Variable (QualIdent (Just "Prelude") (Ident "mod2" 0))) (Variable (QualIdent Nothing (Ident "x" 522))))]) [])),(Alt (623,7) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "d" 541))]),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "m" 541))])]) (SimpleRhs (623,24) (Case (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "divmodNat" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "shift" 523))) (Variable (QualIdent Nothing (Ident "x" 522)))) (Variable (QualIdent Nothing (Ident "m" 541)))))) (Variable (QualIdent Nothing (Ident "y" 522)))) [(Alt (624,9) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []),(VariablePattern (Ident "m'" 543))]) (SimpleRhs (624,24) (Tuple [(Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "d" 541)))))),(Variable (QualIdent Nothing (Ident "m'" 543)))]) [])),(Alt (625,9) (TuplePattern [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "d'" 545))]),(VariablePattern (Ident "m'" 545))]) (SimpleRhs (625,24) (Tuple [(Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (InfixApply (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "d" 541)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+^" 0))) (Variable (QualIdent Nothing (Ident "d'" 545)))))),(Variable (QualIdent Nothing (Ident "m'" 545)))]) []))]) []))]) []))]))] [(FunctionDecl (627,5) (Ident "shift" 523) [(Equation (627,5) (FunLhs (Ident "shift" 523) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "O" 0)) [(VariablePattern (Ident "_" 525))])),(VariablePattern (Ident "n" 524))]) (SimpleRhs (627,21) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "O" 0))) (Variable (QualIdent Nothing (Ident "n" 524)))) [])),(Equation (628,5) (FunLhs (Ident "shift" 523) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "I" 0)) [(VariablePattern (Ident "_" 528))])),(VariablePattern (Ident "n" 527))]) (SimpleRhs (628,21) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "I" 0))) (Variable (QualIdent Nothing (Ident "n" 527)))) []))])]))])
+,(TypeSig (632,1) [(Ident "+" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (633,1) (Ident "+" 0) [(Equation (633,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "x" 547))]) (Ident "+" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "y" 547))])) (SimpleRhs (633,17) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 547))) (InfixOp (QualIdent (Just "Prelude") (Ident "+^" 0))) (Variable (QualIdent Nothing (Ident "y" 547)))))) [])),(Equation (634,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "x" 549))]) (Ident "+" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "y" 549))])) (SimpleRhs (634,17) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 549))) (InfixOp (QualIdent (Just "Prelude") (Ident "+^" 0))) (Variable (QualIdent Nothing (Ident "y" 549)))))) [])),(Equation (635,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "x" 551))]) (Ident "+" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "y" 551))])) (SimpleRhs (635,17) (InfixApply (Variable (QualIdent Nothing (Ident "x" 551))) (InfixOp (QualIdent (Just "Prelude") (Ident "-^" 0))) (Variable (QualIdent Nothing (Ident "y" 551)))) [])),(Equation (636,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "x" 553))]) (Ident "+" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "y" 553))])) (SimpleRhs (636,17) (InfixApply (Variable (QualIdent Nothing (Ident "y" 553))) (InfixOp (QualIdent (Just "Prelude") (Ident "-^" 0))) (Variable (QualIdent Nothing (Ident "x" 553)))) [])),(Equation (637,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []) (Ident "+" 0) (VariablePattern (Ident "x" 555))) (SimpleRhs (637,17) (Variable (QualIdent Nothing (Ident "x" 555))) [])),(Equation (638,1) (OpLhs (AsPattern (Ident "x" 557) (ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "_" 558))]))) (Ident "+" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])) (SimpleRhs (638,20) (Variable (QualIdent Nothing (Ident "x" 557))) [])),(Equation (639,1) (OpLhs (AsPattern (Ident "x" 560) (ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "_" 561))]))) (Ident "+" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])) (SimpleRhs (639,20) (Variable (QualIdent Nothing (Ident "x" 560))) []))])
+,(TypeSig (642,1) [(Ident "-" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (643,1) (Ident "-" 0) [(Equation (643,1) (OpLhs (VariablePattern (Ident "x" 563)) (Ident "-" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "y" 563))])) (SimpleRhs (643,13) (InfixApply (Variable (QualIdent Nothing (Ident "x" 563))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Variable (QualIdent Nothing (Ident "y" 563))))) [])),(Equation (644,1) (OpLhs (VariablePattern (Ident "x" 565)) (Ident "-" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "y" 565))])) (SimpleRhs (644,13) (InfixApply (Variable (QualIdent Nothing (Ident "x" 565))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Variable (QualIdent Nothing (Ident "y" 565))))) [])),(Equation (645,1) (OpLhs (VariablePattern (Ident "x" 567)) (Ident "-" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])) (SimpleRhs (645,13) (Variable (QualIdent Nothing (Ident "x" 567))) []))])
+,(TypeSig (648,1) [(Ident "*" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (649,1) (Ident "*" 0) [(Equation (649,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "x" 569))]) (Ident "*" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "y" 569))])) (SimpleRhs (649,17) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 569))) (InfixOp (QualIdent (Just "Prelude") (Ident "*^" 0))) (Variable (QualIdent Nothing (Ident "y" 569)))))) [])),(Equation (650,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "x" 571))]) (Ident "*" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "y" 571))])) (SimpleRhs (650,17) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 571))) (InfixOp (QualIdent (Just "Prelude") (Ident "*^" 0))) (Variable (QualIdent Nothing (Ident "y" 571)))))) [])),(Equation (651,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "x" 573))]) (Ident "*" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "y" 573))])) (SimpleRhs (651,17) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 573))) (InfixOp (QualIdent (Just "Prelude") (Ident "*^" 0))) (Variable (QualIdent Nothing (Ident "y" 573)))))) [])),(Equation (652,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "x" 575))]) (Ident "*" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "y" 575))])) (SimpleRhs (652,17) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 575))) (InfixOp (QualIdent (Just "Prelude") (Ident "*^" 0))) (Variable (QualIdent Nothing (Ident "y" 575)))))) [])),(Equation (653,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []) (Ident "*" 0) (VariablePattern (Ident "_" 578))) (SimpleRhs (653,17) (Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))) [])),(Equation (654,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "_" 581))]) (Ident "*" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])) (SimpleRhs (654,17) (Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))) [])),(Equation (655,1) (OpLhs (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "_" 584))]) (Ident "*" 0) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])) (SimpleRhs (655,17) (Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))) []))])
+,(TypeSig (666,1) [(Ident "divmod" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (TupleType [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))))
+,(FunctionDecl (667,1) (Ident "divmod" 0) [(Equation (667,1) (FunLhs (Ident "divmod" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) []),(VariablePattern (Ident "_" 587))]) (SimpleRhs (667,26) (Tuple [(Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))),(Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0)))]) [])),(Equation (668,1) (FunLhs (Ident "divmod" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "_" 590))])),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (668,26) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "division by 0"))) [])),(Equation (669,1) (FunLhs (Ident "divmod" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "x" 592))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "y" 592))]))]) (SimpleRhs (669,26) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "divmodNat" 0))) (Variable (QualIdent Nothing (Ident "x" 592)))) (Variable (QualIdent Nothing (Ident "y" 592)))) [])),(Equation (670,1) (FunLhs (Ident "divmod" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "x" 594))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "y" 594))]))]) (SimpleRhs (670,26) (Let [(PatternDecl (670,30) (TuplePattern [(VariablePattern (Ident "d" 596)),(VariablePattern (Ident "m" 596))]) (SimpleRhs (670,38) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "divmodNat" 0))) (Variable (QualIdent Nothing (Ident "x" 594)))) (Variable (QualIdent Nothing (Ident "y" 594)))) []))] (Tuple [(Apply (Variable (QualIdent (Just "Prelude") (Ident "negate" 0))) (Variable (QualIdent Nothing (Ident "d" 596)))),(Variable (QualIdent Nothing (Ident "m" 596)))])) [])),(Equation (671,1) (FunLhs (Ident "divmod" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "_" 599))])),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (671,26) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "division by 0"))) [])),(Equation (672,1) (FunLhs (Ident "divmod" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "x" 601))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "y" 601))]))]) (SimpleRhs (672,26) (Let [(PatternDecl (672,30) (TuplePattern [(VariablePattern (Ident "d" 603)),(VariablePattern (Ident "m" 603))]) (SimpleRhs (672,38) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "divmodNat" 0))) (Variable (QualIdent Nothing (Ident "x" 601)))) (Variable (QualIdent Nothing (Ident "y" 601)))) []))] (Tuple [(Apply (Variable (QualIdent (Just "Prelude") (Ident "negate" 0))) (Variable (QualIdent Nothing (Ident "d" 603)))),(Apply (Variable (QualIdent (Just "Prelude") (Ident "negate" 0))) (Variable (QualIdent Nothing (Ident "m" 603))))])) [])),(Equation (673,1) (FunLhs (Ident "divmod" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "x" 605))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "y" 605))]))]) (SimpleRhs (673,26) (Let [(PatternDecl (673,30) (TuplePattern [(VariablePattern (Ident "d" 607)),(VariablePattern (Ident "m" 607))]) (SimpleRhs (673,38) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "divmodNat" 0))) (Variable (QualIdent Nothing (Ident "x" 605)))) (Variable (QualIdent Nothing (Ident "y" 605)))) []))] (Tuple [(Variable (QualIdent Nothing (Ident "d" 607))),(Apply (Variable (QualIdent (Just "Prelude") (Ident "negate" 0))) (Variable (QualIdent Nothing (Ident "m" 607))))])) []))])
+,(TypeSig (675,1) [(Ident "div" 0),(Ident "mod" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (676,1) (Ident "div" 0) [(Equation (676,1) (OpLhs (VariablePattern (Ident "x" 609)) (Ident "div" 0) (VariablePattern (Ident "y" 609))) (SimpleRhs (676,13) (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "divmod" 0))) (Variable (QualIdent Nothing (Ident "x" 609)))) (Variable (QualIdent Nothing (Ident "y" 609)))))) []))])
+,(FunctionDecl (678,1) (Ident "mod" 0) [(Equation (678,1) (OpLhs (VariablePattern (Ident "x" 611)) (Ident "mod" 0) (VariablePattern (Ident "y" 611))) (SimpleRhs (678,13) (Apply (Variable (QualIdent (Just "Prelude") (Ident "snd" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "divmod" 0))) (Variable (QualIdent Nothing (Ident "x" 611)))) (Variable (QualIdent Nothing (Ident "y" 611)))))) []))])
+,(TypeSig (681,1) [(Ident "negate" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (682,1) (Ident "negate" 0) [(Equation (682,1) (FunLhs (Ident "negate" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Zero" 0)) [])]) (SimpleRhs (682,18) (Constructor (QualIdent (Just "Prelude") (Ident "Zero" 0))) [])),(Equation (683,1) (FunLhs (Ident "negate" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Pos" 0)) [(VariablePattern (Ident "x" 615))]))]) (SimpleRhs (683,18) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Neg" 0))) (Variable (QualIdent Nothing (Ident "x" 615)))) [])),(Equation (684,1) (FunLhs (Ident "negate" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Neg" 0)) [(VariablePattern (Ident "x" 617))]))]) (SimpleRhs (684,18) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Pos" 0))) (Variable (QualIdent Nothing (Ident "x" 617)))) []))])
+,(TypeSig (692,1) [(Ident "success" 0)] (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []))
+,(FunctionDecl (693,1) (Ident "success" 0) [(Equation (693,1) (FunLhs (Ident "success" 0) []) (SimpleRhs (693,11) (Constructor (QualIdent (Just "Prelude") (Ident "Success" 0))) []))])
+,(TypeSig (699,1) [(Ident "=:=" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []))))
+,(FunctionDecl (700,1) (Ident "=:=" 0) [(Equation (700,1) (OpLhs (VariablePattern (Ident "x" 621)) (Ident "=:=" 0) (VariablePattern (Ident "y" 621))) (GuardedRhs [(CondExpr (700,9) (InfixApply (Variable (QualIdent Nothing (Ident "x" 621))) (InfixOp (QualIdent (Just "Prelude") (Ident "===" 0))) (Variable (QualIdent Nothing (Ident "y" 621)))) (Variable (QualIdent (Just "Prelude") (Ident "success" 0))))] []))])
+,(TypeSig (702,1) [(Ident "===" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FlatExternalDecl (703,1) [(Ident "===" 0)])
+,(TypeSig (709,1) [(Ident "&" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []))))
+,(FlatExternalDecl (710,1) [(Ident "&" 0)])
+,(TypeSig (715,1) [(Ident "&>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (716,1) (Ident "&>" 0) [(Equation (716,1) (OpLhs (VariablePattern (Ident "c" 623)) (Ident "&>" 0) (VariablePattern (Ident "x" 623))) (GuardedRhs [(CondExpr (716,8) (Variable (QualIdent Nothing (Ident "c" 623))) (Variable (QualIdent Nothing (Ident "x" 623))))] []))])
+,(TypeSig (725,1) [(Ident "maybe" 0)] (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "b" 0))))))
+,(FunctionDecl (726,1) (Ident "maybe" 0) [(Equation (726,1) (FunLhs (Ident "maybe" 0) [(VariablePattern (Ident "n" 625)),(VariablePattern (Ident "_" 626)),(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) [])]) (SimpleRhs (726,22) (Variable (QualIdent Nothing (Ident "n" 625))) [])),(Equation (727,1) (FunLhs (Ident "maybe" 0) [(VariablePattern (Ident "_" 629)),(VariablePattern (Ident "f" 628)),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "x" 628))]))]) (SimpleRhs (727,22) (Apply (Variable (QualIdent Nothing (Ident "f" 628))) (Variable (QualIdent Nothing (Ident "x" 628)))) []))])
+,(TypeSig (734,1) [(Ident "either" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "c" 0))) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Either" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (VariableType (Ident "c" 0))))))
+,(FunctionDecl (735,1) (Ident "either" 0) [(Equation (735,1) (FunLhs (Ident "either" 0) [(VariablePattern (Ident "f" 631)),(VariablePattern (Ident "_" 632)),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Left" 0)) [(VariablePattern (Ident "x" 631))]))]) (SimpleRhs (735,24) (Apply (Variable (QualIdent Nothing (Ident "f" 631))) (Variable (QualIdent Nothing (Ident "x" 631)))) [])),(Equation (736,1) (FunLhs (Ident "either" 0) [(VariablePattern (Ident "_" 635)),(VariablePattern (Ident "g" 634)),(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Right" 0)) [(VariablePattern (Ident "x" 634))]))]) (SimpleRhs (736,24) (Apply (Variable (QualIdent Nothing (Ident "g" 634))) (Variable (QualIdent Nothing (Ident "x" 634)))) []))])
+,(TypeSig (748,1) [(Ident ">>=" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))
+,(FlatExternalDecl (749,1) [(Ident ">>=" 0)])
+,(TypeSig (752,1) [(Ident "return" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))
+,(FlatExternalDecl (753,1) [(Ident "return" 0)])
+,(TypeSig (759,1) [(Ident ">>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "_" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (760,1) (Ident ">>" 0) [(Equation (760,1) (OpLhs (VariablePattern (Ident "a" 637)) (Ident ">>" 0) (VariablePattern (Ident "b" 637))) (SimpleRhs (760,21) (InfixApply (Variable (QualIdent Nothing (Ident "a" 637))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Variable (QualIdent Nothing (Ident "b" 637))))) []))])
+,(TypeSig (763,1) [(Ident "done" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))
+,(FunctionDecl (764,1) (Ident "done" 0) [(Equation (764,1) (FunLhs (Ident "done" 0) []) (SimpleRhs (764,21) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple [])) []))])
+,(TypeSig (767,1) [(Ident "putChar" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (768,1) (Ident "putChar" 0) [(Equation (768,1) (FunLhs (Ident "putChar" 0) [(VariablePattern (Ident "c" 641))]) (SimpleRhs (768,13) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "prim_putChar" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "c" 641)))) []))])
+,(TypeSig (770,1) [(Ident "prim_putChar" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (771,1) [(Ident "prim_putChar" 0)])
+,(TypeSig (774,1) [(Ident "getChar" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Char" 0)) [])]))
+,(FlatExternalDecl (775,1) [(Ident "getChar" 0)])
+,(TypeSig (778,1) [(Ident "readFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FunctionDecl (779,1) (Ident "readFile" 0) [(Equation (779,1) (FunLhs (Ident "readFile" 0) [(VariablePattern (Ident "s" 643))]) (SimpleRhs (779,14) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "prim_readFile" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 643)))) []))])
+,(TypeSig (781,1) [(Ident "prim_readFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FlatExternalDecl (782,1) [(Ident "prim_readFile" 0)])
+,(TypeSig (787,1) [(Ident "writeFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (788,1) (Ident "writeFile" 0) [(Equation (788,1) (FunLhs (Ident "writeFile" 0) [(VariablePattern (Ident "fn" 645)),(VariablePattern (Ident "s" 645))]) (SimpleRhs (788,18) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "prim_writeFile" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "fn" 645))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 645)))) []))])
+,(TypeSig (790,1) [(Ident "prim_writeFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (791,1) [(Ident "prim_writeFile" 0)])
+,(TypeSig (797,1) [(Ident "appendFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (798,1) (Ident "appendFile" 0) [(Equation (798,1) (FunLhs (Ident "appendFile" 0) [(VariablePattern (Ident "fn" 647)),(VariablePattern (Ident "s" 647))]) (SimpleRhs (798,19) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "prim_appendFile" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "fn" 647))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 647)))) []))])
+,(TypeSig (800,1) [(Ident "prim_appendFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (801,1) [(Ident "prim_appendFile" 0)])
+,(TypeSig (807,1) [(Ident "catchFail" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))))
+,(FlatExternalDecl (808,1) [(Ident "catchFail" 0)])
+,(TypeSig (811,1) [(Ident "putStr" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (812,1) (Ident "putStr" 0) [(Equation (812,1) (FunLhs (Ident "putStr" 0) [(ListPattern [])]) (SimpleRhs (812,21) (Variable (QualIdent (Just "Prelude") (Ident "done" 0))) [])),(Equation (813,1) (FunLhs (Ident "putStr" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 651)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 651))))]) (SimpleRhs (813,21) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putChar" 0))) (Variable (QualIdent Nothing (Ident "c" 651)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Variable (QualIdent Nothing (Ident "cs" 651))))) []))])
+,(TypeSig (816,1) [(Ident "putStrLn" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (817,1) (Ident "putStrLn" 0) [(Equation (817,1) (FunLhs (Ident "putStrLn" 0) [(VariablePattern (Ident "cs" 653))]) (SimpleRhs (817,21) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Variable (QualIdent Nothing (Ident "cs" 653)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "putChar" 0))) (Literal (Char '\n')))) []))])
+,(TypeSig (820,1) [(Ident "getLine" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))
+,(FunctionDecl (821,1) (Ident "getLine" 0) [(Equation (821,1) (FunLhs (Ident "getLine" 0) []) (SimpleRhs (821,21) (Do [(StmtBind (VariablePattern (Ident "c" 657)) (Variable (QualIdent (Just "Prelude") (Ident "getChar" 0))))] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "c" 657))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '\n'))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (List [])) (Do [(StmtBind (VariablePattern (Ident "cs" 658)) (Variable (QualIdent (Just "Prelude") (Ident "getLine" 0))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 657))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "cs" 658))))))))) []))])
+,(TypeSig (827,1) [(Ident "show" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (828,1) (Ident "show" 0) [(Equation (828,1) (FunLhs (Ident "show" 0) [(VariablePattern (Ident "s" 659))]) (SimpleRhs (828,10) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "prim_show" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 659)))) []))])
+,(TypeSig (830,1) [(Ident "prim_show" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FlatExternalDecl (831,1) [(Ident "prim_show" 0)])
+,(TypeSig (834,1) [(Ident "print" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (835,1) (Ident "print" 0) [(Equation (835,1) (FunLhs (Ident "print" 0) [(VariablePattern (Ident "t" 661))]) (SimpleRhs (835,11) (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "t" 661)))))) []))])
+,(TypeSig (839,1) [(Ident "doSolve" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (840,1) (Ident "doSolve" 0) [(Equation (840,1) (FunLhs (Ident "doSolve" 0) [(VariablePattern (Ident "constraint" 663))]) (GuardedRhs [(CondExpr (840,20) (Variable (QualIdent Nothing (Ident "constraint" 663))) (Variable (QualIdent (Just "Prelude") (Ident "done" 0))))] []))])
+,(TypeSig (846,1) [(Ident "sequenceIO" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (VariableType (Ident "a" 0)))])))
+,(FunctionDecl (847,1) (Ident "sequenceIO" 0) [(Equation (847,1) (FunLhs (Ident "sequenceIO" 0) [(ListPattern [])]) (SimpleRhs (847,21) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (List [])) [])),(Equation (848,1) (FunLhs (Ident "sequenceIO" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 667)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 667))))]) (SimpleRhs (848,21) (Do [(StmtBind (VariablePattern (Ident "x" 669)) (Variable (QualIdent Nothing (Ident "c" 667)))),(StmtBind (VariablePattern (Ident "xs" 670)) (Apply (Variable (QualIdent (Just "Prelude") (Ident "sequenceIO" 0))) (Variable (QualIdent Nothing (Ident "cs" 667)))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 669))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 670))))))) []))])
+,(TypeSig (853,1) [(Ident "sequenceIO_" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "_" 0))])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (854,1) (Ident "sequenceIO_" 0) [(Equation (854,1) (FunLhs (Ident "sequenceIO_" 0) []) (SimpleRhs (854,23) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "Prelude") (Ident ">>" 0)))) (Variable (QualIdent (Just "Prelude") (Ident "done" 0)))) []))])
+,(TypeSig (858,1) [(Ident "mapIO" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (VariableType (Ident "b" 0)))]))))
+,(FunctionDecl (859,1) (Ident "mapIO" 0) [(Equation (859,1) (FunLhs (Ident "mapIO" 0) [(VariablePattern (Ident "f" 673))]) (SimpleRhs (859,22) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "sequenceIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "f" 673))))) []))])
+,(TypeSig (863,1) [(Ident "mapIO_" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "_" 0))])) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (864,1) (Ident "mapIO_" 0) [(Equation (864,1) (FunLhs (Ident "mapIO_" 0) [(VariablePattern (Ident "f" 675))]) (SimpleRhs (864,22) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "sequenceIO_" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "f" 675))))) []))])
+,(TypeSig (875,1) [(Ident "?" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (876,1) (Ident "?" 0) [(Equation (876,1) (OpLhs (VariablePattern (Ident "x" 677)) (Ident "?" 0) (VariablePattern (Ident "_" 678))) (SimpleRhs (876,9) (Variable (QualIdent Nothing (Ident "x" 677))) [])),(Equation (877,1) (OpLhs (VariablePattern (Ident "_" 681)) (Ident "?" 0) (VariablePattern (Ident "y" 680))) (SimpleRhs (877,9) (Variable (QualIdent Nothing (Ident "y" 680))) []))])
+,(TypeSig (902,1) [(Ident "getSearchTree" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))])])))
+,(FlatExternalDecl (903,1) [(Ident "getSearchTree" 0)])
+,(TypeSig (938,1) [(Ident "allValuesD" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (939,1) (Ident "allValuesD" 0) [(Equation (939,1) (FunLhs (Ident "allValuesD" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Value" 0)) [(VariablePattern (Ident "x" 683))]))]) (SimpleRhs (939,24) (List [(Variable (QualIdent Nothing (Ident "x" 683)))]) [])),(Equation (940,1) (FunLhs (Ident "allValuesD" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Fail" 0)) [])]) (SimpleRhs (940,24) (List []) [])),(Equation (941,1) (FunLhs (Ident "allValuesD" 0) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Suspend" 0)) [])]) (SimpleRhs (941,24) (List []) [])),(Equation (942,1) (FunLhs (Ident "allValuesD" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Choice" 0)) [(VariablePattern (Ident "xs" 689))]))]) (SimpleRhs (942,28) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "concatMap" 0))) (Variable (QualIdent (Just "Prelude") (Ident "allValuesD" 0)))) (Variable (QualIdent Nothing (Ident "xs" 689)))) []))])
+,(TypeSig (945,1) [(Ident "allValuesB" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SearchTree" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (946,1) (Ident "allValuesB" 0) [(Equation (946,1) (FunLhs (Ident "allValuesB" 0) [(VariablePattern (Ident "st" 691))]) (SimpleRhs (946,17) (Apply (Variable (QualIdent Nothing (Ident "unfoldOrs" 692))) (List [(Variable (QualIdent Nothing (Ident "st" 691)))])) [(FunctionDecl (948,5) (Ident "partition" 692) [(Equation (948,5) (FunLhs (Ident "partition" 692) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Value" 0)) [(VariablePattern (Ident "x" 693))])),(VariablePattern (Ident "y" 693))]) (SimpleRhs (948,29) (Let [(PatternDecl (948,33) (TuplePattern [(VariablePattern (Ident "vs" 695)),(VariablePattern (Ident "ors" 695))]) (SimpleRhs (948,44) (Variable (QualIdent Nothing (Ident "y" 693))) []))] (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "x" 693))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "vs" 695)))),(Variable (QualIdent Nothing (Ident "ors" 695)))])) [])),(Equation (949,5) (FunLhs (Ident "partition" 692) [(ParenPattern (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Choice" 0)) [(VariablePattern (Ident "xs" 697))])),(VariablePattern (Ident "y" 697))]) (SimpleRhs (949,33) (Let [(PatternDecl (949,37) (TuplePattern [(VariablePattern (Ident "vs" 699)),(VariablePattern (Ident "ors" 699))]) (SimpleRhs (949,48) (Variable (QualIdent Nothing (Ident "y" 697))) []))] (Tuple [(Variable (QualIdent Nothing (Ident "vs" 699))),(InfixApply (Variable (QualIdent Nothing (Ident "xs" 697))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "ors" 699))))])) [])),(Equation (950,5) (FunLhs (Ident "partition" 692) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Fail" 0)) []),(VariablePattern (Ident "y" 701))]) (SimpleRhs (950,29) (Variable (QualIdent Nothing (Ident "y" 701))) [])),(Equation (951,5) (FunLhs (Ident "partition" 692) [(ConstructorPattern (QualIdent (Just "Prelude") (Ident "Suspend" 0)) []),(VariablePattern (Ident "y" 703))]) (SimpleRhs (951,29) (Variable (QualIdent Nothing (Ident "y" 703))) []))]),(FunctionDecl (953,5) (Ident "unfoldOrs" 692) [(Equation (953,5) (FunLhs (Ident "unfoldOrs" 692) [(ListPattern [])]) (SimpleRhs (953,20) (List []) [])),(Equation (954,5) (FunLhs (Ident "unfoldOrs" 692) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 707)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 707))))]) (SimpleRhs (954,24) (Let [(PatternDecl (954,28) (TuplePattern [(VariablePattern (Ident "vals" 709)),(VariablePattern (Ident "ors" 709))]) (SimpleRhs (954,41) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent Nothing (Ident "partition" 692)))) (Tuple [(List []),(List [])])) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 707))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 707)))))) []))] (InfixApply (Variable (QualIdent Nothing (Ident "vals" 709))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent Nothing (Ident "unfoldOrs" 692))) (Variable (QualIdent Nothing (Ident "ors" 709)))))) []))])]))])
+,(TypeSig (961,1) [(Ident "inject" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Success" 0)) [])) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Success" 0)) [])) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Success" 0)) [])))))
+,(FunctionDecl (962,1) (Ident "inject" 0) [(Equation (962,1) (FunLhs (Ident "inject" 0) [(VariablePattern (Ident "g" 711)),(VariablePattern (Ident "p" 711))]) (SimpleRhs (962,14) (Lambda [(VariablePattern (Ident "x" 713))] (InfixApply (Apply (Variable (QualIdent Nothing (Ident "p" 711))) (Variable (QualIdent Nothing (Ident "x" 713)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&" 0))) (Apply (Variable (QualIdent Nothing (Ident "g" 711))) (Variable (QualIdent Nothing (Ident "x" 713)))))) []))])
+,(TypeSig (966,1) [(Ident "PEVAL" 0)] (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))
+,(FunctionDecl (967,1) (Ident "PEVAL" 0) [(Equation (967,1) (FunLhs (Ident "PEVAL" 0) [(VariablePattern (Ident "x" 714))]) (SimpleRhs (967,11) (Variable (QualIdent Nothing (Ident "x" 714))) []))])
+,(TypeSig (971,1) [(Ident "apply" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))))
+,(FlatExternalDecl (972,1) [(Ident "apply" 0)])
+,(TypeSig (977,1) [(Ident "cond" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))
+,(FlatExternalDecl (978,1) [(Ident "cond" 0)])
+,(TypeSig (980,1) [(Ident "unknown" 0)] (VariableType (Ident "a" 0)))
+,(FunctionDecl (981,1) (Ident "unknown" 0) [(Equation (981,1) (FunLhs (Ident "unknown" 0) []) (SimpleRhs (981,11) (Let [(ExtraVariables (981,15) [(Ident "x" 718)])] (Variable (QualIdent Nothing (Ident "x" 718)))) []))])
+,(TypeSig (987,1) [(Ident "=:<=" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []))))
+,(FlatExternalDecl (988,1) [(Ident "=:<=" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/Prelude.efc b/src/lib/Curry/Module/.curry/Prelude.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Prelude.efc
@@ -0,0 +1,1 @@
+Prog "Prelude" [] [Type ((Nothing,Nothing,"Prelude","()")) Public [] [Cons ((Nothing,Nothing,"Prelude","()")) 0 Public []],Type ((Nothing,Nothing,"Prelude","[]")) Public [0] [Cons ((Nothing,Nothing,"Prelude","[]")) 0 Public [],Cons ((Nothing,Nothing,"Prelude",":")) 2 Public [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]],Type ((Nothing,Nothing,"Prelude","(,)")) Public [0,1] [Cons ((Nothing,Nothing,"Prelude","(,)")) 2 Public [TVar 0,TVar 1]],Type ((Nothing,Nothing,"Prelude","(,,)")) Public [0,1,2] [Cons ((Nothing,Nothing,"Prelude","(,,)")) 3 Public [TVar 0,TVar 1,TVar 2]],Type ((Nothing,Nothing,"Prelude","(,,,)")) Public [0,1,2,3] [Cons ((Nothing,Nothing,"Prelude","(,,,)")) 4 Public [TVar 0,TVar 1,TVar 2,TVar 3]],Type ((Nothing,Nothing,"Prelude","(,,,,)")) Public [0,1,2,3,4] [Cons ((Nothing,Nothing,"Prelude","(,,,,)")) 5 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4]],Type ((Nothing,Nothing,"Prelude","(,,,,,)")) Public [0,1,2,3,4,5] [Cons ((Nothing,Nothing,"Prelude","(,,,,,)")) 6 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5]],Type ((Nothing,Nothing,"Prelude","(,,,,,,)")) Public [0,1,2,3,4,5,6] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,)")) 7 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6]],Type ((Nothing,Nothing,"Prelude","(,,,,,,,)")) Public [0,1,2,3,4,5,6,7] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,,)")) 8 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7]],Type ((Nothing,Nothing,"Prelude","(,,,,,,,,)")) Public [0,1,2,3,4,5,6,7,8] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,,,)")) 9 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8]],Type ((Nothing,Nothing,"Prelude","(,,,,,,,,,)")) Public [0,1,2,3,4,5,6,7,8,9] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,,,,)")) 10 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9]],Type ((Nothing,Nothing,"Prelude","(,,,,,,,,,,)")) Public [0,1,2,3,4,5,6,7,8,9,10] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,,,,,)")) 11 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10]],Type ((Nothing,Nothing,"Prelude","(,,,,,,,,,,,)")) Public [0,1,2,3,4,5,6,7,8,9,10,11] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,,,,,,)")) 12 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11]],Type ((Nothing,Nothing,"Prelude","(,,,,,,,,,,,,)")) Public [0,1,2,3,4,5,6,7,8,9,10,11,12] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,,,,,,,)")) 13 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12]],Type ((Nothing,Nothing,"Prelude","(,,,,,,,,,,,,,)")) Public [0,1,2,3,4,5,6,7,8,9,10,11,12,13] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,,,,,,,,)")) 14 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12,TVar 13]],Type ((Nothing,Nothing,"Prelude","(,,,,,,,,,,,,,,)")) Public [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14] [Cons ((Nothing,Nothing,"Prelude","(,,,,,,,,,,,,,,)")) 15 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12,TVar 13,TVar 14]],TypeSyn ((Nothing,Nothing,"Prelude","String")) Public [] (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]),Type ((Nothing,Nothing,"Prelude","Float")) Public [] [],Type ((Nothing,Nothing,"Prelude","Char")) Public [] [],Type ((Nothing,Nothing,"Prelude","Bool")) Public [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) 0 Public []],Type ((Nothing,Nothing,"Prelude","Ordering")) Public [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) 0 Public []],Type ((Nothing,Nothing,"Prelude","Nat")) Public [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) 0 Public [],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) 1 Public [TCons ((Nothing,Nothing,"Prelude","Nat")) []],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) 1 Public [TCons ((Nothing,Nothing,"Prelude","Nat")) []]],Type ((Nothing,Nothing,"Prelude","Int")) Public [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) 1 Public [TCons ((Nothing,Nothing,"Prelude","Nat")) []],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) 0 Public [],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) 1 Public [TCons ((Nothing,Nothing,"Prelude","Nat")) []]],Type ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Success") []),"Prelude","Success")) Public [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Success") []),"Prelude","Success")) 0 Public []],Type ((Nothing,Nothing,"Prelude","Maybe")) Public [0] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) 0 Public [],Cons ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) 1 Public [TVar 0]],Type ((Nothing,Nothing,"Prelude","Either")) Public [0,1] [Cons ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 1])),"Prelude","Left")) 1 Public [TVar 0],Cons ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 1])),"Prelude","Right")) 1 Public [TVar 1]],Type ((Nothing,Nothing,"Prelude","IO")) Public [0] [],Type ((Nothing,Nothing,"Prelude","SearchTree")) Public [0] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Fail")) 0 Public [],Cons ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Value")) 1 Public [TVar 0],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Choice")) 1 Public [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]]],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Suspend")) 0 Public []]] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))),"Prelude",".")) 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1),(Just (FuncType (TVar 2) (TVar 0)),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))),"Prelude",".._#lambda2")) [Var ((Just (FuncType (TVar 0) (TVar 1)),1)),Var ((Just (FuncType (TVar 2) (TVar 0)),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 9) (TVar 11)) (FuncType (FuncType (TVar 7) (TVar 9)) (FuncType (TVar 7) (TVar 11)))),"Prelude",".._#lambda2")) 3 Private (FuncType (FuncType (TVar 9) (TVar 11)) (FuncType (FuncType (TVar 7) (TVar 9)) (FuncType (TVar 7) (TVar 11)))) (Rule [(Just (FuncType (TVar 9) (TVar 11)),1),(Just (FuncType (TVar 7) (TVar 9)),2),(Just (TVar 7),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 9) (TVar 11)) (FuncType (TVar 9) (TVar 11))),"Prelude","apply")) [Var ((Just (FuncType (TVar 9) (TVar 11)),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 7) (TVar 9)) (FuncType (TVar 7) (TVar 9))),"Prelude","apply")) [Var ((Just (FuncType (TVar 7) (TVar 9)),2)),Var ((Just (TVar 7),3))]])),Func ((Nothing,Just (FuncType (TVar 0) (TVar 0)),"Prelude","id")) 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [(Just (TVar 0),1)] (Var ((Just (TVar 0),1)))),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))),"Prelude","const")) 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2)] (Var ((Just (TVar 0),1)))),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 2)) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))),"Prelude","curry")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]) (TVar 2)) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 2)),1),(Just (TVar 0),2),(Just (TVar 1),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 2)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 2))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 2)),1)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),2)),Var ((Just (TVar 1),3))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 2))),"Prelude","uncurry")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]) (TVar 2))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [(Just (TVar 0),3),(Just (TVar 1),4)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 2)) (FuncType (TVar 1) (TVar 2))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (TVar 0),3))],Var ((Just (TVar 1),4))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 1) (FuncType (TVar 0) (TVar 2)))),"Prelude","flip")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 1) (FuncType (TVar 0) (TVar 2)))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1),(Just (TVar 1),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 2)) (FuncType (TVar 1) (TVar 2))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (TVar 0),3))],Var ((Just (TVar 1),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))),"Prelude","until")) 3 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (FuncType (TVar 0) (TVar 0)),2),(Just (TVar 0),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 0),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))),"Prelude","until")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (FuncType (TVar 0) (TVar 0)),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TVar 0)),2)),Var ((Just (TVar 0),3))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$")) 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TVar 1)),1)),Var ((Just (TVar 0),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$!")) 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$!"),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$!!")) 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$!!"),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$#")) 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$#"),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$##")) 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$##"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","ensureSpine")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","ensureSpine.ensureList.21")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","ensureSpine.ensureList.21")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","ensureSpine")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))),"Prelude","seq")) 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 0) (TVar 1))),"Prelude","const")) [Var ((Just (TVar 1),2))],Var ((Just (TVar 0),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","prim_error")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","prim_error")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 0)) (External "Prelude.prim_error"),Func ((Nothing,Just (TVar 0),"Prelude","failed")) 0 Public (TVar 0) (External "Prelude.failed"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) [])])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) 0 Public (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (Rule [] (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),"Prelude","if_then_else")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (TVar 0),2),(Just (TVar 0),3)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TVar 0),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","isLT")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Ordering")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","isGT")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Ordering")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","isEQ")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Ordering")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","compare")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) [])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) [])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),9)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),10)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),10)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","compare")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","compare")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","compare")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","compare")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","max")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","compare")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","min")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","compare")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (External "Prelude.=="),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 0),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 0),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 0)),"Prelude","fst")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 4) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [(Just (TVar 0),2),(Just (TVar 4),3)]) (Var ((Just (TVar 0),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 1)),"Prelude","snd")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]) (TVar 1)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 3) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [(Just (TVar 3),2),(Just (TVar 1),3)]) (Var ((Just (TVar 1),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"Prelude","head")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Var ((Just (TVar 0),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","tail")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Lit (Intc  1),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Prelude","!!")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Prelude","!!")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  1)]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TVar 0),"Prelude","failed")) [])])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","map")) 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TVar 1)),1)),Var ((Just (TVar 0),3))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","map")) [Var ((Just (FuncType (TVar 0) (TVar 1)),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)))),"Prelude","foldl")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),"Prelude","[]")) []) (Var ((Just (TVar 0),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude",":")) [(Just (TVar 1),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)))),"Prelude","foldl")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 0)) (FuncType (TVar 1) (TVar 0))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))),1)),Var ((Just (TVar 0),2))],Var ((Just (TVar 1),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),5))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0))),"Prelude","foldl1")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)))),"Prelude","foldl")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 1)))),"Prelude","foldr")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 1)))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))),1),(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TVar 1),2))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))),1)),Var ((Just (TVar 0),4))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 1)))),"Prelude","foldr")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))),1)),Var ((Just (TVar 1),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0))),"Prelude","foldr1")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TVar 0),3))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Var ((Just (TVar 0),3))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0))),"Prelude","foldr1")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),1)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))]]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","filter")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 0),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","filter")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","filter")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"Prelude","zip")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude",":")) [(Just (TVar 1),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),3)),Var ((Just (TVar 1),5))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"Prelude","zip")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),6))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]])))),"Prelude","zip3")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 0,TVar 1,TVar 2]])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude",":")) [(Just (TVar 1),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),7)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]))),"Prelude",":")) [(Just (TVar 2),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2])))),"Prelude","(,,)")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 1),6)),Var ((Just (TVar 2),8))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]])))),"Prelude","zip3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),9))]])])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])))),"Prelude","zipWith")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude",":")) [(Just (TVar 1),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 2)) (FuncType (TVar 1) (TVar 2))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (TVar 0),4))],Var ((Just (TVar 1),6))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2])))),"Prelude","zipWith")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),7))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]))))),"Prelude","zipWith3")) 4 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 3]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude",":")) [(Just (TVar 1),7),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),8)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 2) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]))),"Prelude",":")) [(Just (TVar 2),9),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),10)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 2) (TVar 3)) (FuncType (TVar 2) (TVar 3))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))) (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3))))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))),1)),Var ((Just (TVar 0),5))],Var ((Just (TVar 1),7))],Var ((Just (TVar 2),9))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 3]))))),"Prelude","zipWith3")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]),10))]])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])),"Prelude","unzip")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 489) (FuncType (TVar 490) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 489),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 490),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 476) (FuncType (TVar 477) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [(Just (TVar 476),4),(Just (TVar 477),5)]) (Let [((Just (TVar 487),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 492,TVar 493]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 492],TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]])),"Prelude","unzip")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494])),"Prelude","unzip._#selFP3#xs")) [Var ((Just (TVar 487),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 496],TCons (Nothing,Nothing,"Prelude","[]") [TVar 497]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 497])),"Prelude","unzip._#selFP4#ys")) [Var ((Just (TVar 487),6))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 476) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476]))),"Prelude",":")) [Var ((Just (TVar 476),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476]),7))],Comb ConsCall ((Nothing,Just (FuncType (TVar 477) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]))),"Prelude",":")) [Var ((Just (TVar 477),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]),8))]]))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 476],TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476])),"Prelude","unzip._#selFP3#xs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 476],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 477]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 476])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 476],TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 476],TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476]) (FuncType (TVar 480) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 476],TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476]),2),(Just (TVar 480),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 476]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 476],TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477])),"Prelude","unzip._#selFP4#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 476],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 477]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 477])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 476],TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 476],TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 479) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 476],TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]]))),"Prelude","(,)")) [(Just (TVar 479),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 477]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]])),"Prelude","unzip3")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 0,TVar 1,TVar 2]]) (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 509) (FuncType (TVar 510) (FuncType (TVar 511) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]])))),"Prelude","(,,)")) [Comb ConsCall ((Nothing,Just (TVar 509),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 510),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 511),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 493) (FuncType (TVar 494) (FuncType (TVar 495) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2])))),"Prelude","(,,)")) [(Just (TVar 493),4),(Just (TVar 494),5),(Just (TVar 495),6)]) (Let [((Just (TVar 507),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 513,TVar 514,TVar 515]]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 513],TCons (Nothing,Nothing,"Prelude","[]") [TVar 514],TCons (Nothing,Nothing,"Prelude","[]") [TVar 515]])),"Prelude","unzip3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 516],TCons (Nothing,Nothing,"Prelude","[]") [TVar 517],TCons (Nothing,Nothing,"Prelude","[]") [TVar 518]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 516])),"Prelude","unzip3._#selFP6#xs")) [Var ((Just (TVar 507),7))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 519],TCons (Nothing,Nothing,"Prelude","[]") [TVar 520],TCons (Nothing,Nothing,"Prelude","[]") [TVar 521]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 520])),"Prelude","unzip3._#selFP7#ys")) [Var ((Just (TVar 507),7))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 522],TCons (Nothing,Nothing,"Prelude","[]") [TVar 523],TCons (Nothing,Nothing,"Prelude","[]") [TVar 524]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 524])),"Prelude","unzip3._#selFP8#zs")) [Var ((Just (TVar 507),7))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]])))),"Prelude","(,,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 493) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]))),"Prelude",":")) [Var ((Just (TVar 493),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]),8))],Comb ConsCall ((Nothing,Just (FuncType (TVar 494) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494]))),"Prelude",":")) [Var ((Just (TVar 494),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494]),9))],Comb ConsCall ((Nothing,Just (FuncType (TVar 495) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]))),"Prelude",":")) [Var ((Just (TVar 495),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]),10))]])))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493])),"Prelude","unzip3._#selFP6#xs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 493],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 494],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 495]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 493])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]) (FuncType (TVar 498) (FuncType (TVar 499) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]])))),"Prelude","(,,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]),2),(Just (TVar 498),3),(Just (TVar 499),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 493]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494])),"Prelude","unzip3._#selFP7#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 493],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 494],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 495]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 494])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 497) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494]) (FuncType (TVar 499) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]])))),"Prelude","(,,)")) [(Just (TVar 497),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494]),3),(Just (TVar 499),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 494]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495])),"Prelude","unzip3._#selFP8#zs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 493],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 494],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 495]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 495])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 497) (FuncType (TVar 498) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]) (TCons (Nothing,Nothing,"Prelude","(,,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 493],TCons (Nothing,Nothing,"Prelude","[]") [TVar 494],TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]])))),"Prelude","(,,)")) [(Just (TVar 497),2),(Just (TVar 498),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]),4)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 495]),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","concat")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),1))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","concatMap")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])),"Prelude","concat")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]))),"Prelude","map")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","iterate")) 2 Public (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (TVar 0)),1),(Just (TVar 0),2)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","iterate")) [Var ((Just (FuncType (TVar 0) (TVar 0)),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TVar 0)),1)),Var ((Just (TVar 0),2))]]])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","repeat")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TVar 0),1)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","repeat")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","replicate")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","take")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","repeat")) [Var ((Just (TVar 0),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","take")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","take")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))],Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","drop")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","drop.dropp.272")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","drop.dropp.272")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","drop")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","splitAt")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 3) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 3),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","splitAt.splitAtp.282")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","splitAt.splitAtp.282")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 585) (FuncType (TVar 586) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 585),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 586),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Let [((Just (TVar 583),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 588]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 588],TCons (Nothing,Nothing,"Prelude","[]") [TVar 588]]))),"Prelude","splitAt")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 589],TCons (Nothing,Nothing,"Prelude","[]") [TVar 589]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 589])),"Prelude","splitAt.splitAtp.282._#selFP10#ys")) [Var ((Just (TVar 583),5))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 590],TCons (Nothing,Nothing,"Prelude","[]") [TVar 590]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 590])),"Prelude","splitAt.splitAtp.282._#selFP11#zs")) [Var ((Just (TVar 583),5))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))]))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 576],TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 576])),"Prelude","splitAt.splitAtp.282._#selFP10#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 576],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 576]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 576])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 576],TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 576],TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]) (FuncType (TVar 579) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 576],TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]),2),(Just (TVar 579),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 576],TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 576])),"Prelude","splitAt.splitAtp.282._#selFP11#zs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 576],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 576]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 576])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 576],TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 576],TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 578) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 576],TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]]))),"Prelude","(,)")) [(Just (TVar 578),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 576]),3)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","takeWhile")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 0),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","takeWhile")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","dropWhile")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 0),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","dropWhile")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","span")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 638) (FuncType (TVar 639) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 638),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 639),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TVar 0),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 634),5),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 643) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 643]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 643],TCons (Nothing,Nothing,"Prelude","[]") [TVar 643]]))),"Prelude","span")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 644],TCons (Nothing,Nothing,"Prelude","[]") [TVar 644]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 644])),"Prelude","span._#selFP13#ys")) [Var ((Just (TVar 634),5))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 645],TCons (Nothing,Nothing,"Prelude","[]") [TVar 645]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 645])),"Prelude","span._#selFP14#zs")) [Var ((Just (TVar 634),5))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))])))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 648) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 648),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]),"Prelude","failed")) [])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 627],TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 627])),"Prelude","span._#selFP13#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 627],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 627]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 627])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 627],TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 627],TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]) (FuncType (TVar 630) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 627],TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]),2),(Just (TVar 630),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 627],TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 627])),"Prelude","span._#selFP14#zs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 627],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 627]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 627])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 627],TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 627],TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 629) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 627],TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]]))),"Prelude","(,)")) [(Just (TVar 629),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 627]),3)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","break")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","span")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [],Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Let [((Just (TVar 5),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines.splitline.314")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 7) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 7]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","lines._#selFP19#l")) [Var ((Just (TVar 5),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","lines._#selFP20#xs_l")) [Var ((Just (TVar 5),4))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]]))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines.splitline.314")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 11) (FuncType (TVar 12) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 11),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 12),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)),Lit (Charc  '\n')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 15) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 15),"Prelude","[]")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TVar 9),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines.splitline.314")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","lines.splitline.314._#selFP16#ds")) [Var ((Just (TVar 9),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","lines.splitline.314._#selFP17#es")) [Var ((Just (TVar 9),4))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","lines.splitline.314._#selFP16#ds")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","lines.splitline.314._#selFP17#es")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","lines._#selFP19#l")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","lines._#selFP20#xs_l")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","concatMap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","words")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 5]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 5]))),"Prelude","dropWhile")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","words.isSpace.326")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TVar 4),3),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 10) (TVar 11)) (FuncType (TVar 10) (TVar 11))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 9) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 9]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 9],TCons (Nothing,Nothing,"Prelude","[]") [TVar 9]]))),"Prelude","break")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","words.isSpace.326")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","words._#selFP22#w")) [Var ((Just (TVar 4),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","words._#selFP23#s2")) [Var ((Just (TVar 4),3))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","words")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))]]))))]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","words.isSpace.326")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  ' ')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  '\t')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  '\n')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  '\r')]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","words._#selFP22#w")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","words._#selFP23#s2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unwords")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","foldr1")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","unwords._#lambda6")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","unwords._#lambda6")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","reverse")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","foldl")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude","flip")) [Comb (ConsPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) []],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","and")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","or")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","any")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","or")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","map")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","all")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","and")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","map")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","any")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","notElem")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","all")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"Prelude","lookup")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [(Just (TVar 0),5),(Just (TVar 1),6)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 0),5))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),"Prelude","Just")) [Var ((Just (TVar 1),6))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"Prelude","lookup")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","enumFrom")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","enumFrom")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","enumFromThen")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","iterate")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","enumFromTo")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","enumFromTo")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude","enumFromThenTo")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","takeWhile")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))))),"Prelude","enumFromThenTo.p.364")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","enumFromThen")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))))),"Prelude","enumFromThenTo.p.364")) 4 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","failed")) [])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","prim_ord")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","prim_ord")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (External "Prelude.prim_ord"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Char")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") []))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","prim_chr")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","prim_chr")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Char")) [])) (External "Prelude.prim_chr"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","succ")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Nat")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","succ")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Nat")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","succ")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","succ")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","succ")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) [])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatLT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7))])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),9)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),9))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),10)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatGT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),10))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatLT")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatLT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatLT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatLT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatGT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatGT")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatGT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatGT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatGT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNatLT")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<^")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","isLT")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">^")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","isGT")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=^")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","isGT")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=^")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","isLT")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","*^")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Nat")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","*^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","*^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","pred")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Nat")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","pred")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","inc")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","succ")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","pred")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","dec")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","succ")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","pred")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","mult2")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","inc")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","pred")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","mult2")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","dec")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","mult2")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))]]])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","inc")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","mult2")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7))]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","mult2")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","div2")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Nat")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","mod2")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmodNat")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","cmpNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmodNat")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","div2")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Nat") []),"Prelude","IHi")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","mod2")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmodNat")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","divmodNat.shift.523")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 13) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TVar 13),8)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 13) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))]],Var ((Just (TVar 13),8))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 13) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),9))]],Var ((Just (TVar 13),8))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),10)]) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","failed")) [])])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),11)]) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","failed")) [])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),12)]) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","failed")) [])])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","failed")) [])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","divmodNat.shift.523")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Nat")) []) (TCons ((Nothing,Nothing,"Prelude","Nat")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","O")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") [])),"Prelude","I")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","*^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","*^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) [])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","*^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),7))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","*^")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),8))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) [])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmod")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '0'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmodNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),4))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5)]) (Let [((Just (TVar 6),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmodNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),5))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP25#d")) [Var ((Just (TVar 6),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP26#m")) [Var ((Just (TVar 6),6))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))]))))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '0'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),10)]) (Let [((Just (TVar 11),11),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmodNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),10))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),12),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP28#d")) [Var ((Just (TVar 11),11))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),13),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP29#m")) [Var ((Just (TVar 11),11))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),12))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),13))]])))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),14)]) (Let [((Just (TVar 14),15),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmodNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),14))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),16),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP31#d")) [Var ((Just (TVar 14),15))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),17),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP32#m")) [Var ((Just (TVar 14),15))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),16)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),17))]]))))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP25#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP26#m")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP28#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP29#m")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP31#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","divmod._#selFP32#m")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","fst")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","snd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","divmod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","Zero")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),2))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Neg")) [(Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","Pos")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Nat") []),3))])])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Success") []),"Prelude","success")) 0 Public (TCons ((Nothing,Nothing,"Prelude","Success")) []) (Rule [] (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Success") []),"Prelude","Success")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","=:=")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Success")) []))) (Rule [(Just (TVar 0),1),(Just (TVar 0),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","===")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 0),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Success") []),"Prelude","success")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Success") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","===")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (External "Prelude.==="),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","&")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Success")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Success")) []) (TCons ((Nothing,Nothing,"Prelude","Success")) []))) (External "Prelude.&"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TVar 0) (TVar 0))),"Prelude","&>")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Success")) []) (FuncType (TVar 0) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Success") []),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TVar 0) (TVar 0))),"Prelude","cond")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Success") []),1)),Var ((Just (TVar 0),2))])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]) (TVar 0)))),"Prelude","maybe")) 3 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 0)) (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1]) (TVar 0)))) (Rule [(Just (TVar 0),1),(Just (FuncType (TVar 1) (TVar 0)),2),(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),"Prelude","Nothing")) []) (Var ((Just (TVar 0),1))),Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),"Prelude","Just")) [(Just (TVar 1),4)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 0)) (FuncType (TVar 1) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (TVar 0)),2)),Var ((Just (TVar 1),4))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 2]) (TVar 1)))),"Prelude","either")) 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 1)) (FuncType (TCons ((Nothing,Nothing,"Prelude","Either")) [TVar 0,TVar 2]) (TVar 1)))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1),(Just (FuncType (TVar 2) (TVar 1)),2),(Just (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 2]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 2]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 2])),"Prelude","Left")) [(Just (TVar 0),4)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (TVar 1)),1)),Var ((Just (TVar 0),4))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 2])),"Prelude","Right")) [(Just (TVar 2),5)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 2) (TVar 1)) (FuncType (TVar 2) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TVar 2) (TVar 1)),2)),Var ((Just (TVar 2),5))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Prelude",">>=")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1])) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))) (External "Prelude.>>="),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Prelude","return")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (External "Prelude.return"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Prelude",">>")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Prelude","const")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]),2))]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","done")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","()") []),"Prelude","()")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putChar")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","prim_putChar")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","prim_putChar")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "Prelude.prim_putChar"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","getChar")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (External "Prelude.getChar"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","readFile")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","prim_readFile")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","prim_readFile")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (External "Prelude.prim_readFile"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","writeFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","prim_writeFile")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","prim_writeFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "Prelude.prim_writeFile"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","appendFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","prim_appendFile")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","prim_appendFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "Prelude.prim_appendFile"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude","catchFail")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (External "Prelude.catchFail"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","done")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putChar")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStrLn")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putChar")) [Lit (Charc  '\n')]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","getLine")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","getChar")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","getLine._#lambda10")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","getLine._#lambda10")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  '\n')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","getLine")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","getLine._#lambda10._#lambda11")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","getLine._#lambda10._#lambda11")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","prim_show")) [],Var ((Just (TVar 0),1))])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","prim_show")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (External "Prelude.prim_show"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","print")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStrLn")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","doSolve")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Success")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Success") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","cond")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Success") []),1)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","done")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"Prelude","sequenceIO")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude","sequenceIO._#lambda12")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]),3))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 937]]) (FuncType (TVar 937) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]]))),"Prelude","sequenceIO._#lambda12")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 937]]) (FuncType (TVar 937) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 937]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 937]]),1),(Just (TVar 937),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 937]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]])),"Prelude","sequenceIO")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 937]]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 937) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]]))),"Prelude","sequenceIO._#lambda12._#lambda13")) [Var ((Just (TVar 937),2))]])),Func ((Nothing,Just (FuncType (TVar 937) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]]))),"Prelude","sequenceIO._#lambda12._#lambda13")) 2 Private (FuncType (TVar 937) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 937]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 937]]))) (Rule [(Just (TVar 937),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 937) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]))),"Prelude",":")) [Var ((Just (TVar 937),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 937]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","sequenceIO_")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","done")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]))),"Prelude","mapIO")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])),"Prelude","sequenceIO")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]]))),"Prelude","map")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","mapIO_")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","sequenceIO_")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]]))),"Prelude","map")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),"Prelude","?")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (Rule [(Just (TVar 0),1),(Just (TVar 0),2)] (Or (Var ((Just (TVar 0),1))) (Var ((Just (TVar 0),2))))),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]])),"Prelude","getSearchTree")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]])) (External "Prelude.getSearchTree"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","allValuesD")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Value")) [(Just (TVar 0),2)]) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Fail")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Suspend")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Choice")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","concatMap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","allValuesD")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","allValuesB")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","allValuesB.unfoldOrs.692")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))),"Prelude","allValuesB.partition.692")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]]]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Value")) [(Just (TVar 0),3)]) (Let [((Just (TVar 1003),4),Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]),2)))] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1008],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1008]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1008])),"Prelude","allValuesB.partition.692._#selFP34#vs")) [Var ((Just (TVar 1003),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1009],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1009]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1009]])),"Prelude","allValuesB.partition.692._#selFP35#ors")) [Var ((Just (TVar 1003),4))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),6))])))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0])),"Prelude","Choice")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),7)]) (Let [((Just (TVar 1006),8),Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]),2)))] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1012],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1012]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1012])),"Prelude","allValuesB.partition.692._#selFP37#vs")) [Var ((Just (TVar 1006),8))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1013],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1013]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1013]])),"Prelude","allValuesB.partition.692._#selFP38#ors")) [Var ((Just (TVar 1006),8))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]))),"Prelude","(,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),10))]])))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Fail")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),"Prelude","Suspend")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001])),"Prelude","allValuesB.partition.692._#selFP34#vs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1001],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1001]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1001])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001]) (FuncType (TVar 1004) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001]),2),(Just (TVar 1004),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]])),"Prelude","allValuesB.partition.692._#selFP35#ors")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1001],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1001]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1001]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1003) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]))),"Prelude","(,)")) [(Just (TVar 1003),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001])),"Prelude","allValuesB.partition.692._#selFP37#vs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1001],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1001]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1001])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001]) (FuncType (TVar 1004) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001]),2),(Just (TVar 1004),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]])),"Prelude","allValuesB.partition.692._#selFP38#ors")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1001],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1001]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1001]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1003) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1001],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]]))),"Prelude","(,)")) [(Just (TVar 1003),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1001]]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","allValuesB.unfoldOrs.692")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 0]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3)]) (Let [((Just (TVar 1019),4),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1029) (FuncType (TVar 1030) (TVar 1030))) (FuncType (TVar 1030) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1029]) (TVar 1030)))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1024]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1024],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1024]]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1024],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1024]]]))),"Prelude","allValuesB.partition.692")) [],Comb ConsCall ((Nothing,Just (TVar 1027),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 1025),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 1026),"Prelude","[]")) []],Comb ConsCall ((Nothing,Just (FuncType (TVar 1028) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1028]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1028]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),3))]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1031],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1031]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1031])),"Prelude","allValuesB.unfoldOrs.692._#selFP40#vals")) [Var ((Just (TVar 1019),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1032],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1032]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1032]])),"Prelude","allValuesB.unfoldOrs.692._#selFP41#ors")) [Var ((Just (TVar 1019),4))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","allValuesB.unfoldOrs.692")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 0]]),6))]]))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014])),"Prelude","allValuesB.unfoldOrs.692._#selFP40#vals")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1014],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1014]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1014])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014]) (FuncType (TVar 1017) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014]),2),(Just (TVar 1017),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]])),"Prelude","allValuesB.unfoldOrs.692._#selFP41#ors")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1014],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1014]]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 1014]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1016) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1014],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]]))),"Prelude","(,)")) [(Just (TVar 1016),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 1014]]),3)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])))),"Prelude","inject")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Success")) [])) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Success")) [])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Success")) [])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])),1),(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])))),"Prelude","inject._#lambda14")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])),1)),Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") [])),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])))),"Prelude","inject._#lambda14")) 3 Private (FuncType (FuncType (TVar 1025) (TCons ((Nothing,Nothing,"Prelude","Success")) [])) (FuncType (FuncType (TVar 1025) (TCons ((Nothing,Nothing,"Prelude","Success")) [])) (FuncType (TVar 1025) (TCons ((Nothing,Nothing,"Prelude","Success")) [])))) (Rule [(Just (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])),1),(Just (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])),2),(Just (TVar 1025),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","&")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])),2)),Var ((Just (TVar 1025),3))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])) (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1025) (TCons (Nothing,Nothing,"Prelude","Success") [])),1)),Var ((Just (TVar 1025),3))]])),Func ((Nothing,Just (FuncType (TVar 0) (TVar 0)),"Prelude","PEVAL")) 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [(Just (TVar 0),1)] (Var ((Just (TVar 0),1)))),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","apply")) 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.apply"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TVar 0) (TVar 0))),"Prelude","cond")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Success")) []) (FuncType (TVar 0) (TVar 0))) (External "Prelude.cond"),Func ((Nothing,Just (TVar 0),"Prelude","unknown")) 0 Public (TVar 0) (Rule [] (Free [(Just (TVar 0),1)] (Var ((Just (TVar 0),1))))),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","=:<=")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Success")) []))) (External "Prelude.=:<=")] [Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 0))),"Prelude","!!")) InfixlOp 9,Op ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))),"Prelude",".")) InfixrOp 9,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) InfixlOp 7,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","*^")) InfixlOp 7,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) InfixlOp 7,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) InfixlOp 7,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) InfixlOp 6,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Nat") []))),"Prelude","+^")) InfixlOp 6,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) InfixlOp 6,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-^")) InfixlOp 6,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) InfixrOp 5,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","=:=")) InfixOp 4,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) InfixOp 4,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","===")) InfixOp 4,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) InfixOp 4,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","=:<=")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<^")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=^")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">^")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Nat") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=^")) InfixOp 4,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) InfixOp 4,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","notElem")) InfixOp 4,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) InfixrOp 3,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) InfixrOp 2,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Prelude",">>")) InfixlOp 1,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Prelude",">>=")) InfixlOp 1,Op ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$")) InfixrOp 0,Op ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$!")) InfixrOp 0,Op ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$!!")) InfixrOp 0,Op ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$#")) InfixrOp 0,Op ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))),"Prelude","$##")) InfixrOp 0,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))),"Prelude","seq")) InfixrOp 0,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (TCons (Nothing,Nothing,"Prelude","Success") []))),"Prelude","&")) InfixrOp 0,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TVar 0) (TVar 0))),"Prelude","&>")) InfixrOp 0,Op ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),"Prelude","?")) InfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/Prelude.fcy b/src/lib/Curry/Module/.curry/Prelude.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Prelude.fcy
@@ -0,0 +1,1 @@
+Prog "Prelude" [] [Type ("Prelude","()") Public [] [Cons ("Prelude","()") 0 Public []],Type ("Prelude","[]") Public [0] [Cons ("Prelude","[]") 0 Public [],Cons ("Prelude",":") 2 Public [TVar 0,TCons ("Prelude","[]") [TVar 0]]],Type ("Prelude","(,)") Public [0,1] [Cons ("Prelude","(,)") 2 Public [TVar 0,TVar 1]],Type ("Prelude","(,,)") Public [0,1,2] [Cons ("Prelude","(,,)") 3 Public [TVar 0,TVar 1,TVar 2]],Type ("Prelude","(,,,)") Public [0,1,2,3] [Cons ("Prelude","(,,,)") 4 Public [TVar 0,TVar 1,TVar 2,TVar 3]],Type ("Prelude","(,,,,)") Public [0,1,2,3,4] [Cons ("Prelude","(,,,,)") 5 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4]],Type ("Prelude","(,,,,,)") Public [0,1,2,3,4,5] [Cons ("Prelude","(,,,,,)") 6 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5]],Type ("Prelude","(,,,,,,)") Public [0,1,2,3,4,5,6] [Cons ("Prelude","(,,,,,,)") 7 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6]],Type ("Prelude","(,,,,,,,)") Public [0,1,2,3,4,5,6,7] [Cons ("Prelude","(,,,,,,,)") 8 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7]],Type ("Prelude","(,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8] [Cons ("Prelude","(,,,,,,,,)") 9 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8]],Type ("Prelude","(,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9] [Cons ("Prelude","(,,,,,,,,,)") 10 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9]],Type ("Prelude","(,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10] [Cons ("Prelude","(,,,,,,,,,,)") 11 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10]],Type ("Prelude","(,,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10,11] [Cons ("Prelude","(,,,,,,,,,,,)") 12 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11]],Type ("Prelude","(,,,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10,11,12] [Cons ("Prelude","(,,,,,,,,,,,,)") 13 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12]],Type ("Prelude","(,,,,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10,11,12,13] [Cons ("Prelude","(,,,,,,,,,,,,,)") 14 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12,TVar 13]],Type ("Prelude","(,,,,,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14] [Cons ("Prelude","(,,,,,,,,,,,,,,)") 15 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12,TVar 13,TVar 14]],TypeSyn ("Prelude","String") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),Type ("Prelude","Float") Public [] [],Type ("Prelude","Char") Public [] [],Type ("Prelude","Bool") Public [] [Cons ("Prelude","False") 0 Public [],Cons ("Prelude","True") 0 Public []],Type ("Prelude","Ordering") Public [] [Cons ("Prelude","LT") 0 Public [],Cons ("Prelude","EQ") 0 Public [],Cons ("Prelude","GT") 0 Public []],Type ("Prelude","Nat") Public [] [Cons ("Prelude","IHi") 0 Public [],Cons ("Prelude","O") 1 Public [TCons ("Prelude","Nat") []],Cons ("Prelude","I") 1 Public [TCons ("Prelude","Nat") []]],Type ("Prelude","Int") Public [] [Cons ("Prelude","Neg") 1 Public [TCons ("Prelude","Nat") []],Cons ("Prelude","Zero") 0 Public [],Cons ("Prelude","Pos") 1 Public [TCons ("Prelude","Nat") []]],Type ("Prelude","Success") Public [] [Cons ("Prelude","Success") 0 Public []],Type ("Prelude","Maybe") Public [0] [Cons ("Prelude","Nothing") 0 Public [],Cons ("Prelude","Just") 1 Public [TVar 0]],Type ("Prelude","Either") Public [0,1] [Cons ("Prelude","Left") 1 Public [TVar 0],Cons ("Prelude","Right") 1 Public [TVar 1]],Type ("Prelude","IO") Public [0] [],Type ("Prelude","SearchTree") Public [0] [Cons ("Prelude","Fail") 0 Public [],Cons ("Prelude","Value") 1 Public [TVar 0],Cons ("Prelude","Choice") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]],Cons ("Prelude","Suspend") 0 Public []]] [Func ("Prelude",".") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))) (Rule [1,2] (Comb (FuncPartCall 1) ("Prelude",".._#lambda2") [Var 1,Var 2])),Func ("Prelude",".._#lambda2") 3 Private (FuncType (FuncType (TVar 9) (TVar 11)) (FuncType (FuncType (TVar 7) (TVar 9)) (FuncType (TVar 7) (TVar 11)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Var 1,Comb FuncCall ("Prelude","apply") [Var 2,Var 3]])),Func ("Prelude","id") 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [1] (Var 1)),Func ("Prelude","const") 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (Rule [1,2] (Var 1)),Func ("Prelude","curry") 3 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TVar 2)) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Var 1,Comb ConsCall ("Prelude","(,)") [Var 2,Var 3]])),Func ("Prelude","uncurry") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TVar 2))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4])])),Func ("Prelude","flip") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 1) (FuncType (TVar 0) (TVar 2)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 2])),Func ("Prelude","until") 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") []) (Var 3),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","until") [Var 1,Var 2,Comb FuncCall ("Prelude","apply") [Var 2,Var 3]])])),Func ("Prelude","$") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Var 1,Var 2])),Func ("Prelude","$!") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$!"),Func ("Prelude","$!!") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$!!"),Func ("Prelude","$#") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$#"),Func ("Prelude","$##") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$##"),Func ("Prelude","ensureSpine") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","$#") [Comb (FuncPartCall 1) ("Prelude","ensureSpine.ensureList.21") []])),Func ("Prelude","ensureSpine.ensureList.21") 1 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [2,3]) (Comb ConsCall ("Prelude",":") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","ensureSpine") [],Var 3]])])),Func ("Prelude","seq") 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (Rule [1,2] (Comb FuncCall ("Prelude","$!") [Comb (FuncPartCall 1) ("Prelude","const") [Var 2],Var 1])),Func ("Prelude","error") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Prelude","prim_error") [],Var 1])),Func ("Prelude","prim_error") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (External "Prelude.prim_error"),Func ("Prelude","failed") 0 Public (TVar 0) (External "Prelude.failed"),Func ("Prelude","&&") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","False") [])])),Func ("Prelude","||") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude","False") []) (Var 2)])),Func ("Prelude","not") 1 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","True") [])])),Func ("Prelude","otherwise") 0 Public (TCons ("Prelude","Bool") []) (Rule [] (Comb ConsCall ("Prelude","True") [])),Func ("Prelude","if_then_else") 3 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2,3] (Case  Rigid (Var 1) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Var 3)])),Func ("Prelude","isLT") 1 Public (FuncType (TCons ("Prelude","Ordering") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","LT") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude","GT") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude","EQ") []) (Comb ConsCall ("Prelude","False") [])])),Func ("Prelude","isGT") 1 Public (FuncType (TCons ("Prelude","Ordering") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","LT") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude","GT") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude","EQ") []) (Comb ConsCall ("Prelude","False") [])])),Func ("Prelude","isEQ") 1 Public (FuncType (TCons ("Prelude","Ordering") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","LT") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude","GT") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude","EQ") []) (Comb ConsCall ("Prelude","True") [])])),Func ("Prelude","compare") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Zero") []) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","EQ") []),Branch (Pattern ("Prelude","Pos") [3]) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","Neg") [4]) (Comb ConsCall ("Prelude","GT") [])]),Branch (Pattern ("Prelude","Pos") [5]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","Pos") [6]) (Comb FuncCall ("Prelude","cmpNat") [Var 5,Var 6]),Branch (Pattern ("Prelude","Neg") [7]) (Comb ConsCall ("Prelude","GT") [])]),Branch (Pattern ("Prelude","Neg") [8]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","Pos") [9]) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","Neg") [10]) (Comb FuncCall ("Prelude","cmpNat") [Var 10,Var 8])])])),Func ("Prelude","<") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","compare") [Var 1,Var 2],Comb ConsCall ("Prelude","LT") []])),Func ("Prelude",">") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","compare") [Var 1,Var 2],Comb ConsCall ("Prelude","GT") []])),Func ("Prelude","<=") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","/=") [Comb FuncCall ("Prelude","compare") [Var 1,Var 2],Comb ConsCall ("Prelude","GT") []])),Func ("Prelude",">=") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","/=") [Comb FuncCall ("Prelude","compare") [Var 1,Var 2],Comb ConsCall ("Prelude","LT") []])),Func ("Prelude","max") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","compare") [Var 1,Var 2]) [Branch (Pattern ("Prelude","LT") []) (Var 2),Branch (Pattern ("Prelude","EQ") []) (Var 1),Branch (Pattern ("Prelude","GT") []) (Var 1)])),Func ("Prelude","min") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","compare") [Var 1,Var 2]) [Branch (Pattern ("Prelude","GT") []) (Var 2),Branch (Pattern ("Prelude","LT") []) (Var 1),Branch (Pattern ("Prelude","EQ") []) (Var 1)])),Func ("Prelude","==") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (External "Prelude.=="),Func ("Prelude","/=") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","==") [Var 1,Var 2]])),Func ("Prelude","fst") 1 Public (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","snd") 1 Public (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TVar 1)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","head") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Var 2)])),Func ("Prelude","tail") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Var 3)])),Func ("Prelude","null") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude",":") [2,3]) (Comb ConsCall ("Prelude","False") [])])),Func ("Prelude","++") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("Prelude","++") [Var 4,Var 2]])])),Func ("Prelude","length") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Lit (Intc  0)),Branch (Pattern ("Prelude",":") [2,3]) (Comb FuncCall ("Prelude","+") [Lit (Intc  1),Comb FuncCall ("Prelude","length") [Var 3]])])),Func ("Prelude","!!") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (TVar 0))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 3),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","!!") [Var 4,Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  1)]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("Prelude","map") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 1]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb FuncCall ("Prelude","map") [Var 1,Var 4]])])),Func ("Prelude","foldl") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("Prelude","foldl") [Var 1,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 4],Var 5])])),Func ("Prelude","foldl1") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude","foldl") [Var 1,Var 3,Var 4])])),Func ("Prelude","foldr") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 1)))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Comb FuncCall ("Prelude","foldr") [Var 1,Var 2,Var 5]])])),Func ("Prelude","foldr1") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Var 3),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb FuncCall ("Prelude","foldr1") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Var 6]]])])])),Func ("Prelude","filter") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("Prelude","filter") [Var 1,Var 4]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","filter") [Var 1,Var 4])])])),Func ("Prelude","zip") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Var 3,Var 5],Comb FuncCall ("Prelude","zip") [Var 4,Var 6]])])])),Func ("Prelude","zip3") 3 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TVar 0,TVar 1,TVar 2]])))) (Rule [1,2,3] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [4,5]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [8,9]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,,)") [Var 4,Var 6,Var 8],Comb FuncCall ("Prelude","zip3") [Var 5,Var 7,Var 9]])])])])),Func ("Prelude","zipWith") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 2])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [4,5]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [6,7]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Var 6],Comb FuncCall ("Prelude","zipWith") [Var 1,Var 5,Var 7]])])])),Func ("Prelude","zipWith3") 4 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TCons ("Prelude","[]") [TVar 3]))))) (Rule [1,2,3,4] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [5,6]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [7,8]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [9,10]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 5],Var 7],Var 9],Comb FuncCall ("Prelude","zipWith3") [Var 1,Var 6,Var 8,Var 10]])])])])),Func ("Prelude","unzip") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 1]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [4,5]) (Let [(6,Comb FuncCall ("Prelude","unzip") [Var 3])] (Let [(7,Comb FuncCall ("Prelude","unzip._#selFP3#xs") [Var 6])] (Let [(8,Comb FuncCall ("Prelude","unzip._#selFP4#ys") [Var 6])] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 4,Var 7],Comb ConsCall ("Prelude",":") [Var 5,Var 8]]))))])])),Func ("Prelude","unzip._#selFP3#xs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 476],TCons ("Prelude","[]") [TVar 477]]) (TCons ("Prelude","[]") [TVar 476])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","unzip._#selFP4#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 476],TCons ("Prelude","[]") [TVar 477]]) (TCons ("Prelude","[]") [TVar 477])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","unzip3") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]) (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 1],TCons ("Prelude","[]") [TVar 2]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,,)") [4,5,6]) (Let [(7,Comb FuncCall ("Prelude","unzip3") [Var 3])] (Let [(8,Comb FuncCall ("Prelude","unzip3._#selFP6#xs") [Var 7])] (Let [(9,Comb FuncCall ("Prelude","unzip3._#selFP7#ys") [Var 7])] (Let [(10,Comb FuncCall ("Prelude","unzip3._#selFP8#zs") [Var 7])] (Comb ConsCall ("Prelude","(,,)") [Comb ConsCall ("Prelude",":") [Var 4,Var 8],Comb ConsCall ("Prelude",":") [Var 5,Var 9],Comb ConsCall ("Prelude",":") [Var 6,Var 10]])))))])])),Func ("Prelude","unzip3._#selFP6#xs") 1 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TVar 493],TCons ("Prelude","[]") [TVar 494],TCons ("Prelude","[]") [TVar 495]]) (TCons ("Prelude","[]") [TVar 493])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 2)])),Func ("Prelude","unzip3._#selFP7#ys") 1 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TVar 493],TCons ("Prelude","[]") [TVar 494],TCons ("Prelude","[]") [TVar 495]]) (TCons ("Prelude","[]") [TVar 494])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 3)])),Func ("Prelude","unzip3._#selFP8#zs") 1 Private (FuncType (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TVar 493],TCons ("Prelude","[]") [TVar 494],TCons ("Prelude","[]") [TVar 495]]) (TCons ("Prelude","[]") [TVar 495])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 4)])),Func ("Prelude","concat") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","++") [],Comb ConsCall ("Prelude","[]") [],Var 1])),Func ("Prelude","concatMap") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 1]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","concat") [],Comb (FuncPartCall 1) ("Prelude","map") [Var 1]])),Func ("Prelude","iterate") 2 Public (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb ConsCall ("Prelude",":") [Var 2,Comb FuncCall ("Prelude","iterate") [Var 1,Comb FuncCall ("Prelude","apply") [Var 1,Var 2]]])),Func ("Prelude","repeat") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Comb ConsCall ("Prelude",":") [Var 1,Comb FuncCall ("Prelude","repeat") [Var 1]])),Func ("Prelude","replicate") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude","take") [Var 1,Comb FuncCall ("Prelude","repeat") [Var 2]])),Func ("Prelude","take") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Neg") [3]) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","Pos") [4]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("Prelude","take") [Comb FuncCall ("Prelude","-") [Comb ConsCall ("Prelude","Pos") [Var 4],Lit (Intc  1)],Var 6]])])])),Func ("Prelude","drop") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","<=") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","drop.dropp.272") [Var 1,Var 2])])),Func ("Prelude","drop.dropp.272") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude","drop") [Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)],Var 4])])),Func ("Prelude","splitAt") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","<=") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Var 2]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","splitAt.splitAtp.282") [Var 1,Var 2])])),Func ("Prelude","splitAt.splitAtp.282") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Prelude","splitAt") [Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)],Var 4])] (Let [(6,Comb FuncCall ("Prelude","splitAt.splitAtp.282._#selFP10#ys") [Var 5])] (Let [(7,Comb FuncCall ("Prelude","splitAt.splitAtp.282._#selFP11#zs") [Var 5])] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 3,Var 6],Var 7]))))])),Func ("Prelude","splitAt.splitAtp.282._#selFP10#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 576],TCons ("Prelude","[]") [TVar 576]]) (TCons ("Prelude","[]") [TVar 576])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","splitAt.splitAtp.282._#selFP11#zs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 576],TCons ("Prelude","[]") [TVar 576]]) (TCons ("Prelude","[]") [TVar 576])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","takeWhile") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("Prelude","takeWhile") [Var 1,Var 4]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","[]") [])])])),Func ("Prelude","dropWhile") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","dropWhile") [Var 1,Var 4]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 3,Var 4])])])),Func ("Prelude","span") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 3]) [Branch (Pattern ("Prelude","True") []) (Let [(5,Comb FuncCall ("Prelude","span") [Var 1,Var 4])] (Let [(6,Comb FuncCall ("Prelude","span._#selFP13#ys") [Var 5])] (Let [(7,Comb FuncCall ("Prelude","span._#selFP14#zs") [Var 5])] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 3,Var 6],Var 7])))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude",":") [Var 3,Var 4]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("Prelude","span._#selFP13#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 627],TCons ("Prelude","[]") [TVar 627]]) (TCons ("Prelude","[]") [TVar 627])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","span._#selFP14#zs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 627],TCons ("Prelude","[]") [TVar 627]]) (TCons ("Prelude","[]") [TVar 627])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","break") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [1] (Comb (FuncPartCall 1) ("Prelude","span") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Var 1]])),Func ("Prelude","lines") 1 Public (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]) (Let [(4,Comb FuncCall ("Prelude","lines.splitline.314") [Comb ConsCall ("Prelude",":") [Var 2,Var 3]])] (Let [(5,Comb FuncCall ("Prelude","lines._#selFP19#l") [Var 4])] (Let [(6,Comb FuncCall ("Prelude","lines._#selFP20#xs_l") [Var 4])] (Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("Prelude","lines") [Var 6]]))))])),Func ("Prelude","lines.splitline.314") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [2,3]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Charc  '\n')]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Var 3]),Branch (Pattern ("Prelude","False") []) (Let [(4,Comb FuncCall ("Prelude","lines.splitline.314") [Var 3])] (Let [(5,Comb FuncCall ("Prelude","lines.splitline.314._#selFP16#ds") [Var 4])] (Let [(6,Comb FuncCall ("Prelude","lines.splitline.314._#selFP17#es") [Var 4])] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 2,Var 5],Var 6]))))])])),Func ("Prelude","lines.splitline.314._#selFP16#ds") 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 ("Prelude","lines.splitline.314._#selFP17#es") 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 ("Prelude","lines._#selFP19#l") 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 ("Prelude","lines._#selFP20#xs_l") 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 ("Prelude","unlines") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","++") [],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]],Var 1])),Func ("Prelude","words") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Let [(2,Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Prelude","words.isSpace.326") [],Var 1])] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Comb ConsCall ("Prelude","[]") []]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","False") []) (Let [(3,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","words.isSpace.326") []],Var 2])] (Let [(4,Comb FuncCall ("Prelude","words._#selFP22#w") [Var 3])] (Let [(5,Comb FuncCall ("Prelude","words._#selFP23#s2") [Var 3])] (Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("Prelude","words") [Var 5]]))))]))),Func ("Prelude","words.isSpace.326") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  ' ')],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  '\t')],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  '\n')],Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  '\r')]]]])),Func ("Prelude","words._#selFP22#w") 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 ("Prelude","words._#selFP23#s2") 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 ("Prelude","unwords") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Comb ConsCall ("Prelude","[]") []]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","foldr1") [Comb (FuncPartCall 2) ("Prelude","unwords._#lambda6") [],Var 1])])),Func ("Prelude","unwords._#lambda6") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Var 2]])),Func ("Prelude","reverse") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","foldl") [Comb (FuncPartCall 2) ("Prelude","flip") [Comb (ConsPartCall 2) ("Prelude",":") []],Comb ConsCall ("Prelude","[]") []])),Func ("Prelude","and") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]) (TCons ("Prelude","Bool") [])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","&&") [],Comb ConsCall ("Prelude","True") []])),Func ("Prelude","or") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]) (TCons ("Prelude","Bool") [])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","||") [],Comb ConsCall ("Prelude","False") []])),Func ("Prelude","any") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("Prelude","or") [],Comb (FuncPartCall 1) ("Prelude","map") [Var 1]])),Func ("Prelude","all") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("Prelude","and") [],Comb (FuncPartCall 1) ("Prelude","map") [Var 1]])),Func ("Prelude","elem") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1] (Comb FuncCall ("Prelude","any") [Comb (FuncPartCall 1) ("Prelude","==") [Var 1]])),Func ("Prelude","notElem") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1] (Comb FuncCall ("Prelude","all") [Comb (FuncPartCall 1) ("Prelude","/=") [Var 1]])),Func ("Prelude","lookup") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","Maybe") [TVar 1]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Var 5]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","Just") [Var 6]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","lookup") [Var 1,Var 4]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("Prelude","enumFrom") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Comb ConsCall ("Prelude",":") [Var 1,Comb FuncCall ("Prelude","enumFrom") [Comb FuncCall ("Prelude","+") [Var 1,Lit (Intc  1)]]])),Func ("Prelude","enumFromThen") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","iterate") [Comb (FuncPartCall 1) ("Prelude","+") [Comb FuncCall ("Prelude","-") [Var 2,Var 1]],Var 1])),Func ("Prelude","enumFromTo") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 1,Comb FuncCall ("Prelude","enumFromTo") [Comb FuncCall ("Prelude","+") [Var 1,Lit (Intc  1)],Var 2]])])),Func ("Prelude","enumFromThenTo") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","takeWhile") [Comb (FuncPartCall 1) ("Prelude","enumFromThenTo.p.364") [Var 3,Var 1,Var 2],Comb FuncCall ("Prelude","enumFromThen") [Var 1,Var 2]])),Func ("Prelude","enumFromThenTo.p.364") 4 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))))) (Rule [1,2,3,4] (Case  Rigid (Comb FuncCall ("Prelude",">=") [Var 3,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","<=") [Var 4,Var 1]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude",">=") [Var 4,Var 1]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])),Func ("Prelude","ord") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Prelude","prim_ord") [],Var 1])),Func ("Prelude","prim_ord") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Int") [])) (External "Prelude.prim_ord"),Func ("Prelude","chr") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Char") [])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Prelude","prim_chr") [],Var 1])),Func ("Prelude","prim_chr") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Char") [])) (External "Prelude.prim_chr"),Func ("Prelude","succ") 1 Public (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","O") [2]) (Comb ConsCall ("Prelude","I") [Var 2]),Branch (Pattern ("Prelude","I") [3]) (Comb ConsCall ("Prelude","O") [Comb FuncCall ("Prelude","succ") [Var 3]]),Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","O") [Comb ConsCall ("Prelude","IHi") []])])),Func ("Prelude","+^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","O") [3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","O") [4]) (Comb ConsCall ("Prelude","O") [Comb FuncCall ("Prelude","+^") [Var 3,Var 4]]),Branch (Pattern ("Prelude","I") [5]) (Comb ConsCall ("Prelude","I") [Comb FuncCall ("Prelude","+^") [Var 3,Var 5]]),Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","I") [Var 3])]),Branch (Pattern ("Prelude","I") [6]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","O") [7]) (Comb ConsCall ("Prelude","I") [Comb FuncCall ("Prelude","+^") [Var 6,Var 7]]),Branch (Pattern ("Prelude","I") [8]) (Comb ConsCall ("Prelude","O") [Comb FuncCall ("Prelude","+^") [Comb FuncCall ("Prelude","succ") [Var 6],Var 8]]),Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","O") [Comb FuncCall ("Prelude","succ") [Var 6]])]),Branch (Pattern ("Prelude","IHi") []) (Comb FuncCall ("Prelude","succ") [Var 2])])),Func ("Prelude","cmpNat") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","IHi") []) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","EQ") []),Branch (Pattern ("Prelude","O") [3]) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","I") [4]) (Comb ConsCall ("Prelude","LT") [])]),Branch (Pattern ("Prelude","O") [5]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","O") [6]) (Comb FuncCall ("Prelude","cmpNat") [Var 5,Var 6]),Branch (Pattern ("Prelude","I") [7]) (Comb FuncCall ("Prelude","cmpNatLT") [Var 5,Var 7])]),Branch (Pattern ("Prelude","I") [8]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","I") [9]) (Comb FuncCall ("Prelude","cmpNat") [Var 8,Var 9]),Branch (Pattern ("Prelude","O") [10]) (Comb FuncCall ("Prelude","cmpNatGT") [Var 8,Var 10])])])),Func ("Prelude","cmpNatLT") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","O") [3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","O") [4]) (Comb FuncCall ("Prelude","cmpNatLT") [Var 3,Var 4]),Branch (Pattern ("Prelude","I") [5]) (Comb FuncCall ("Prelude","cmpNatLT") [Var 3,Var 5])]),Branch (Pattern ("Prelude","I") [6]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","I") [7]) (Comb FuncCall ("Prelude","cmpNatLT") [Var 6,Var 7]),Branch (Pattern ("Prelude","O") [8]) (Comb FuncCall ("Prelude","cmpNatGT") [Var 6,Var 8])])])),Func ("Prelude","cmpNatGT") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","O") [3]) (Case  Flex (Var 1) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","O") [4]) (Comb FuncCall ("Prelude","cmpNatGT") [Var 4,Var 3]),Branch (Pattern ("Prelude","I") [5]) (Comb FuncCall ("Prelude","cmpNatGT") [Var 5,Var 3])]),Branch (Pattern ("Prelude","I") [6]) (Case  Flex (Var 1) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","I") [7]) (Comb FuncCall ("Prelude","cmpNatGT") [Var 7,Var 6]),Branch (Pattern ("Prelude","O") [8]) (Comb FuncCall ("Prelude","cmpNatLT") [Var 8,Var 6])])])),Func ("Prelude","<^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","isLT") [Comb FuncCall ("Prelude","cmpNat") [Var 1,Var 2]])),Func ("Prelude",">^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","isGT") [Comb FuncCall ("Prelude","cmpNat") [Var 1,Var 2]])),Func ("Prelude","<=^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","isGT") [Comb FuncCall ("Prelude","cmpNat") [Var 1,Var 2]]])),Func ("Prelude",">=^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","isLT") [Comb FuncCall ("Prelude","cmpNat") [Var 1,Var 2]]])),Func ("Prelude","*^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","IHi") []) (Var 2),Branch (Pattern ("Prelude","I") [3]) (Comb FuncCall ("Prelude","+^") [Comb ConsCall ("Prelude","O") [Comb FuncCall ("Prelude","*^") [Var 2,Var 3]],Var 2]),Branch (Pattern ("Prelude","O") [4]) (Comb ConsCall ("Prelude","O") [Comb FuncCall ("Prelude","*^") [Var 4,Var 2]])])),Func ("Prelude","pred") 1 Public (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","O") [2]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","IHi") []),Branch (Pattern ("Prelude","O") [3]) (Comb ConsCall ("Prelude","I") [Comb FuncCall ("Prelude","pred") [Var 2]]),Branch (Pattern ("Prelude","I") [4]) (Comb ConsCall ("Prelude","I") [Comb ConsCall ("Prelude","O") [Var 4]])]),Branch (Pattern ("Prelude","I") [5]) (Comb ConsCall ("Prelude","O") [Var 5])])),Func ("Prelude","inc") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","IHi") []]),Branch (Pattern ("Prelude","Pos") [2]) (Comb ConsCall ("Prelude","Pos") [Comb FuncCall ("Prelude","succ") [Var 2]]),Branch (Pattern ("Prelude","Neg") [3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","Zero") []),Branch (Pattern ("Prelude","O") [4]) (Comb ConsCall ("Prelude","Neg") [Comb FuncCall ("Prelude","pred") [Comb ConsCall ("Prelude","O") [Var 4]]]),Branch (Pattern ("Prelude","I") [5]) (Comb ConsCall ("Prelude","Neg") [Comb ConsCall ("Prelude","O") [Var 5]])])])),Func ("Prelude","dec") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","Neg") [Comb ConsCall ("Prelude","IHi") []]),Branch (Pattern ("Prelude","Neg") [2]) (Comb ConsCall ("Prelude","Neg") [Comb FuncCall ("Prelude","succ") [Var 2]]),Branch (Pattern ("Prelude","Pos") [3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","Zero") []),Branch (Pattern ("Prelude","O") [4]) (Comb ConsCall ("Prelude","Pos") [Comb FuncCall ("Prelude","pred") [Comb ConsCall ("Prelude","O") [Var 4]]]),Branch (Pattern ("Prelude","I") [5]) (Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","O") [Var 5]])])])),Func ("Prelude","mult2") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Pos") [2]) (Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","O") [Var 2]]),Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","Zero") []),Branch (Pattern ("Prelude","Neg") [3]) (Comb ConsCall ("Prelude","Neg") [Comb ConsCall ("Prelude","O") [Var 3]])])),Func ("Prelude","-^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","IHi") []) (Comb FuncCall ("Prelude","inc") [Comb ConsCall ("Prelude","Neg") [Var 2]]),Branch (Pattern ("Prelude","O") [3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","Pos") [Comb FuncCall ("Prelude","pred") [Comb ConsCall ("Prelude","O") [Var 3]]]),Branch (Pattern ("Prelude","O") [4]) (Comb FuncCall ("Prelude","mult2") [Comb FuncCall ("Prelude","-^") [Var 3,Var 4]]),Branch (Pattern ("Prelude","I") [5]) (Comb FuncCall ("Prelude","dec") [Comb FuncCall ("Prelude","mult2") [Comb FuncCall ("Prelude","-^") [Var 3,Var 5]]])]),Branch (Pattern ("Prelude","I") [6]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","O") [Var 6]]),Branch (Pattern ("Prelude","O") [7]) (Comb FuncCall ("Prelude","inc") [Comb FuncCall ("Prelude","mult2") [Comb FuncCall ("Prelude","-^") [Var 6,Var 7]]]),Branch (Pattern ("Prelude","I") [8]) (Comb FuncCall ("Prelude","mult2") [Comb FuncCall ("Prelude","-^") [Var 6,Var 8]])])])),Func ("Prelude","div2") 1 Public (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","O") [2]) (Var 2),Branch (Pattern ("Prelude","I") [3]) (Var 3)])),Func ("Prelude","mod2") 1 Public (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","IHi") []) (Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","IHi") []]),Branch (Pattern ("Prelude","O") [2]) (Comb ConsCall ("Prelude","Zero") []),Branch (Pattern ("Prelude","I") [3]) (Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","IHi") []])])),Func ("Prelude","divmodNat") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Comb ConsCall ("Prelude","IHi") []]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Pos") [Var 1],Comb ConsCall ("Prelude","Zero") []]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Prelude","cmpNat") [Var 1,Var 2]) [Branch (Pattern ("Prelude","EQ") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","IHi") []],Comb ConsCall ("Prelude","Zero") []]),Branch (Pattern ("Prelude","LT") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Zero") [],Comb ConsCall ("Prelude","Pos") [Var 1]]),Branch (Pattern ("Prelude","GT") []) (Case  Rigid (Comb FuncCall ("Prelude","divmodNat") [Comb FuncCall ("Prelude","div2") [Var 1],Var 2]) [Branch (Pattern ("Prelude","(,)") [3,4]) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","IHi") []],Comb FuncCall ("Prelude","-^") [Var 1,Var 2]]),Branch (Pattern ("Prelude","Pos") [5]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","O") [Var 5]],Comb FuncCall ("Prelude","mod2") [Var 1]]),Branch (Pattern ("Prelude","Pos") [6]) (Case  Rigid (Comb FuncCall ("Prelude","divmodNat") [Comb FuncCall ("Prelude","divmodNat.shift.523") [Var 1,Var 6],Var 2]) [Branch (Pattern ("Prelude","(,)") [7,8]) (Case  Rigid (Var 7) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Pos") [Comb ConsCall ("Prelude","O") [Var 5]],Var 8]),Branch (Pattern ("Prelude","Pos") [9]) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Pos") [Comb FuncCall ("Prelude","+^") [Comb ConsCall ("Prelude","O") [Var 5],Var 9]],Var 8]),Branch (Pattern ("Prelude","Neg") [10]) (Comb FuncCall ("Prelude","failed") [])])]),Branch (Pattern ("Prelude","Neg") [11]) (Comb FuncCall ("Prelude","failed") [])]),Branch (Pattern ("Prelude","Neg") [12]) (Comb FuncCall ("Prelude","failed") [])])])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])),Func ("Prelude","divmodNat.shift.523") 2 Private (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","O") [3]) (Comb ConsCall ("Prelude","O") [Var 2]),Branch (Pattern ("Prelude","I") [4]) (Comb ConsCall ("Prelude","I") [Var 2])])),Func ("Prelude","+") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Pos") [3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Pos") [4]) (Comb ConsCall ("Prelude","Pos") [Comb FuncCall ("Prelude","+^") [Var 3,Var 4]]),Branch (Pattern ("Prelude","Neg") [5]) (Comb FuncCall ("Prelude","-^") [Var 3,Var 5]),Branch (Pattern ("Prelude","Zero") []) (Var 1)]),Branch (Pattern ("Prelude","Neg") [6]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Neg") [7]) (Comb ConsCall ("Prelude","Neg") [Comb FuncCall ("Prelude","+^") [Var 6,Var 7]]),Branch (Pattern ("Prelude","Pos") [8]) (Comb FuncCall ("Prelude","-^") [Var 8,Var 6]),Branch (Pattern ("Prelude","Zero") []) (Var 1)]),Branch (Pattern ("Prelude","Zero") []) (Var 2)])),Func ("Prelude","-") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Neg") [3]) (Comb FuncCall ("Prelude","+") [Var 1,Comb ConsCall ("Prelude","Pos") [Var 3]]),Branch (Pattern ("Prelude","Pos") [4]) (Comb FuncCall ("Prelude","+") [Var 1,Comb ConsCall ("Prelude","Neg") [Var 4]]),Branch (Pattern ("Prelude","Zero") []) (Var 1)])),Func ("Prelude","*") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Pos") [3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Pos") [4]) (Comb ConsCall ("Prelude","Pos") [Comb FuncCall ("Prelude","*^") [Var 3,Var 4]]),Branch (Pattern ("Prelude","Neg") [5]) (Comb ConsCall ("Prelude","Neg") [Comb FuncCall ("Prelude","*^") [Var 3,Var 5]]),Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","Zero") [])]),Branch (Pattern ("Prelude","Neg") [6]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Neg") [7]) (Comb ConsCall ("Prelude","Pos") [Comb FuncCall ("Prelude","*^") [Var 6,Var 7]]),Branch (Pattern ("Prelude","Pos") [8]) (Comb ConsCall ("Prelude","Neg") [Comb FuncCall ("Prelude","*^") [Var 6,Var 8]]),Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","Zero") [])]),Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","Zero") [])])),Func ("Prelude","divmod") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","Zero") [],Comb ConsCall ("Prelude","Zero") []]),Branch (Pattern ("Prelude","Pos") [3]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Zero") []) (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '0'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]),Branch (Pattern ("Prelude","Pos") [4]) (Comb FuncCall ("Prelude","divmodNat") [Var 3,Var 4]),Branch (Pattern ("Prelude","Neg") [5]) (Let [(6,Comb FuncCall ("Prelude","divmodNat") [Var 3,Var 5])] (Let [(7,Comb FuncCall ("Prelude","divmod._#selFP25#d") [Var 6])] (Let [(8,Comb FuncCall ("Prelude","divmod._#selFP26#m") [Var 6])] (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","negate") [Var 7],Var 8]))))]),Branch (Pattern ("Prelude","Neg") [9]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Zero") []) (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '0'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]),Branch (Pattern ("Prelude","Pos") [10]) (Let [(11,Comb FuncCall ("Prelude","divmodNat") [Var 9,Var 10])] (Let [(12,Comb FuncCall ("Prelude","divmod._#selFP28#d") [Var 11])] (Let [(13,Comb FuncCall ("Prelude","divmod._#selFP29#m") [Var 11])] (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Prelude","negate") [Var 12],Comb FuncCall ("Prelude","negate") [Var 13]])))),Branch (Pattern ("Prelude","Neg") [14]) (Let [(15,Comb FuncCall ("Prelude","divmodNat") [Var 9,Var 14])] (Let [(16,Comb FuncCall ("Prelude","divmod._#selFP31#d") [Var 15])] (Let [(17,Comb FuncCall ("Prelude","divmod._#selFP32#m") [Var 15])] (Comb ConsCall ("Prelude","(,)") [Var 16,Comb FuncCall ("Prelude","negate") [Var 17]]))))])])),Func ("Prelude","divmod._#selFP25#d") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","divmod._#selFP26#m") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","divmod._#selFP28#d") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","divmod._#selFP29#m") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","divmod._#selFP31#d") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","divmod._#selFP32#m") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","div") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Comb FuncCall ("Prelude","fst") [Comb FuncCall ("Prelude","divmod") [Var 1,Var 2]])),Func ("Prelude","mod") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Comb FuncCall ("Prelude","snd") [Comb FuncCall ("Prelude","divmod") [Var 1,Var 2]])),Func ("Prelude","negate") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Zero") []) (Comb ConsCall ("Prelude","Zero") []),Branch (Pattern ("Prelude","Pos") [2]) (Comb ConsCall ("Prelude","Neg") [Var 2]),Branch (Pattern ("Prelude","Neg") [3]) (Comb ConsCall ("Prelude","Pos") [Var 3])])),Func ("Prelude","success") 0 Public (TCons ("Prelude","Success") []) (Rule [] (Comb ConsCall ("Prelude","Success") [])),Func ("Prelude","=:=") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Success") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","===") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","success") []),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])),Func ("Prelude","===") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (External "Prelude.==="),Func ("Prelude","&") 2 Public (FuncType (TCons ("Prelude","Success") []) (FuncType (TCons ("Prelude","Success") []) (TCons ("Prelude","Success") []))) (External "Prelude.&"),Func ("Prelude","&>") 2 Public (FuncType (TCons ("Prelude","Success") []) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Comb FuncCall ("Prelude","cond") [Var 1,Var 2])),Func ("Prelude","maybe") 3 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 0)) (FuncType (TCons ("Prelude","Maybe") [TVar 1]) (TVar 0)))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","Nothing") []) (Var 1),Branch (Pattern ("Prelude","Just") [4]) (Comb FuncCall ("Prelude","apply") [Var 2,Var 4])])),Func ("Prelude","either") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 1)) (FuncType (TCons ("Prelude","Either") [TVar 0,TVar 2]) (TVar 1)))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","Left") [4]) (Comb FuncCall ("Prelude","apply") [Var 1,Var 4]),Branch (Pattern ("Prelude","Right") [5]) (Comb FuncCall ("Prelude","apply") [Var 2,Var 5])])),Func ("Prelude",">>=") 2 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1])) (TCons ("Prelude","IO") [TVar 1]))) (External "Prelude.>>="),Func ("Prelude","return") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Prelude.return"),Func ("Prelude",">>") 2 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TCons ("Prelude","IO") [TVar 1]) (TCons ("Prelude","IO") [TVar 1]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Var 1,Comb (FuncPartCall 1) ("Prelude","const") [Var 2]])),Func ("Prelude","done") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","()") []]) (Rule [] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","()") []])),Func ("Prelude","putChar") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Prelude","prim_putChar") [],Var 1])),Func ("Prelude","prim_putChar") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "Prelude.prim_putChar"),Func ("Prelude","getChar") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Char") []]) (External "Prelude.getChar"),Func ("Prelude","readFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Prelude","prim_readFile") [],Var 1])),Func ("Prelude","prim_readFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (External "Prelude.prim_readFile"),Func ("Prelude","writeFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("Prelude","prim_writeFile") [],Var 1],Var 2])),Func ("Prelude","prim_writeFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "Prelude.prim_writeFile"),Func ("Prelude","appendFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("Prelude","prim_appendFile") [],Var 1],Var 2])),Func ("Prelude","prim_appendFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "Prelude.prim_appendFile"),Func ("Prelude","catchFail") 2 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 0]))) (External "Prelude.catchFail"),Func ("Prelude","putStr") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","done") []),Branch (Pattern ("Prelude",":") [2,3]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putChar") [Var 2],Comb FuncCall ("Prelude","putStr") [Var 3]])])),Func ("Prelude","putStrLn") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStr") [Var 1],Comb FuncCall ("Prelude","putChar") [Lit (Charc  '\n')]])),Func ("Prelude","getLine") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (Rule [] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","getChar") [],Comb (FuncPartCall 1) ("Prelude","getLine._#lambda10") []])),Func ("Prelude","getLine._#lambda10") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  '\n')]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","getLine") [],Comb (FuncPartCall 1) ("Prelude","getLine._#lambda10._#lambda11") [Var 1]])])),Func ("Prelude","getLine._#lambda10._#lambda11") 2 Private (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("Prelude","show") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Prelude","prim_show") [],Var 1])),Func ("Prelude","prim_show") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "Prelude.prim_show"),Func ("Prelude","print") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","putStrLn") [Comb FuncCall ("Prelude","show") [Var 1]])),Func ("Prelude","doSolve") 1 Public (FuncType (TCons ("Prelude","Success") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","cond") [Var 1,Comb FuncCall ("Prelude","done") []])),Func ("Prelude","sequenceIO") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","IO") [TVar 0]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 0]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [2,3]) (Comb FuncCall ("Prelude",">>=") [Var 2,Comb (FuncPartCall 1) ("Prelude","sequenceIO._#lambda12") [Var 3]])])),Func ("Prelude","sequenceIO._#lambda12") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","IO") [TVar 937]]) (FuncType (TVar 937) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 937]]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","sequenceIO") [Var 1],Comb (FuncPartCall 1) ("Prelude","sequenceIO._#lambda12._#lambda13") [Var 2]])),Func ("Prelude","sequenceIO._#lambda12._#lambda13") 2 Private (FuncType (TVar 937) (FuncType (TCons ("Prelude","[]") [TVar 937]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 937]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("Prelude","sequenceIO_") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","IO") [TVar 0]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude",">>") [],Comb FuncCall ("Prelude","done") []])),Func ("Prelude","mapIO") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 1]]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","sequenceIO") [],Comb (FuncPartCall 1) ("Prelude","map") [Var 1]])),Func ("Prelude","mapIO_") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("Prelude","sequenceIO_") [],Comb (FuncPartCall 1) ("Prelude","map") [Var 1]])),Func ("Prelude","?") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Or (Var 1) (Var 2))),Func ("Prelude","getSearchTree") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","SearchTree") [TVar 0]])) (External "Prelude.getSearchTree"),Func ("Prelude","allValuesD") 1 Public (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Value") [2]) (Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","Fail") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","Suspend") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","Choice") [3]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("Prelude","allValuesD") []],Var 3])])),Func ("Prelude","allValuesB") 1 Public (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude","allValuesB.unfoldOrs.692") [Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]])),Func ("Prelude","allValuesB.partition.692") 2 Private (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","Value") [3]) (Let [(4,Var 2)] (Let [(5,Comb FuncCall ("Prelude","allValuesB.partition.692._#selFP34#vs") [Var 4])] (Let [(6,Comb FuncCall ("Prelude","allValuesB.partition.692._#selFP35#ors") [Var 4])] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 3,Var 5],Var 6])))),Branch (Pattern ("Prelude","Choice") [7]) (Let [(8,Var 2)] (Let [(9,Comb FuncCall ("Prelude","allValuesB.partition.692._#selFP37#vs") [Var 8])] (Let [(10,Comb FuncCall ("Prelude","allValuesB.partition.692._#selFP38#ors") [Var 8])] (Comb ConsCall ("Prelude","(,)") [Var 9,Comb FuncCall ("Prelude","++") [Var 7,Var 10]])))),Branch (Pattern ("Prelude","Fail") []) (Var 2),Branch (Pattern ("Prelude","Suspend") []) (Var 2)])),Func ("Prelude","allValuesB.partition.692._#selFP34#vs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1001],TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1001]]]) (TCons ("Prelude","[]") [TVar 1001])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","allValuesB.partition.692._#selFP35#ors") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1001],TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1001]]]) (TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1001]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","allValuesB.partition.692._#selFP37#vs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1001],TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1001]]]) (TCons ("Prelude","[]") [TVar 1001])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","allValuesB.partition.692._#selFP38#ors") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1001],TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1001]]]) (TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1001]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","allValuesB.unfoldOrs.692") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [2,3]) (Let [(4,Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","allValuesB.partition.692") [],Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []],Comb ConsCall ("Prelude",":") [Var 2,Var 3]])] (Let [(5,Comb FuncCall ("Prelude","allValuesB.unfoldOrs.692._#selFP40#vals") [Var 4])] (Let [(6,Comb FuncCall ("Prelude","allValuesB.unfoldOrs.692._#selFP41#ors") [Var 4])] (Comb FuncCall ("Prelude","++") [Var 5,Comb FuncCall ("Prelude","allValuesB.unfoldOrs.692") [Var 6]]))))])),Func ("Prelude","allValuesB.unfoldOrs.692._#selFP40#vals") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1014],TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1014]]]) (TCons ("Prelude","[]") [TVar 1014])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Prelude","allValuesB.unfoldOrs.692._#selFP41#ors") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1014],TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1014]]]) (TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 1014]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Prelude","inject") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Success") [])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Success") [])) (FuncType (TVar 0) (TCons ("Prelude","Success") [])))) (Rule [1,2] (Comb (FuncPartCall 1) ("Prelude","inject._#lambda14") [Var 1,Var 2])),Func ("Prelude","inject._#lambda14") 3 Private (FuncType (FuncType (TVar 1025) (TCons ("Prelude","Success") [])) (FuncType (FuncType (TVar 1025) (TCons ("Prelude","Success") [])) (FuncType (TVar 1025) (TCons ("Prelude","Success") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","&") [Comb FuncCall ("Prelude","apply") [Var 2,Var 3],Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("Prelude","PEVAL") 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [1] (Var 1)),Func ("Prelude","apply") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.apply"),Func ("Prelude","cond") 2 Public (FuncType (TCons ("Prelude","Success") []) (FuncType (TVar 0) (TVar 0))) (External "Prelude.cond"),Func ("Prelude","unknown") 0 Public (TVar 0) (Rule [] (Free [1] (Var 1))),Func ("Prelude","=:<=") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Success") []))) (External "Prelude.=:<=")] [Op ("Prelude","!!") InfixlOp 9,Op ("Prelude",".") InfixrOp 9,Op ("Prelude","*") InfixlOp 7,Op ("Prelude","*^") InfixlOp 7,Op ("Prelude","div") InfixlOp 7,Op ("Prelude","mod") InfixlOp 7,Op ("Prelude","+") InfixlOp 6,Op ("Prelude","+^") InfixlOp 6,Op ("Prelude","-") InfixlOp 6,Op ("Prelude","-^") InfixlOp 6,Op ("Prelude","++") InfixrOp 5,Op ("Prelude","=:=") InfixOp 4,Op ("Prelude","==") InfixOp 4,Op ("Prelude","===") InfixOp 4,Op ("Prelude","/=") InfixOp 4,Op ("Prelude","<") InfixOp 4,Op ("Prelude",">") InfixOp 4,Op ("Prelude","<=") InfixOp 4,Op ("Prelude",">=") InfixOp 4,Op ("Prelude","=:<=") InfixOp 4,Op ("Prelude","<^") InfixOp 4,Op ("Prelude","<=^") InfixOp 4,Op ("Prelude",">^") InfixOp 4,Op ("Prelude",">=^") InfixOp 4,Op ("Prelude","elem") InfixOp 4,Op ("Prelude","notElem") InfixOp 4,Op ("Prelude","&&") InfixrOp 3,Op ("Prelude","||") InfixrOp 2,Op ("Prelude",">>") InfixlOp 1,Op ("Prelude",">>=") InfixlOp 1,Op ("Prelude","$") InfixrOp 0,Op ("Prelude","$!") InfixrOp 0,Op ("Prelude","$!!") InfixrOp 0,Op ("Prelude","$#") InfixrOp 0,Op ("Prelude","$##") InfixrOp 0,Op ("Prelude","seq") InfixrOp 0,Op ("Prelude","&") InfixrOp 0,Op ("Prelude","&>") InfixrOp 0,Op ("Prelude","?") InfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/Prelude.fint b/src/lib/Curry/Module/.curry/Prelude.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Prelude.fint
@@ -0,0 +1,1 @@
+Prog "Prelude" [] [Type ("Prelude","()") Public [] [Cons ("Prelude","()") 0 Public []],Type ("Prelude","[]") Public [0] [Cons ("Prelude","[]") 0 Public [],Cons ("Prelude",":") 2 Public [TVar 0,TCons ("Prelude","[]") [TVar 0]]],Type ("Prelude","(,)") Public [0,1] [Cons ("Prelude","(,)") 2 Public [TVar 0,TVar 1]],Type ("Prelude","(,,)") Public [0,1,2] [Cons ("Prelude","(,,)") 3 Public [TVar 0,TVar 1,TVar 2]],Type ("Prelude","(,,,)") Public [0,1,2,3] [Cons ("Prelude","(,,,)") 4 Public [TVar 0,TVar 1,TVar 2,TVar 3]],Type ("Prelude","(,,,,)") Public [0,1,2,3,4] [Cons ("Prelude","(,,,,)") 5 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4]],Type ("Prelude","(,,,,,)") Public [0,1,2,3,4,5] [Cons ("Prelude","(,,,,,)") 6 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5]],Type ("Prelude","(,,,,,,)") Public [0,1,2,3,4,5,6] [Cons ("Prelude","(,,,,,,)") 7 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6]],Type ("Prelude","(,,,,,,,)") Public [0,1,2,3,4,5,6,7] [Cons ("Prelude","(,,,,,,,)") 8 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7]],Type ("Prelude","(,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8] [Cons ("Prelude","(,,,,,,,,)") 9 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8]],Type ("Prelude","(,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9] [Cons ("Prelude","(,,,,,,,,,)") 10 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9]],Type ("Prelude","(,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10] [Cons ("Prelude","(,,,,,,,,,,)") 11 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10]],Type ("Prelude","(,,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10,11] [Cons ("Prelude","(,,,,,,,,,,,)") 12 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11]],Type ("Prelude","(,,,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10,11,12] [Cons ("Prelude","(,,,,,,,,,,,,)") 13 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12]],Type ("Prelude","(,,,,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10,11,12,13] [Cons ("Prelude","(,,,,,,,,,,,,,)") 14 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12,TVar 13]],Type ("Prelude","(,,,,,,,,,,,,,,)") Public [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14] [Cons ("Prelude","(,,,,,,,,,,,,,,)") 15 Public [TVar 0,TVar 1,TVar 2,TVar 3,TVar 4,TVar 5,TVar 6,TVar 7,TVar 8,TVar 9,TVar 10,TVar 11,TVar 12,TVar 13,TVar 14]],TypeSyn ("Prelude","String") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),Type ("Prelude","Float") Public [] [],Type ("Prelude","Char") Public [] [],Type ("Prelude","Bool") Public [] [Cons ("Prelude","False") 0 Public [],Cons ("Prelude","True") 0 Public []],Type ("Prelude","Ordering") Public [] [Cons ("Prelude","LT") 0 Public [],Cons ("Prelude","EQ") 0 Public [],Cons ("Prelude","GT") 0 Public []],Type ("Prelude","Nat") Public [] [Cons ("Prelude","IHi") 0 Public [],Cons ("Prelude","O") 1 Public [TCons ("Prelude","Nat") []],Cons ("Prelude","I") 1 Public [TCons ("Prelude","Nat") []]],Type ("Prelude","Int") Public [] [Cons ("Prelude","Neg") 1 Public [TCons ("Prelude","Nat") []],Cons ("Prelude","Zero") 0 Public [],Cons ("Prelude","Pos") 1 Public [TCons ("Prelude","Nat") []]],Type ("Prelude","Success") Public [] [Cons ("Prelude","Success") 0 Public []],Type ("Prelude","Maybe") Public [0] [Cons ("Prelude","Nothing") 0 Public [],Cons ("Prelude","Just") 1 Public [TVar 0]],Type ("Prelude","Either") Public [0,1] [Cons ("Prelude","Left") 1 Public [TVar 0],Cons ("Prelude","Right") 1 Public [TVar 1]],Type ("Prelude","IO") Public [0] [],Type ("Prelude","SearchTree") Public [0] [Cons ("Prelude","Fail") 0 Public [],Cons ("Prelude","Value") 1 Public [TVar 0],Cons ("Prelude","Choice") 1 Public [TCons ("Prelude","[]") [TCons ("Prelude","SearchTree") [TVar 0]]],Cons ("Prelude","Suspend") 0 Public []]] [Func ("Prelude",".") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))) (Rule [] (Var 0)),Func ("Prelude","id") 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [] (Var 0)),Func ("Prelude","const") 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (Rule [] (Var 0)),Func ("Prelude","curry") 3 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TVar 2)) (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2)))) (Rule [] (Var 0)),Func ("Prelude","uncurry") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TVar 2))) (Rule [] (Var 0)),Func ("Prelude","flip") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TVar 1) (FuncType (TVar 0) (TVar 2)))) (Rule [] (Var 0)),Func ("Prelude","until") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("Prelude","$") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (Rule [] (Var 0)),Func ("Prelude","$!") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$!"),Func ("Prelude","$!!") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$!!"),Func ("Prelude","$#") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$#"),Func ("Prelude","$##") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.$##"),Func ("Prelude","ensureSpine") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Prelude","seq") 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (Rule [] (Var 0)),Func ("Prelude","error") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (Rule [] (Var 0)),Func ("Prelude","prim_error") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (External "Prelude.prim_error"),Func ("Prelude","failed") 0 Public (TVar 0) (External "Prelude.failed"),Func ("Prelude","&&") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","||") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","not") 1 Public (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Prelude","otherwise") 0 Public (TCons ("Prelude","Bool") []) (Rule [] (Var 0)),Func ("Prelude","if_then_else") 3 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("Prelude","isLT") 1 Public (FuncType (TCons ("Prelude","Ordering") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Prelude","isGT") 1 Public (FuncType (TCons ("Prelude","Ordering") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Prelude","isEQ") 1 Public (FuncType (TCons ("Prelude","Ordering") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Prelude","compare") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0)),Func ("Prelude","<") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude",">") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","<=") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude",">=") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","max") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Prelude","min") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Prelude","==") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (External "Prelude.=="),Func ("Prelude","/=") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","fst") 1 Public (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TVar 0)) (Rule [] (Var 0)),Func ("Prelude","snd") 1 Public (FuncType (TCons ("Prelude","(,)") [TVar 0,TVar 1]) (TVar 1)) (Rule [] (Var 0)),Func ("Prelude","head") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (Rule [] (Var 0)),Func ("Prelude","tail") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Prelude","null") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Prelude","++") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Prelude","length") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Prelude","!!") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (TVar 0))) (Rule [] (Var 0)),Func ("Prelude","map") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 1]))) (Rule [] (Var 0)),Func ("Prelude","foldl") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 0))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)))) (Rule [] (Var 0)),Func ("Prelude","foldl1") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))) (Rule [] (Var 0)),Func ("Prelude","foldr") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 1)))) (Rule [] (Var 0)),Func ("Prelude","foldr1") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))) (Rule [] (Var 0)),Func ("Prelude","filter") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Prelude","zip") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]))) (Rule [] (Var 0)),Func ("Prelude","zip3") 3 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TVar 0,TVar 1,TVar 2]])))) (Rule [] (Var 0)),Func ("Prelude","zipWith") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (TVar 2))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 2])))) (Rule [] (Var 0)),Func ("Prelude","zipWith3") 4 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TVar 2) (TVar 3)))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 1]) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TCons ("Prelude","[]") [TVar 3]))))) (Rule [] (Var 0)),Func ("Prelude","unzip") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 1]])) (Rule [] (Var 0)),Func ("Prelude","unzip3") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TVar 0,TVar 1,TVar 2]]) (TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 1],TCons ("Prelude","[]") [TVar 2]])) (Rule [] (Var 0)),Func ("Prelude","concat") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Prelude","concatMap") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 1]))) (Rule [] (Var 0)),Func ("Prelude","iterate") 2 Public (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Prelude","repeat") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Prelude","replicate") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Prelude","take") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Prelude","drop") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Prelude","splitAt") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [] (Var 0)),Func ("Prelude","takeWhile") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Prelude","dropWhile") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Prelude","span") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [] (Var 0)),Func ("Prelude","break") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [] (Var 0)),Func ("Prelude","lines") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("Prelude","unlines") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Prelude","words") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("Prelude","unwords") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Prelude","reverse") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Prelude","and") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Prelude","or") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Prelude","any") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","all") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","elem") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","notElem") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","lookup") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","Maybe") [TVar 1]))) (Rule [] (Var 0)),Func ("Prelude","enumFrom") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("Prelude","enumFromThen") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("Prelude","enumFromTo") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("Prelude","enumFromThenTo") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (Rule [] (Var 0)),Func ("Prelude","ord") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Prelude","prim_ord") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Int") [])) (External "Prelude.prim_ord"),Func ("Prelude","chr") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Char") [])) (Rule [] (Var 0)),Func ("Prelude","prim_chr") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Char") [])) (External "Prelude.prim_chr"),Func ("Prelude","succ") 1 Public (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") [])) (Rule [] (Var 0)),Func ("Prelude","+^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") []))) (Rule [] (Var 0)),Func ("Prelude","cmpNat") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0)),Func ("Prelude","cmpNatLT") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0)),Func ("Prelude","cmpNatGT") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0)),Func ("Prelude","<^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude",">^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","<=^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude",">=^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Prelude","*^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") []))) (Rule [] (Var 0)),Func ("Prelude","pred") 1 Public (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") [])) (Rule [] (Var 0)),Func ("Prelude","inc") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Prelude","dec") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Prelude","mult2") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Prelude","-^") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Prelude","div2") 1 Public (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Nat") [])) (Rule [] (Var 0)),Func ("Prelude","mod2") 1 Public (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Prelude","divmodNat") 2 Public (FuncType (TCons ("Prelude","Nat") []) (FuncType (TCons ("Prelude","Nat") []) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("Prelude","+") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Prelude","-") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Prelude","*") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Prelude","divmod") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("Prelude","div") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Prelude","mod") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Prelude","negate") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Prelude","success") 0 Public (TCons ("Prelude","Success") []) (Rule [] (Var 0)),Func ("Prelude","=:=") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Success") []))) (Rule [] (Var 0)),Func ("Prelude","===") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (External "Prelude.==="),Func ("Prelude","&") 2 Public (FuncType (TCons ("Prelude","Success") []) (FuncType (TCons ("Prelude","Success") []) (TCons ("Prelude","Success") []))) (External "Prelude.&"),Func ("Prelude","&>") 2 Public (FuncType (TCons ("Prelude","Success") []) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("Prelude","maybe") 3 Public (FuncType (TVar 0) (FuncType (FuncType (TVar 1) (TVar 0)) (FuncType (TCons ("Prelude","Maybe") [TVar 1]) (TVar 0)))) (Rule [] (Var 0)),Func ("Prelude","either") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 1)) (FuncType (TCons ("Prelude","Either") [TVar 0,TVar 2]) (TVar 1)))) (Rule [] (Var 0)),Func ("Prelude",">>=") 2 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1])) (TCons ("Prelude","IO") [TVar 1]))) (External "Prelude.>>="),Func ("Prelude","return") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (External "Prelude.return"),Func ("Prelude",">>") 2 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TCons ("Prelude","IO") [TVar 1]) (TCons ("Prelude","IO") [TVar 1]))) (Rule [] (Var 0)),Func ("Prelude","done") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","()") []]) (Rule [] (Var 0)),Func ("Prelude","putChar") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Prelude","prim_putChar") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "Prelude.prim_putChar"),Func ("Prelude","getChar") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Char") []]) (External "Prelude.getChar"),Func ("Prelude","readFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("Prelude","prim_readFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (External "Prelude.prim_readFile"),Func ("Prelude","writeFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("Prelude","prim_writeFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "Prelude.prim_writeFile"),Func ("Prelude","appendFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("Prelude","prim_appendFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "Prelude.prim_appendFile"),Func ("Prelude","catchFail") 2 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 0]))) (External "Prelude.catchFail"),Func ("Prelude","putStr") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Prelude","putStrLn") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Prelude","getLine") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (Rule [] (Var 0)),Func ("Prelude","show") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Prelude","prim_show") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "Prelude.prim_show"),Func ("Prelude","print") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Prelude","doSolve") 1 Public (FuncType (TCons ("Prelude","Success") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Prelude","sequenceIO") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","IO") [TVar 0]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 0]])) (Rule [] (Var 0)),Func ("Prelude","sequenceIO_") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","IO") [TVar 0]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Prelude","mapIO") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 1]]))) (Rule [] (Var 0)),Func ("Prelude","mapIO_") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("Prelude","?") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("Prelude","getSearchTree") 1 Public (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","SearchTree") [TVar 0]])) (External "Prelude.getSearchTree"),Func ("Prelude","allValuesD") 1 Public (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Prelude","allValuesB") 1 Public (FuncType (TCons ("Prelude","SearchTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("Prelude","inject") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Success") [])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Success") [])) (FuncType (TVar 0) (TCons ("Prelude","Success") [])))) (Rule [] (Var 0)),Func ("Prelude","PEVAL") 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [] (Var 0)),Func ("Prelude","apply") 2 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TVar 1))) (External "Prelude.apply"),Func ("Prelude","cond") 2 Public (FuncType (TCons ("Prelude","Success") []) (FuncType (TVar 0) (TVar 0))) (External "Prelude.cond"),Func ("Prelude","unknown") 0 Public (TVar 0) (Rule [] (Var 0)),Func ("Prelude","=:<=") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Success") []))) (External "Prelude.=:<=")] [Op ("Prelude","!!") InfixlOp 9,Op ("Prelude",".") InfixrOp 9,Op ("Prelude","*") InfixlOp 7,Op ("Prelude","*^") InfixlOp 7,Op ("Prelude","div") InfixlOp 7,Op ("Prelude","mod") InfixlOp 7,Op ("Prelude","+") InfixlOp 6,Op ("Prelude","+^") InfixlOp 6,Op ("Prelude","-") InfixlOp 6,Op ("Prelude","-^") InfixlOp 6,Op ("Prelude","++") InfixrOp 5,Op ("Prelude","=:=") InfixOp 4,Op ("Prelude","==") InfixOp 4,Op ("Prelude","===") InfixOp 4,Op ("Prelude","/=") InfixOp 4,Op ("Prelude","<") InfixOp 4,Op ("Prelude",">") InfixOp 4,Op ("Prelude","<=") InfixOp 4,Op ("Prelude",">=") InfixOp 4,Op ("Prelude","=:<=") InfixOp 4,Op ("Prelude","<^") InfixOp 4,Op ("Prelude","<=^") InfixOp 4,Op ("Prelude",">^") InfixOp 4,Op ("Prelude",">=^") InfixOp 4,Op ("Prelude","elem") InfixOp 4,Op ("Prelude","notElem") InfixOp 4,Op ("Prelude","&&") InfixrOp 3,Op ("Prelude","||") InfixrOp 2,Op ("Prelude",">>") InfixlOp 1,Op ("Prelude",">>=") InfixlOp 1,Op ("Prelude","$") InfixrOp 0,Op ("Prelude","$!") InfixrOp 0,Op ("Prelude","$!!") InfixrOp 0,Op ("Prelude","$#") InfixrOp 0,Op ("Prelude","$##") InfixrOp 0,Op ("Prelude","seq") InfixrOp 0,Op ("Prelude","&") InfixrOp 0,Op ("Prelude","&>") InfixrOp 0,Op ("Prelude","?") InfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/Prelude.uacy b/src/lib/Curry/Module/.curry/Prelude.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Prelude.uacy
@@ -0,0 +1,168 @@
+CurryProg "Prelude"
+ []
+ [CType ("Prelude","Float") Public [] [],
+  CType ("Prelude","Char") Public [] [],
+  CTypeSyn ("Prelude","String") Public [] (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]),
+  CType ("Prelude","Bool") Public [] [CCons ("Prelude","False") 0 Public [],CCons ("Prelude","True") 0 Public []],
+  CType ("Prelude","Ordering") Public [] [CCons ("Prelude","LT") 0 Public [],CCons ("Prelude","EQ") 0 Public [],CCons ("Prelude","GT") 0 Public []],
+  CType ("Prelude","Nat") Public [] [CCons ("Prelude","IHi") 0 Public [],CCons ("Prelude","O") 1 Public [CTCons ("Prelude","Nat") []],CCons ("Prelude","I") 1 Public [CTCons ("Prelude","Nat") []]],
+  CType ("Prelude","Int") Public [] [CCons ("Prelude","Neg") 1 Public [CTCons ("Prelude","Nat") []],CCons ("Prelude","Zero") 0 Public [],CCons ("Prelude","Pos") 1 Public [CTCons ("Prelude","Nat") []]],
+  CType ("Prelude","Success") Public [] [CCons ("Prelude","Success") 0 Public []],
+  CType ("Prelude","Maybe") Public [(0,"a")] [CCons ("Prelude","Nothing") 0 Public [],CCons ("Prelude","Just") 1 Public [CTVar (0,"a")]],
+  CType ("Prelude","Either") Public [(0,"a"),(1,"b")] [CCons ("Prelude","Left") 1 Public [CTVar (0,"a")],CCons ("Prelude","Right") 1 Public [CTVar (1,"b")]],
+  CType ("Prelude","IO") Public [(0,"_")] [],
+  CType ("Prelude","SearchTree") Public [(0,"a")] [CCons ("Prelude","Fail") 0 Public [],CCons ("Prelude","Value") 1 Public [CTVar (0,"a")],CCons ("Prelude","Choice") 1 Public [CTCons ("Prelude","[]") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]]],CCons ("Prelude","Suspend") 0 Public []]]
+ [CFunc ("Prelude","!!") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","Int") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")],CPVar (2,"n")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"n"))) (CLit (CIntc 0)),CVar (0,"x")),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (2,"n"))) (CLit (CIntc 0)),CApply (CApply (CSymbol ("Prelude","!!")) (CVar (1,"xs"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (2,"n"))) (CLit (CIntc 1))))] []]),
+  CFunc ("Prelude","$") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CVar (1,"x")))] []]),
+  CFunc ("Prelude","$!") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "$!"),
+  CFunc ("Prelude","$!!") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "$!!"),
+  CFunc ("Prelude","$#") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "$#"),
+  CFunc ("Prelude","$##") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "$##"),
+  CFunc ("Prelude","&") 2 Public (CFuncType (CTCons ("Prelude","Success") []) (CFuncType (CTCons ("Prelude","Success") []) (CTCons ("Prelude","Success") []))) (CExternal "&"),
+  CFunc ("Prelude","&&") 2 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","True") [],CPVar (0,"x")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPComb ("Prelude","False") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Prelude","&>") 2 Public (CFuncType (CTCons ("Prelude","Success") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"x")] [(CVar (0,"c"),CVar (1,"x"))] []]),
+  CFunc ("Prelude","*") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","Pos") [CPVar (0,"x")],CPComb ("Prelude","Pos") [CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (0,"x"))) (CVar (1,"y"))))] [],CRule [CPComb ("Prelude","Pos") [CPVar (2,"x")],CPComb ("Prelude","Neg") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (2,"x"))) (CVar (3,"y"))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (4,"x")],CPComb ("Prelude","Neg") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (4,"x"))) (CVar (5,"y"))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (6,"x")],CPComb ("Prelude","Pos") [CPVar (7,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (6,"x"))) (CVar (7,"y"))))] [],CRule [CPComb ("Prelude","Zero") [],CPVar (8,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (9,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (10,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] []]),
+  CFunc ("Prelude","*^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") []))) (CRules CFlex [CRule [CPComb ("Prelude","IHi") [],CPVar (0,"y")] [(CSymbol ("Prelude","success"),CVar (0,"y"))] [],CRule [CPComb ("Prelude","I") [CPVar (1,"x")],CPVar (2,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+^")) (CApply (CSymbol ("Prelude","O")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (2,"y"))) (CVar (1,"x"))))) (CVar (2,"y")))] [],CRule [CPComb ("Prelude","O") [CPVar (3,"x")],CPVar (4,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CApply (CSymbol ("Prelude","*^")) (CVar (3,"x"))) (CVar (4,"y"))))] []]),
+  CFunc ("Prelude","+") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","Pos") [CPVar (0,"x")],CPComb ("Prelude","Pos") [CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (0,"x"))) (CVar (1,"y"))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (2,"x")],CPComb ("Prelude","Neg") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (2,"x"))) (CVar (3,"y"))))] [],CRule [CPComb ("Prelude","Pos") [CPVar (4,"x")],CPComb ("Prelude","Neg") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","-^")) (CVar (4,"x"))) (CVar (5,"y")))] [],CRule [CPComb ("Prelude","Neg") [CPVar (6,"x")],CPComb ("Prelude","Pos") [CPVar (7,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","-^")) (CVar (7,"y"))) (CVar (6,"x")))] [],CRule [CPComb ("Prelude","Zero") [],CPVar (8,"x")] [(CSymbol ("Prelude","success"),CVar (8,"x"))] [],CRule [CPAs (10,"x") (CPComb ("Prelude","Pos") [CPVar (9,"_")]),CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CVar (10,"x"))] [],CRule [CPAs (12,"x") (CPComb ("Prelude","Neg") [CPVar (11,"_")]),CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CVar (12,"x"))] []]),
+  CFunc ("Prelude","++") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []]),
+  CFunc ("Prelude","+^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") []))) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPVar (0,"x")],CPComb ("Prelude","O") [CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (0,"x"))) (CVar (1,"y"))))] [],CRule [CPComb ("Prelude","O") [CPVar (2,"x")],CPComb ("Prelude","I") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (2,"x"))) (CVar (3,"y"))))] [],CRule [CPComb ("Prelude","O") [CPVar (4,"x")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CVar (4,"x")))] [],CRule [CPComb ("Prelude","I") [CPVar (5,"x")],CPComb ("Prelude","O") [CPVar (6,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CApply (CApply (CSymbol ("Prelude","+^")) (CVar (5,"x"))) (CVar (6,"y"))))] [],CRule [CPComb ("Prelude","I") [CPVar (7,"x")],CPComb ("Prelude","I") [CPVar (8,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CApply (CSymbol ("Prelude","+^")) (CApply (CSymbol ("Prelude","succ")) (CVar (7,"x")))) (CVar (8,"y"))))] [],CRule [CPComb ("Prelude","I") [CPVar (9,"x")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CSymbol ("Prelude","succ")) (CVar (9,"x"))))] [],CRule [CPComb ("Prelude","IHi") [],CPVar (10,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","succ")) (CVar (10,"y")))] []]),
+  CFunc ("Prelude","-") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPComb ("Prelude","Neg") [CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"x"))) (CApply (CSymbol ("Prelude","Pos")) (CVar (1,"y"))))] [],CRule [CPVar (2,"x"),CPComb ("Prelude","Pos") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"x"))) (CApply (CSymbol ("Prelude","Neg")) (CVar (3,"y"))))] [],CRule [CPVar (4,"x"),CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CVar (4,"x"))] []]),
+  CFunc ("Prelude","-^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","IHi") [],CPVar (0,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","inc")) (CApply (CSymbol ("Prelude","Neg")) (CVar (0,"y"))))] [],CRule [CPComb ("Prelude","O") [CPVar (1,"x")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","pred")) (CApply (CSymbol ("Prelude","O")) (CVar (1,"x")))))] [],CRule [CPComb ("Prelude","O") [CPVar (2,"x")],CPComb ("Prelude","O") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","mult2")) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (2,"x"))) (CVar (3,"y"))))] [],CRule [CPComb ("Prelude","O") [CPVar (4,"x")],CPComb ("Prelude","I") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","dec")) (CApply (CSymbol ("Prelude","mult2")) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (4,"x"))) (CVar (5,"y")))))] [],CRule [CPComb ("Prelude","I") [CPVar (6,"x")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (6,"x"))))] [],CRule [CPComb ("Prelude","I") [CPVar (7,"x")],CPComb ("Prelude","O") [CPVar (8,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","inc")) (CApply (CSymbol ("Prelude","mult2")) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (7,"x"))) (CVar (8,"y")))))] [],CRule [CPComb ("Prelude","I") [CPVar (9,"x")],CPComb ("Prelude","I") [CPVar (10,"y")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","mult2")) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (9,"x"))) (CVar (10,"y"))))] []]),
+  CFunc ("Prelude",".") 2 Public (CFuncType (CFuncType (CTVar (0,"b")) (CTVar (1,"c"))) (CFuncType (CFuncType (CTVar (2,"a")) (CTVar (0,"b"))) (CFuncType (CTVar (2,"a")) (CTVar (1,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"g")] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"x")] (CApply (CVar (0,"f")) (CApply (CVar (1,"g")) (CVar (2,"x")))))] []]),
+  CFunc ("Prelude","/=") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","not")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","<") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y")))) (CSymbol ("Prelude","LT")))] []]),
+  CFunc ("Prelude","<=") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y")))) (CSymbol ("Prelude","GT")))] []]),
+  CFunc ("Prelude","<=^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Prelude","isGT")) (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y")))))] []]),
+  CFunc ("Prelude","<^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","isLT")) (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","=:<=") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") []))) (CExternal "=:<="),
+  CFunc ("Prelude","=:=") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CApply (CApply (CSymbol ("Prelude","===")) (CVar (0,"x"))) (CVar (1,"y")),CSymbol ("Prelude","success"))] []]),
+  CFunc ("Prelude","==") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CExternal "=="),
+  CFunc ("Prelude","===") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CExternal "==="),
+  CFunc ("Prelude",">") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y")))) (CSymbol ("Prelude","GT")))] []]),
+  CFunc ("Prelude",">=") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y")))) (CSymbol ("Prelude","LT")))] []]),
+  CFunc ("Prelude",">=^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Prelude","isLT")) (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y")))))] []]),
+  CFunc ("Prelude",">>") 2 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"_")]) (CFuncType (CTCons ("Prelude","IO") [CTVar (1,"b")]) (CTCons ("Prelude","IO") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"a"),CPVar (1,"b")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CVar (0,"a"))) (CApply (CSymbol ("Prelude","const")) (CVar (1,"b"))))] []]),
+  CFunc ("Prelude",">>=") 2 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CTCons ("Prelude","IO") [CTVar (1,"b")]))) (CExternal ">>="),
+  CFunc ("Prelude",">^") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","isGT")) (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","?") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"_")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPVar (2,"_"),CPVar (3,"y")] [(CSymbol ("Prelude","success"),CVar (3,"y"))] []]),
+  CFunc ("Prelude","PEVAL") 1 Public (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","all") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","and"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"p"))))] []]),
+  CFunc ("Prelude","allValuesB") 1 Public (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"st")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","unfoldOrs")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"st"))) (CSymbol ("Prelude","[]"))))] [CLocalFunc (CFunc ("Prelude","partition") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","Value") [CPVar (1,"x")],CPVar (2,"y")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"vs"),CPVar (4,"ors")]) (CVar (2,"y")) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (3,"vs")))) (CVar (4,"ors"))))] [],CRule [CPComb ("Prelude","Choice") [CPVar (5,"xs")],CPVar (6,"y")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (7,"vs"),CPVar (8,"ors")]) (CVar (6,"y")) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (7,"vs"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (5,"xs"))) (CVar (8,"ors")))))] [],CRule [CPComb ("Prelude","Fail") [],CPVar (9,"y")] [(CSymbol ("Prelude","success"),CVar (9,"y"))] [],CRule [CPComb ("Prelude","Suspend") [],CPVar (10,"y")] [(CSymbol ("Prelude","success"),CVar (10,"y"))] []])),CLocalFunc (CFunc ("Prelude","unfoldOrs") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"vals"),CPVar (4,"ors")]) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","partition"))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CVar (2,"xs")))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (3,"vals"))) (CApply (CSymbol ("Prelude","unfoldOrs")) (CVar (4,"ors")))))] []]))]]),
+  CFunc ("Prelude","allValuesD") 1 Public (CFuncType (CTCons ("Prelude","SearchTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","Value") [CPVar (0,"x")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude","Fail") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Suspend") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Choice") [CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("Prelude","allValuesD"))) (CVar (1,"xs")))] []]),
+  CFunc ("Prelude","and") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","&&"))) (CSymbol ("Prelude","True")))] []]),
+  CFunc ("Prelude","any") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","or"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"p"))))] []]),
+  CFunc ("Prelude","appendFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_appendFile"))) (CVar (0,"fn")))) (CVar (1,"s")))] []]),
+  CFunc ("Prelude","apply") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CExternal "apply"),
+  CFunc ("Prelude","break") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"p")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","span")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CVar (0,"p"))))] []]),
+  CFunc ("Prelude","catchFail") 2 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CExternal "catchFail"),
+  CFunc ("Prelude","chr") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Char") [])) (CRules CFlex [CRule [CPVar (0,"i")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_chr"))) (CVar (0,"i")))] []]),
+  CFunc ("Prelude","cmpNat") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","EQ"))] [],CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","O") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","I") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","O") [CPVar (2,"_")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","I") [CPVar (3,"_")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","O") [CPVar (4,"x")],CPComb ("Prelude","O") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (4,"x"))) (CVar (5,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (6,"x")],CPComb ("Prelude","I") [CPVar (7,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (6,"x"))) (CVar (7,"y")))] [],CRule [CPComb ("Prelude","O") [CPVar (8,"x")],CPComb ("Prelude","I") [CPVar (9,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (8,"x"))) (CVar (9,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (10,"x")],CPComb ("Prelude","O") [CPVar (11,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (10,"x"))) (CVar (11,"y")))] []]),
+  CFunc ("Prelude","cmpNatGT") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","O") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","IHi") [],CPComb ("Prelude","I") [CPVar (2,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","O") [CPVar (3,"x")],CPComb ("Prelude","O") [CPVar (4,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (3,"x"))) (CVar (4,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (5,"x")],CPComb ("Prelude","I") [CPVar (6,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (5,"x"))) (CVar (6,"y")))] [],CRule [CPComb ("Prelude","O") [CPVar (7,"x")],CPComb ("Prelude","I") [CPVar (8,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (7,"x"))) (CVar (8,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (9,"x")],CPComb ("Prelude","O") [CPVar (10,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (9,"x"))) (CVar (10,"y")))] []]),
+  CFunc ("Prelude","cmpNatLT") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPComb ("Prelude","IHi") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","O") [CPVar (1,"_")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","I") [CPVar (2,"_")],CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","O") [CPVar (3,"x")],CPComb ("Prelude","O") [CPVar (4,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (3,"x"))) (CVar (4,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (5,"x")],CPComb ("Prelude","I") [CPVar (6,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (5,"x"))) (CVar (6,"y")))] [],CRule [CPComb ("Prelude","O") [CPVar (7,"x")],CPComb ("Prelude","I") [CPVar (8,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatLT")) (CVar (7,"x"))) (CVar (8,"y")))] [],CRule [CPComb ("Prelude","I") [CPVar (9,"x")],CPComb ("Prelude","O") [CPVar (10,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNatGT")) (CVar (9,"x"))) (CVar (10,"y")))] []]),
+  CFunc ("Prelude","compare") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPComb ("Prelude","Zero") [],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","EQ"))] [],CRule [CPComb ("Prelude","Zero") [],CPComb ("Prelude","Pos") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","Zero") [],CPComb ("Prelude","Neg") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (2,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (3,"x")],CPComb ("Prelude","Pos") [CPVar (4,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (3,"x"))) (CVar (4,"y")))] [],CRule [CPComb ("Prelude","Pos") [CPVar (5,"_")],CPComb ("Prelude","Neg") [CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (7,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (8,"_")],CPComb ("Prelude","Pos") [CPVar (9,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (10,"x")],CPComb ("Prelude","Neg") [CPVar (11,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (11,"y"))) (CVar (10,"x")))] []]),
+  CFunc ("Prelude","concat") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (0,"a")]]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","++"))) (CSymbol ("Prelude","[]"))) (CVar (0,"l")))] []]),
+  CFunc ("Prelude","concatMap") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","concat"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Prelude","cond") 2 Public (CFuncType (CTCons ("Prelude","Success") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "cond"),
+  CFunc ("Prelude","const") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"_")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"_")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","curry") 3 Public (CFuncType (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (2,"c"))) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"a"),CPVar (2,"b")] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"a"))) (CVar (2,"b"))))] []]),
+  CFunc ("Prelude","dec") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CSymbol ("Prelude","IHi")))] [],CRule [CPComb ("Prelude","Neg") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CSymbol ("Prelude","succ")) (CVar (0,"n"))))] [],CRule [CPComb ("Prelude","Pos") [CPComb ("Prelude","IHi") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Pos") [CPComb ("Prelude","O") [CPVar (1,"n")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","pred")) (CApply (CSymbol ("Prelude","O")) (CVar (1,"n")))))] [],CRule [CPComb ("Prelude","Pos") [CPComb ("Prelude","I") [CPVar (2,"n")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (2,"n"))))] []]),
+  CFunc ("Prelude","div") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","fst")) (CApply (CApply (CSymbol ("Prelude","divmod")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","div2") 1 Public (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") [])) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPVar (0,"x")]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] [],CRule [CPComb ("Prelude","I") [CPVar (1,"x")]] [(CSymbol ("Prelude","success"),CVar (1,"x"))] []]),
+  CFunc ("Prelude","divmod") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPComb ("Prelude","Zero") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","Zero"))) (CSymbol ("Prelude","Zero")))] [],CRule [CPComb ("Prelude","Pos") [CPVar (1,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '0'))) (CSymbol ("Prelude","[]"))))))))))))))))] [],CRule [CPComb ("Prelude","Pos") [CPVar (2,"x")],CPComb ("Prelude","Pos") [CPVar (3,"y")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","divmodNat")) (CVar (2,"x"))) (CVar (3,"y")))] [],CRule [CPComb ("Prelude","Pos") [CPVar (4,"x")],CPComb ("Prelude","Neg") [CPVar (5,"y")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (6,"d"),CPVar (7,"m")]) (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CVar (4,"x"))) (CVar (5,"y"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","negate")) (CVar (6,"d")))) (CVar (7,"m"))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (8,"_")],CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '0'))) (CSymbol ("Prelude","[]"))))))))))))))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (9,"x")],CPComb ("Prelude","Pos") [CPVar (10,"y")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (11,"d"),CPVar (12,"m")]) (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CVar (9,"x"))) (CVar (10,"y"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","negate")) (CVar (11,"d")))) (CApply (CSymbol ("Prelude","negate")) (CVar (12,"m")))))] [],CRule [CPComb ("Prelude","Neg") [CPVar (13,"x")],CPComb ("Prelude","Neg") [CPVar (14,"y")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (15,"d"),CPVar (16,"m")]) (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CVar (13,"x"))) (CVar (14,"y"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (15,"d"))) (CApply (CSymbol ("Prelude","negate")) (CVar (16,"m")))))] []]),
+  CFunc ("Prelude","divmodNat") 2 Public (CFuncType (CTCons ("Prelude","Nat") []) (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"y"))) (CSymbol ("Prelude","IHi")),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CVar (0,"x")))) (CSymbol ("Prelude","Zero"))),(CSymbol ("Prelude","otherwise"),CCase (CApply (CApply (CSymbol ("Prelude","cmpNat")) (CVar (0,"x"))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","EQ") []) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))) (CSymbol ("Prelude","Zero"))),CBranch (CPComb ("Prelude","LT") []) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","Zero"))) (CApply (CSymbol ("Prelude","Pos")) (CVar (0,"x")))),CBranch (CPComb ("Prelude","GT") []) (CCase (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CApply (CSymbol ("Prelude","div2")) (CVar (0,"x")))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Zero") [],CPVar (2,"_")]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))) (CApply (CApply (CSymbol ("Prelude","-^")) (CVar (0,"x"))) (CVar (1,"y")))),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Pos") [CPVar (3,"d")],CPComb ("Prelude","Zero") []]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (3,"d"))))) (CApply (CSymbol ("Prelude","mod2")) (CVar (0,"x")))),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Pos") [CPVar (4,"d")],CPComb ("Prelude","Pos") [CPVar (5,"m")]]) (CCase (CApply (CApply (CSymbol ("Prelude","divmodNat")) (CApply (CApply (CSymbol ("Prelude","shift")) (CVar (0,"x"))) (CVar (5,"m")))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Zero") [],CPVar (6,"m'")]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (4,"d"))))) (CVar (6,"m'"))),CBranch (CPComb ("Prelude","(,)") [CPComb ("Prelude","Pos") [CPVar (7,"d'")],CPVar (8,"m'")]) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CSymbol ("Prelude","Pos")) (CApply (CApply (CSymbol ("Prelude","+^")) (CApply (CSymbol ("Prelude","O")) (CVar (4,"d")))) (CVar (7,"d'"))))) (CVar (8,"m'")))])])])] [CLocalFunc (CFunc ("Prelude","shift") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPVar (2,"_")],CPVar (3,"n")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CVar (3,"n")))] [],CRule [CPComb ("Prelude","I") [CPVar (4,"_")],CPVar (5,"n")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CVar (5,"n")))] []]))]]),
+  CFunc ("Prelude","doSolve") 1 Public (CFuncType (CTCons ("Prelude","Success") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"constraint")] [(CVar (0,"constraint"),CSymbol ("Prelude","done"))] []]),
+  CFunc ("Prelude","done") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()")))] []]),
+  CFunc ("Prelude","drop") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CVar (1,"l"))) (CApply (CApply (CSymbol ("Prelude","dropp")) (CVar (0,"n"))) (CVar (1,"l"))))] [CLocalFunc (CFunc ("Prelude","dropp") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (3,"m"),CPComb ("Prelude",":") [CPVar (4,"_"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","drop")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"m"))) (CLit (CIntc 1)))) (CVar (5,"xs")))] []]))]]),
+  CFunc ("Prelude","dropWhile") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (1,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CVar (1,"p"))) (CVar (3,"xs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))] []]),
+  CFunc ("Prelude","either") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"c"))) (CFuncType (CFuncType (CTVar (2,"b")) (CTVar (1,"c"))) (CFuncType (CTCons ("Prelude","Either") [CTVar (0,"a"),CTVar (2,"b")]) (CTVar (1,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"_"),CPComb ("Prelude","Left") [CPVar (2,"x")]] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CVar (2,"x")))] [],CRule [CPVar (3,"_"),CPVar (4,"g"),CPComb ("Prelude","Right") [CPVar (5,"x")]] [(CSymbol ("Prelude","success"),CApply (CVar (4,"g")) (CVar (5,"x")))] []]),
+  CFunc ("Prelude","elem") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","any")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]),
+  CFunc ("Prelude","ensureSpine") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Prelude","ensureList"))) (CVar (0,"x0"))))] [CLocalFunc (CFunc ("Prelude","ensureList") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CApply (CSymbol ("Prelude","ensureSpine")) (CVar (1,"xs"))))] []]))]]),
+  CFunc ("Prelude","enumFrom") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"n"))) (CApply (CSymbol ("Prelude","enumFrom")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"n"))) (CLit (CIntc 1)))))] []]),
+  CFunc ("Prelude","enumFromThen") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"n1"),CPVar (1,"n2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","iterate")) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"n2"))) (CVar (0,"n1")))) (CVar (2,"x0"))))) (CVar (0,"n1")))] []]),
+  CFunc ("Prelude","enumFromThenTo") 3 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])))) (CRules CFlex [CRule [CPVar (0,"n1"),CPVar (1,"n2"),CPVar (2,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","takeWhile")) (CSymbol ("Prelude","p"))) (CApply (CApply (CSymbol ("Prelude","enumFromThen")) (CVar (0,"n1"))) (CVar (1,"n2"))))] [CLocalFunc (CFunc ("Prelude","p") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (3,"x")] [(CApply (CApply (CSymbol ("Prelude",">=")) (CVar (1,"n2"))) (CVar (0,"n1")),CApply (CApply (CSymbol ("Prelude","<=")) (CVar (3,"x"))) (CVar (2,"m"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",">=")) (CVar (3,"x"))) (CVar (2,"m")))] []]))]]),
+  CFunc ("Prelude","enumFromTo") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"m")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (0,"n"))) (CVar (1,"m")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"n"))) (CApply (CApply (CSymbol ("Prelude","enumFromTo")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (0,"n"))) (CLit (CIntc 1)))) (CVar (1,"m")))))] []]),
+  CFunc ("Prelude","error") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTVar (0,"_"))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_error"))) (CVar (0,"s")))] []]),
+  CFunc ("Prelude","failed") 0 Public (CTVar (0,"_")) (CExternal "failed"),
+  CFunc ("Prelude","filter") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (1,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CVar (1,"p"))) (CVar (3,"xs"))))) (CApply (CApply (CSymbol ("Prelude","filter")) (CVar (1,"p"))) (CVar (3,"xs"))))] []]),
+  CFunc ("Prelude","flip") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (0,"a")) (CTVar (2,"c"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"f")) (CVar (2,"y"))) (CVar (1,"x")))] []]),
+  CFunc ("Prelude","foldl") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (0,"a")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"z"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CVar (1,"z"))] [],CRule [CPVar (2,"f"),CPVar (3,"z"),CPComb ("Prelude",":") [CPVar (4,"x"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CVar (2,"f"))) (CApply (CApply (CVar (2,"f")) (CVar (3,"z"))) (CVar (4,"x")))) (CVar (5,"xs")))] []]),
+  CFunc ("Prelude","foldl1") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"xs")))] []]),
+  CFunc ("Prelude","foldr") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"z"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CVar (1,"z"))] [],CRule [CPVar (2,"f"),CPVar (3,"z"),CPComb ("Prelude",":") [CPVar (4,"x"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (2,"f")) (CVar (4,"x"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CVar (2,"f"))) (CVar (3,"z"))) (CVar (5,"xs"))))] []]),
+  CFunc ("Prelude","foldr1") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude",":") [CPVar (1,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (1,"x"))] [],CRule [CPVar (2,"f"),CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (2,"f")) (CVar (3,"x1"))) (CApply (CApply (CSymbol ("Prelude","foldr1")) (CVar (2,"f"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x2"))) (CVar (5,"xs")))))] []]),
+  CFunc ("Prelude","fst") 1 Public (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"_")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"x"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","getChar") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Char") []]) (CExternal "getChar"),
+  CFunc ("Prelude","getLine") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (0,"c")) (CSymbol ("Prelude","getChar")),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CLit (CCharc '\n')))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))) (CDoExpr [CSPat (CPVar (1,"cs")) (CSymbol ("Prelude","getLine")),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"c"))) (CVar (1,"cs"))))]))])] []]),
+  CFunc ("Prelude","getSearchTree") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","SearchTree") [CTVar (0,"a")]])) (CExternal "getSearchTree"),
+  CFunc ("Prelude","head") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","id") 1 Public (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []]),
+  CFunc ("Prelude","if_then_else") 3 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"b"),CPVar (1,"t"),CPVar (2,"f")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"b")) [CBranch (CPComb ("Prelude","True") []) (CVar (1,"t")),CBranch (CPComb ("Prelude","False") []) (CVar (2,"f"))])] []]),
+  CFunc ("Prelude","inc") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))] [],CRule [CPComb ("Prelude","Pos") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","succ")) (CVar (0,"n"))))] [],CRule [CPComb ("Prelude","Neg") [CPComb ("Prelude","IHi") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Neg") [CPComb ("Prelude","O") [CPVar (1,"n")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CSymbol ("Prelude","pred")) (CApply (CSymbol ("Prelude","O")) (CVar (1,"n")))))] [],CRule [CPComb ("Prelude","Neg") [CPComb ("Prelude","I") [CPVar (2,"n")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CSymbol ("Prelude","O")) (CVar (2,"n"))))] []]),
+  CFunc ("Prelude","inject") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") [])) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") [])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Success") [])))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"p")] [(CSymbol ("Prelude","success"),CLambda [CPVar (2,"x")] (CApply (CApply (CSymbol ("Prelude","&")) (CApply (CVar (1,"p")) (CVar (2,"x")))) (CApply (CVar (0,"g")) (CVar (2,"x")))))] []]),
+  CFunc ("Prelude","isEQ") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","LT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","GT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","EQ") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] []]),
+  CFunc ("Prelude","isGT") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","LT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","GT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","EQ") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Prelude","isLT") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","LT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","GT") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","EQ") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Prelude","iterate") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CSymbol ("Prelude","iterate")) (CVar (0,"f"))) (CApply (CVar (0,"f")) (CVar (1,"x")))))] []]),
+  CFunc ("Prelude","length") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"_")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"_"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","+")) (CLit (CIntc 1))) (CApply (CSymbol ("Prelude","length")) (CVar (1,"xs"))))] []]),
+  CFunc ("Prelude","lines") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"x"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"l"),CPVar (3,"xs_l")]) (CApply (CSymbol ("Prelude","splitline")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (1,"xs")))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"l"))) (CApply (CSymbol ("Prelude","lines")) (CVar (3,"xs_l")))))] [CLocalFunc (CFunc ("Prelude","splitline") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"c"))) (CLit (CCharc '\n')))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CVar (3,"cs")))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ds"),CPVar (5,"es")]) (CApply (CSymbol ("Prelude","splitline")) (CVar (3,"cs"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"c"))) (CVar (4,"ds")))) (CVar (5,"es")))))] []]))]]),
+  CFunc ("Prelude","lookup") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","Maybe") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPVar (1,"k"),CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"x"),CPVar (3,"y")],CPVar (4,"xys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"k"))) (CVar (2,"x")),CApply (CSymbol ("Prelude","Just")) (CVar (3,"y"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","lookup")) (CVar (1,"k"))) (CVar (4,"xys")))] []]),
+  CFunc ("Prelude","map") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"f"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CVar (1,"f")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude","map")) (CVar (1,"f"))) (CVar (3,"xs"))))] []]),
+  CFunc ("Prelude","mapIO") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","sequenceIO"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Prelude","mapIO_") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"_")])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","sequenceIO_"))) (CApply (CSymbol ("Prelude","map")) (CVar (0,"f"))))] []]),
+  CFunc ("Prelude","max") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","LT") []) (CVar (1,"y")),CBranch (CPVar (2,"_")) (CVar (0,"x"))])] []]),
+  CFunc ("Prelude","maybe") 3 Public (CFuncType (CTVar (0,"b")) (CFuncType (CFuncType (CTVar (1,"a")) (CTVar (0,"b"))) (CFuncType (CTCons ("Prelude","Maybe") [CTVar (1,"a")]) (CTVar (0,"b"))))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"_"),CPComb ("Prelude","Nothing") []] [(CSymbol ("Prelude","success"),CVar (0,"n"))] [],CRule [CPVar (2,"_"),CPVar (3,"f"),CPComb ("Prelude","Just") [CPVar (4,"x")]] [(CSymbol ("Prelude","success"),CApply (CVar (3,"f")) (CVar (4,"x")))] []]),
+  CFunc ("Prelude","min") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("Prelude","compare")) (CVar (0,"x"))) (CVar (1,"y"))) [CBranch (CPComb ("Prelude","GT") []) (CVar (1,"y")),CBranch (CPVar (2,"_")) (CVar (0,"x"))])] []]),
+  CFunc ("Prelude","mod") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","snd")) (CApply (CApply (CSymbol ("Prelude","divmod")) (CVar (0,"x"))) (CVar (1,"y"))))] []]),
+  CFunc ("Prelude","mod2") 1 Public (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))] [],CRule [CPComb ("Prelude","O") [CPVar (0,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","I") [CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CSymbol ("Prelude","IHi")))] []]),
+  CFunc ("Prelude","mult2") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","Pos") [CPVar (0,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CApply (CSymbol ("Prelude","O")) (CVar (0,"n"))))] [],CRule [CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Neg") [CPVar (1,"n")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CApply (CSymbol ("Prelude","O")) (CVar (1,"n"))))] []]),
+  CFunc ("Prelude","negate") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","Zero") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Zero"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (0,"x")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Neg")) (CVar (0,"x")))] [],CRule [CPComb ("Prelude","Neg") [CPVar (1,"x")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","Pos")) (CVar (1,"x")))] []]),
+  CFunc ("Prelude","not") 1 Public (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","True") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude","False") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] []]),
+  CFunc ("Prelude","notElem") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","all")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (0,"x"))) (CVar (1,"x0")))))] []]),
+  CFunc ("Prelude","null") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"_"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("Prelude","or") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude","||"))) (CSymbol ("Prelude","False")))] []]),
+  CFunc ("Prelude","ord") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_ord"))) (CVar (0,"c")))] []]),
+  CFunc ("Prelude","otherwise") 0 Public (CTCons ("Prelude","Bool") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] []]),
+  CFunc ("Prelude","pred") 1 Public (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") [])) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPComb ("Prelude","IHi") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","IHi"))] [],CRule [CPComb ("Prelude","O") [CPAs (1,"x") (CPComb ("Prelude","O") [CPVar (0,"_")])]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CApply (CSymbol ("Prelude","pred")) (CVar (1,"x"))))] [],CRule [CPComb ("Prelude","O") [CPComb ("Prelude","I") [CPVar (2,"x")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CApply (CSymbol ("Prelude","O")) (CVar (2,"x"))))] [],CRule [CPComb ("Prelude","I") [CPVar (3,"x")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CVar (3,"x")))] []]),
+  CFunc ("Prelude","prim_appendFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_appendFile"),
+  CFunc ("Prelude","prim_chr") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Char") [])) (CExternal "prim_chr"),
+  CFunc ("Prelude","prim_error") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTVar (0,"_"))) (CExternal "prim_error"),
+  CFunc ("Prelude","prim_ord") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Int") [])) (CExternal "prim_ord"),
+  CFunc ("Prelude","prim_putChar") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_putChar"),
+  CFunc ("Prelude","prim_readFile") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])) (CExternal "prim_readFile"),
+  CFunc ("Prelude","prim_show") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CExternal "prim_show"),
+  CFunc ("Prelude","prim_writeFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_writeFile"),
+  CFunc ("Prelude","print") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"t")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","putStrLn")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"t"))))] []]),
+  CFunc ("Prelude","putChar") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_putChar"))) (CVar (0,"c")))] []]),
+  CFunc ("Prelude","putStr") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","done"))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putChar")) (CVar (0,"c")))) (CApply (CSymbol ("Prelude","putStr")) (CVar (1,"cs"))))] []]),
+  CFunc ("Prelude","putStrLn") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"cs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putStr")) (CVar (0,"cs")))) (CApply (CSymbol ("Prelude","putChar")) (CLit (CCharc '\n'))))] []]),
+  CFunc ("Prelude","readFile") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_readFile"))) (CVar (0,"s")))] []]),
+  CFunc ("Prelude","repeat") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CApply (CSymbol ("Prelude","repeat")) (CVar (0,"x"))))] []]),
+  CFunc ("Prelude","replicate") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","take")) (CVar (0,"n"))) (CApply (CSymbol ("Prelude","repeat")) (CVar (1,"x"))))] []]),
+  CFunc ("Prelude","return") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "return"),
+  CFunc ("Prelude","reverse") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldl")) (CApply (CSymbol ("Prelude","flip")) (CSymbol ("Prelude",":")))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Prelude","seq") 2 Public (CFuncType (CTVar (0,"_")) (CFuncType (CTVar (1,"a")) (CTVar (1,"a")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!")) (CApply (CSymbol ("Prelude","const")) (CVar (1,"y")))) (CVar (0,"x")))] []]),
+  CFunc ("Prelude","sequenceIO") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","IO") [CTVar (0,"a")]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (0,"c"),CPVar (1,"cs")]] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"x")) (CVar (0,"c")),CSPat (CPVar (3,"xs")) (CApply (CSymbol ("Prelude","sequenceIO")) (CVar (1,"cs"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))])] []]),
+  CFunc ("Prelude","sequenceIO_") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","IO") [CTVar (0,"_")]]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("Prelude",">>"))) (CSymbol ("Prelude","done")))] []]),
+  CFunc ("Prelude","show") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_show"))) (CVar (0,"s")))] []]),
+  CFunc ("Prelude","snd") 1 Public (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"_"),CTVar (1,"b")]) (CTVar (1,"b"))) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (0,"_"),CPVar (1,"y")]] [(CSymbol ("Prelude","success"),CVar (1,"y"))] []]),
+  CFunc ("Prelude","span") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CApply (CVar (1,"p")) (CVar (2,"x")),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"ys"),CPVar (5,"zs")]) (CApply (CApply (CSymbol ("Prelude","span")) (CVar (1,"p"))) (CVar (3,"xs"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (4,"ys")))) (CVar (5,"zs")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CVar (3,"xs"))))] []]),
+  CFunc ("Prelude","splitAt") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (0,"a")]]))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CVar (1,"l")))) (CApply (CApply (CSymbol ("Prelude","splitAtp")) (CVar (0,"n"))) (CVar (1,"l"))))] [CLocalFunc (CFunc ("Prelude","splitAtp") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (3,"m"),CPComb ("Prelude",":") [CPVar (4,"x"),CPVar (5,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (6,"ys"),CPVar (7,"zs")]) (CApply (CApply (CSymbol ("Prelude","splitAt")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"m"))) (CLit (CIntc 1)))) (CVar (5,"xs"))) []] (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x"))) (CVar (6,"ys")))) (CVar (7,"zs"))))] []]))]]),
+  CFunc ("Prelude","succ") 1 Public (CFuncType (CTCons ("Prelude","Nat") []) (CTCons ("Prelude","Nat") [])) (CRules CFlex [CRule [CPComb ("Prelude","O") [CPVar (0,"bs")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","I")) (CVar (0,"bs")))] [],CRule [CPComb ("Prelude","I") [CPVar (1,"bs")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CApply (CSymbol ("Prelude","succ")) (CVar (1,"bs"))))] [],CRule [CPComb ("Prelude","IHi") []] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","O")) (CSymbol ("Prelude","IHi")))] []]),
+  CFunc ("Prelude","success") 0 Public (CTCons ("Prelude","Success") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Success"))] []]),
+  CFunc ("Prelude","tail") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (0,"_"),CPVar (1,"xs")]] [(CSymbol ("Prelude","success"),CVar (1,"xs"))] []]),
+  CFunc ("Prelude","take") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","Neg") [CPVar (0,"_")],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Zero") [],CPVar (2,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (3,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude","Pos") [CPVar (4,"n")],CPComb ("Prelude",":") [CPVar (5,"x"),CPVar (6,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x"))) (CApply (CApply (CSymbol ("Prelude","take")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","Pos")) (CVar (4,"n")))) (CLit (CIntc 1)))) (CVar (6,"xs"))))] []]),
+  CFunc ("Prelude","takeWhile") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (1,"p")) (CVar (2,"x")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","takeWhile")) (CVar (1,"p"))) (CVar (3,"xs"))))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Prelude","uncurry") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (2,"c")))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("Prelude","(,)") [CPVar (1,"a"),CPVar (2,"b")]] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"f")) (CVar (1,"a"))) (CVar (2,"b")))] []]),
+  CFunc ("Prelude","unknown") 0 Public (CTVar (0,"a")) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLetDecl [CLocalVar (0,"x")] (CVar (0,"x")))] []]),
+  CFunc ("Prelude","unlines") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"ls")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","concatMap")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"x0"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))) (CVar (0,"ls")))] []]),
+  CFunc ("Prelude","until") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"p"),CPVar (1,"f"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CVar (0,"p")) (CVar (2,"x")))) (CVar (2,"x"))) (CApply (CApply (CApply (CSymbol ("Prelude","until")) (CVar (0,"p"))) (CVar (1,"f"))) (CApply (CVar (1,"f")) (CVar (2,"x")))))] []]),
+  CFunc ("Prelude","unwords") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"ws")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"ws"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]"))) (CApply (CApply (CSymbol ("Prelude","foldr1")) (CLambda [CPVar (1,"w"),CPVar (2,"s")] (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"w"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CVar (2,"s")))))) (CVar (0,"ws"))))] []]),
+  CFunc ("Prelude","unzip") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (0,"x"),CPVar (1,"y")],CPVar (2,"ps")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (3,"xs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"y"))) (CVar (4,"ys"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"xs"),CPVar (4,"ys")]) (CApply (CSymbol ("Prelude","unzip")) (CVar (2,"ps"))) []]]),
+  CFunc ("Prelude","unzip3") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTVar (0,"a"),CTVar (1,"b"),CTVar (2,"c")]]) (CTCons ("Prelude","(,,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CTCons ("Prelude","[]") [CTVar (1,"b")],CTCons ("Prelude","[]") [CTVar (2,"c")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPComb ("Prelude","(,,)") [CPVar (0,"x"),CPVar (1,"y"),CPVar (2,"z")],CPVar (3,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"x"))) (CVar (4,"xs")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"y"))) (CVar (5,"ys")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"z"))) (CVar (6,"zs"))))] [CLocalPat (CPComb ("Prelude","(,,)") [CPVar (4,"xs"),CPVar (5,"ys"),CPVar (6,"zs")]) (CApply (CSymbol ("Prelude","unzip3")) (CVar (3,"ts"))) []]]),
+  CFunc ("Prelude","words") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (1,"s1")) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CSymbol ("Prelude","isSpace"))) (CVar (0,"s"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"s1"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]"))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (2,"w"),CPVar (3,"s2")]) (CApply (CApply (CSymbol ("Prelude","break")) (CSymbol ("Prelude","isSpace"))) (CVar (1,"s1"))) []] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"w"))) (CApply (CSymbol ("Prelude","words")) (CVar (3,"s2")))))))] [CLocalFunc (CFunc ("Prelude","isSpace") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (1,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc ' ')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '\t')))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '\n')))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '\r'))))))] []]))]]),
+  CFunc ("Prelude","writeFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"fn"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Prelude","prim_writeFile"))) (CVar (0,"fn")))) (CVar (1,"s")))] []]),
+  CFunc ("Prelude","zip") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude",":") [CPVar (5,"y"),CPVar (6,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"x"))) (CVar (5,"y")))) (CApply (CApply (CSymbol ("Prelude","zip")) (CVar (4,"xs"))) (CVar (6,"ys"))))] []]),
+  CFunc ("Prelude","zip3") 3 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (2,"c")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTVar (0,"a"),CTVar (1,"b"),CTVar (2,"c")]])))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_"),CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")],CPComb ("Prelude","[]") [],CPVar (4,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"_")],CPComb ("Prelude",":") [CPVar (7,"_"),CPVar (8,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (9,"x"),CPVar (10,"xs")],CPComb ("Prelude",":") [CPVar (11,"y"),CPVar (12,"ys")],CPComb ("Prelude",":") [CPVar (13,"z"),CPVar (14,"zs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (9,"x"))) (CVar (11,"y"))) (CVar (13,"z")))) (CApply (CApply (CApply (CSymbol ("Prelude","zip3")) (CVar (10,"xs"))) (CVar (12,"ys"))) (CVar (14,"zs"))))] []]),
+  CFunc ("Prelude","zipWith") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (2,"c")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"_"),CPVar (4,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (5,"f"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPComb ("Prelude",":") [CPVar (8,"y"),CPVar (9,"ys")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CVar (5,"f")) (CVar (6,"x"))) (CVar (8,"y")))) (CApply (CApply (CApply (CSymbol ("Prelude","zipWith")) (CVar (5,"f"))) (CVar (7,"xs"))) (CVar (9,"ys"))))] []]),
+  CFunc ("Prelude","zipWith3") 4 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTVar (3,"d"))))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (2,"c")]) (CTCons ("Prelude","[]") [CTVar (3,"d")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_"),CPVar (2,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (3,"_"),CPComb ("Prelude",":") [CPVar (4,"_"),CPVar (5,"_")],CPComb ("Prelude","[]") [],CPVar (6,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (7,"_"),CPComb ("Prelude",":") [CPVar (8,"_"),CPVar (9,"_")],CPComb ("Prelude",":") [CPVar (10,"_"),CPVar (11,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (12,"f"),CPComb ("Prelude",":") [CPVar (13,"x"),CPVar (14,"xs")],CPComb ("Prelude",":") [CPVar (15,"y"),CPVar (16,"ys")],CPComb ("Prelude",":") [CPVar (17,"z"),CPVar (18,"zs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CVar (12,"f")) (CVar (13,"x"))) (CVar (15,"y"))) (CVar (17,"z")))) (CApply (CApply (CApply (CApply (CSymbol ("Prelude","zipWith3")) (CVar (12,"f"))) (CVar (14,"xs"))) (CVar (16,"ys"))) (CVar (18,"zs"))))] []]),
+  CFunc ("Prelude","||") 2 Public (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CTCons ("Prelude","Bool") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","True") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude","False") [],CPVar (1,"x")] [(CSymbol ("Prelude","success"),CVar (1,"x"))] []])]
+ [COp ("Prelude","!!") CInfixlOp 9,COp ("Prelude",".") CInfixrOp 9,COp ("Prelude","mod") CInfixlOp 7,COp ("Prelude","div") CInfixlOp 7,COp ("Prelude","*^") CInfixlOp 7,COp ("Prelude","*") CInfixlOp 7,COp ("Prelude","-^") CInfixlOp 6,COp ("Prelude","-") CInfixlOp 6,COp ("Prelude","+^") CInfixlOp 6,COp ("Prelude","+") CInfixlOp 6,COp ("Prelude","++") CInfixrOp 5,COp ("Prelude",">=^") CInfixOp 4,COp ("Prelude",">^") CInfixOp 4,COp ("Prelude","<=^") CInfixOp 4,COp ("Prelude","<^") CInfixOp 4,COp ("Prelude","=:<=") CInfixOp 4,COp ("Prelude",">=") CInfixOp 4,COp ("Prelude","<=") CInfixOp 4,COp ("Prelude",">") CInfixOp 4,COp ("Prelude","<") CInfixOp 4,COp ("Prelude","/=") CInfixOp 4,COp ("Prelude","===") CInfixOp 4,COp ("Prelude","==") CInfixOp 4,COp ("Prelude","=:=") CInfixOp 4,COp ("Prelude","notElem") CInfixOp 4,COp ("Prelude","elem") CInfixOp 4,COp ("Prelude","&&") CInfixrOp 3,COp ("Prelude","||") CInfixrOp 2,COp ("Prelude",">>=") CInfixlOp 1,COp ("Prelude",">>") CInfixlOp 1,COp ("Prelude","?") CInfixrOp 0,COp ("Prelude","&>") CInfixrOp 0,COp ("Prelude","&") CInfixrOp 0,COp ("Prelude","seq") CInfixrOp 0,COp ("Prelude","$##") CInfixrOp 0,COp ("Prelude","$#") CInfixrOp 0,COp ("Prelude","$!!") CInfixrOp 0,COp ("Prelude","$!") CInfixrOp 0,COp ("Prelude","$") CInfixrOp 0]
diff --git a/src/lib/Curry/Module/.curry/Pretty.acy b/src/lib/Curry/Module/.curry/Pretty.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Pretty.acy
@@ -0,0 +1,89 @@
+CurryProg "Pretty"
+ ["Prelude","Dequeue"]
+ [CType ("Pretty","Doc") Public [] [CCons ("Pretty","Doc") 1 Public [CFuncType (CTCons ("Pretty","Tokens") []) (CTCons ("Pretty","Tokens") [])]],
+  CTypeSyn ("Pretty","Layout") Private [] (CTCons ("Prelude","String") []),
+  CTypeSyn ("Pretty","Horizontal") Private [] (CTCons ("Prelude","Bool") []),
+  CTypeSyn ("Pretty","Remaining") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","Width") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","Position") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","StartPosition") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","EndPosition") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","Out") Private [] (CFuncType (CTCons ("Pretty","Remaining") []) (CFuncType (CTCons ("Pretty","Margins") []) (CTCons ("Prelude","String") []))),
+  CTypeSyn ("Pretty","OutGroupPrefix") Private [] (CFuncType (CTCons ("Pretty","Horizontal") []) (CFuncType (CTCons ("Pretty","Out") []) (CTCons ("Pretty","Out") []))),
+  CTypeSyn ("Pretty","Margins") Private [] (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]),
+  CType ("Pretty","Tokens") Private [] [CCons ("Pretty","Text") 2 Private [CTCons ("Prelude","String") [],CTCons ("Pretty","Tokens") []],CCons ("Pretty","Line") 2 Private [CTCons ("Prelude","String") [],CTCons ("Pretty","Tokens") []],CCons ("Pretty","Open") 1 Private [CTCons ("Pretty","Tokens") []],CCons ("Pretty","Close") 1 Private [CTCons ("Pretty","Tokens") []],CCons ("Pretty","Empty") 0 Private [],CCons ("Pretty","OpenNest") 2 Private [CFuncType (CTCons ("Pretty","Margins") []) (CFuncType (CTCons ("Pretty","Remaining") []) (CFuncType (CTCons ("Pretty","Width") []) (CTCons ("Pretty","Margins") []))),CTCons ("Pretty","Tokens") []],CCons ("Pretty","CloseNest") 1 Private [CTCons ("Pretty","Tokens") []]]]
+ [CFunc ("Pretty","<$$>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","linebreak")))] []]),
+  CFunc ("Pretty","<$>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","line")))] []]),
+  CFunc ("Pretty","<+>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","space")))] []]),
+  CFunc ("Pretty","<//>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","softbreak")))] []]),
+  CFunc ("Pretty","</>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","softline")))] []]),
+  CFunc ("Pretty","<>") 2 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"d1"),CPVar (1,"d2")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","deDoc")) (CVar (0,"d1")))) (CApply (CSymbol ("Pretty","deDoc")) (CVar (1,"d2")))))] []]),
+  CFunc ("Pretty","align") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","hang")) (CLit (CIntc 0)))] []]),
+  CFunc ("Pretty","angles") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","langle"))) (CSymbol ("Pretty","rangle")))] []]),
+  CFunc ("Pretty","backslash") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '\\')))] []]),
+  CFunc ("Pretty","bquote") 0 Private (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '`')))] []]),
+  CFunc ("Pretty","bquotes") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","bquote"))) (CSymbol ("Pretty","bquote")))] []]),
+  CFunc ("Pretty","braces") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","lbrace"))) (CSymbol ("Pretty","rbrace")))] []]),
+  CFunc ("Pretty","brackets") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","lbracket"))) (CSymbol ("Pretty","rbracket")))] []]),
+  CFunc ("Pretty","cat") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","group"))) (CSymbol ("Pretty","vcat")))] []]),
+  CFunc ("Pretty","char") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","text")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"c"))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("Pretty","colon") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ':')))] []]),
+  CFunc ("Pretty","combine") 3 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"d1"),CPVar (2,"d2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Pretty","enclose")) (CVar (1,"d1"))) (CVar (2,"d2"))) (CVar (0,"s")))] []]),
+  CFunc ("Pretty","comma") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ',')))] []]),
+  CFunc ("Pretty","compose") 2 Public (CFuncType (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Pretty","empty"))] [],CRule [CPVar (1,"op"),CPAs (4,"ds") (CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr1")) (CVar (1,"op"))) (CVar (4,"ds")))] []]),
+  CFunc ("Pretty","deDoc") 1 Private (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Tokens") []) (CTCons ("Pretty","Tokens") []))) (CRules CFlex [CRule [CPComb ("Pretty","Doc") [CPVar (0,"d")]] [(CSymbol ("Prelude","success"),CVar (0,"d"))] []]),
+  CFunc ("Pretty","doc2Tokens") 1 Private (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Tokens") [])) (CRules CFlex [CRule [CPComb ("Pretty","Doc") [CPVar (0,"d")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","normalise")) (CApply (CVar (0,"d")) (CSymbol ("Pretty","Empty"))))] []]),
+  CFunc ("Pretty","dot") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '.')))] []]),
+  CFunc ("Pretty","dquote") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '"')))] []]),
+  CFunc ("Pretty","dquotes") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","dquote"))) (CSymbol ("Pretty","dquote")))] []]),
+  CFunc ("Pretty","empty") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","text")) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Pretty","enclose") 3 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])))) (CRules CFlex [CRule [CPVar (0,"l"),CPVar (1,"r"),CPVar (2,"d")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","<>")) (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (0,"l"))) (CVar (2,"d")))) (CVar (1,"r")))] []]),
+  CFunc ("Pretty","encloseSep") 4 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") []))))) (CRules CFlex [CRule [CPVar (0,"l"),CPVar (1,"r"),CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","<>")) (CVar (0,"l"))) (CVar (1,"r")))] [],CRule [CPVar (3,"l"),CPVar (4,"r"),CPVar (5,"s"),CPComb ("Prelude",":") [CPVar (6,"d"),CPVar (7,"ds")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","align")) (CApply (CApply (CApply (CSymbol ("Pretty","enclose")) (CVar (3,"l"))) (CVar (4,"r"))) (CApply (CSymbol ("Pretty","cat")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"d"))) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (8,"x0")] (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (5,"s"))) (CVar (8,"x0"))))) (CVar (7,"ds")))))))] []]),
+  CFunc ("Pretty","equals") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '=')))] []]),
+  CFunc ("Pretty","fillCat") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<//>")))] []]),
+  CFunc ("Pretty","fillEncloseSep") 4 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") []))))) (CRules CFlex [CRule [CPVar (0,"l"),CPVar (1,"r"),CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","<>")) (CVar (0,"l"))) (CVar (1,"r")))] [],CRule [CPVar (3,"l"),CPVar (4,"r"),CPVar (5,"s"),CPComb ("Prelude",":") [CPVar (6,"d"),CPVar (7,"ds")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","align")) (CApply (CApply (CApply (CSymbol ("Pretty","enclose")) (CVar (3,"l"))) (CVar (4,"r"))) (CApply (CSymbol ("Pretty","hcat")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"d"))) (CApply (CSymbol ("Pretty","withSoftBreaks")) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (8,"x0")] (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (5,"s"))) (CVar (8,"x0"))))) (CVar (7,"ds"))))))))] [CLocalFunc (CFunc ("Pretty","withSoftBreaks") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (8,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("Pretty","group")) (CApply (CApply (CSymbol ("Pretty","<>")) (CSymbol ("Pretty","linebreak"))) (CVar (8,"x"))))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (9,"x"),CPAs (12,"xs") (CPComb ("Prelude",":") [CPVar (10,"_"),CPVar (11,"_")])]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("Pretty","group")) (CApply (CApply (CSymbol ("Pretty","<>")) (CSymbol ("Pretty","linebreak"))) (CApply (CSymbol ("Pretty","group")) (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (9,"x"))) (CSymbol ("Pretty","linebreak"))))))) (CApply (CSymbol ("Pretty","withSoftBreaks")) (CVar (12,"xs"))))] []]))]]),
+  CFunc ("Pretty","fillSep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","</>")))] []]),
+  CFunc ("Pretty","float") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","text")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"x"))))] []]),
+  CFunc ("Pretty","group") 1 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"d")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","Open"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","deDoc")) (CVar (0,"d")))) (CSymbol ("Pretty","Close")))))] []]),
+  CFunc ("Pretty","hEncloseSep") 4 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") []))))) (CRules CFlex [CRule [CPVar (0,"l"),CPVar (1,"r"),CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","<>")) (CVar (0,"l"))) (CVar (1,"r")))] [],CRule [CPVar (3,"l"),CPVar (4,"r"),CPVar (5,"s"),CPComb ("Prelude",":") [CPVar (6,"d"),CPVar (7,"ds")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","align")) (CApply (CApply (CApply (CSymbol ("Pretty","enclose")) (CVar (3,"l"))) (CVar (4,"r"))) (CApply (CSymbol ("Pretty","hcat")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"d"))) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (8,"x0")] (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (5,"s"))) (CVar (8,"x0"))))) (CVar (7,"ds")))))))] []]),
+  CFunc ("Pretty","hang") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"i"),CPVar (1,"d")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","OpenNest")) (CLambda [CPVar (2,"ms"),CPVar (3,"r"),CPVar (4,"w")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (4,"w"))) (CVar (3,"r")))) (CVar (0,"i")))) (CVar (2,"ms")))))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","deDoc")) (CVar (1,"d")))) (CSymbol ("Pretty","CloseNest")))))] []]),
+  CFunc ("Pretty","hcat") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<>")))] []]),
+  CFunc ("Pretty","hsep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<+>")))] []]),
+  CFunc ("Pretty","int") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","text")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"n"))))] []]),
+  CFunc ("Pretty","langle") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '<')))] []]),
+  CFunc ("Pretty","lbrace") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '{')))] []]),
+  CFunc ("Pretty","lbracket") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '[')))] []]),
+  CFunc ("Pretty","length") 0 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","length"))) (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (0,"x0"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 5))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 6))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 7))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude","enumFromTo")) (CLit (CIntc 16))) (CLit (CIntc 31))))))) (CSymbol ("Prelude","ord"))))))] []]),
+  CFunc ("Pretty","line") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","linesep")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("Pretty","linebreak") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","linesep")) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Pretty","linesep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","Doc"))) (CSymbol ("Pretty","Line")))] []]),
+  CFunc ("Pretty","list") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Pretty","fillEncloseSep")) (CSymbol ("Pretty","lbracket"))) (CSymbol ("Pretty","rbracket"))) (CSymbol ("Pretty","comma")))] []]),
+  CFunc ("Pretty","lparen") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '(')))] []]),
+  CFunc ("Pretty","multiGroup") 8 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))) (CFuncType (CTCons ("Dequeue","Queue") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))]]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))))))))) (CRules CFlex [CRule [CPComb ("Pretty","Text") [CPVar (0,"t"),CPVar (1,"ts")],CPVar (2,"w"),CPVar (3,"p"),CPVar (4,"e"),CPVar (5,"outGrpPreOuter"),CPVar (6,"qs"),CPVar (7,"s"),CPVar (8,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneMulti")) (CVar (1,"ts"))) (CVar (2,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"p"))) (CVar (9,"l")))) (CVar (4,"e"))) (CVar (5,"outGrpPreOuter"))) (CVar (6,"qs"))) (CVar (7,"s"))) (CLambda [CPVar (10,"h"),CPVar (11,"c")] (CApply (CApply (CVar (8,"outGrpPreInner")) (CVar (10,"h"))) (CApply (CSymbol ("Pretty","outText")) (CVar (11,"c"))))))] [CLocalPat (CPVar (9,"l")) (CApply (CSymbol ("Pretty","length")) (CVar (0,"t"))) [],CLocalFunc (CFunc ("Pretty","outText") 3 Private (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])))) (CRules CFlex [CRule [CPVar (10,"c"),CPVar (11,"r"),CPVar (12,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"t"))) (CApply (CApply (CVar (10,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (11,"r"))) (CVar (9,"l")))) (CVar (12,"ms"))))] []]))],CRule [CPComb ("Pretty","Line") [CPVar (12,"s"),CPVar (13,"ts")],CPVar (14,"w"),CPVar (15,"p"),CPVar (16,"e"),CPVar (17,"outGrpPreOuter"),CPVar (18,"qs"),CPVar (19,"si"),CPVar (20,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneMulti")) (CVar (13,"ts"))) (CVar (14,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (15,"p"))) (CVar (21,"lens")))) (CVar (16,"e"))) (CVar (17,"outGrpPreOuter"))) (CVar (18,"qs"))) (CVar (19,"si"))) (CLambda [CPVar (22,"h"),CPVar (23,"c")] (CApply (CApply (CVar (20,"outGrpPreInner")) (CVar (22,"h"))) (CApply (CApply (CSymbol ("Pretty","outLine")) (CVar (22,"h"))) (CVar (23,"c"))))))] [CLocalPat (CPVar (21,"lens")) (CApply (CSymbol ("Pretty","length")) (CVar (12,"s"))) [],CLocalFunc (CFunc ("Pretty","outLine") 4 Private (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))) (CRules CFlex [CRule [CPVar (22,"h"),CPVar (23,"c"),CPVar (24,"r"),CPAs (27,"ms") (CPComb ("Prelude",":") [CPVar (25,"m"),CPVar (26,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (22,"h"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (12,"s"))) (CApply (CApply (CVar (23,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (24,"r"))) (CVar (21,"lens")))) (CVar (27,"ms"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","replicate")) (CVar (25,"m"))) (CLit (CCharc ' ')))) (CApply (CApply (CVar (23,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (14,"w"))) (CVar (25,"m")))) (CVar (27,"ms"))))))] []]))],CRule [CPComb ("Pretty","Open") [CPVar (24,"ts")],CPVar (25,"w"),CPVar (26,"p"),CPVar (27,"e"),CPVar (28,"outGrpPreOuter"),CPVar (29,"qs"),CPVar (30,"si"),CPVar (31,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (24,"ts"))) (CVar (25,"w"))) (CVar (26,"p"))) (CVar (27,"e"))) (CVar (28,"outGrpPreOuter"))) (CApply (CApply (CSymbol ("Dequeue","cons")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (30,"si"))) (CVar (31,"outGrpPreInner")))) (CVar (29,"qs")))) (CVar (26,"p"))) (CLambda [CPVar (32,"_"),CPVar (33,"c")] (CVar (33,"c"))))] [],CRule [CPComb ("Pretty","Close") [CPVar (34,"ts")],CPVar (35,"w"),CPVar (36,"p"),CPVar (37,"e"),CPVar (38,"outGrpPreOuter"),CPVar (39,"qs"),CPVar (40,"si"),CPVar (41,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CCase (CApply (CSymbol ("Dequeue","matchHead")) (CVar (39,"qs"))) [CBranch (CPComb ("Prelude","Nothing") []) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (34,"ts"))) (CVar (35,"w"))) (CVar (36,"p"))) (CVar (37,"e"))) (CLambda [CPVar (42,"h"),CPVar (43,"c")] (CApply (CApply (CVar (38,"outGrpPreOuter")) (CVar (42,"h"))) (CLambda [CPVar (44,"ri")] (CApply (CApply (CApply (CVar (41,"outGrpPreInner")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (36,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (40,"si"))) (CVar (44,"ri"))))) (CVar (43,"c"))) (CVar (44,"ri"))))))),CBranch (CPComb ("Prelude","Just") [CPComb ("Prelude","(,)") [CPComb ("Prelude","(,)") [CPVar (45,"s"),CPVar (46,"outGrpPre")],CPVar (47,"qs'")]]) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (34,"ts"))) (CVar (35,"w"))) (CVar (36,"p"))) (CVar (37,"e"))) (CVar (38,"outGrpPreOuter"))) (CVar (47,"qs'"))) (CVar (45,"s"))) (CLambda [CPVar (48,"h"),CPVar (49,"c")] (CApply (CApply (CVar (46,"outGrpPre")) (CVar (48,"h"))) (CLambda [CPVar (50,"ri")] (CApply (CApply (CApply (CVar (41,"outGrpPreInner")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (36,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (40,"si"))) (CVar (50,"ri"))))) (CVar (49,"c"))) (CVar (50,"ri")))))))])] [],CRule [CPComb ("Pretty","OpenNest") [CPVar (51,"f"),CPVar (52,"ts")],CPVar (53,"w"),CPVar (54,"p"),CPVar (55,"e"),CPVar (56,"outGrpPreOuter"),CPVar (57,"qs"),CPVar (58,"si"),CPVar (59,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (52,"ts"))) (CVar (53,"w"))) (CVar (54,"p"))) (CVar (55,"e"))) (CVar (56,"outGrpPreOuter"))) (CVar (57,"qs"))) (CVar (58,"si"))) (CLambda [CPVar (60,"h"),CPVar (61,"c")] (CApply (CApply (CVar (59,"outGrpPreInner")) (CVar (60,"h"))) (CLambda [CPVar (62,"r"),CPVar (63,"ms")] (CApply (CApply (CVar (61,"c")) (CVar (62,"r"))) (CApply (CApply (CApply (CVar (51,"f")) (CVar (63,"ms"))) (CVar (62,"r"))) (CVar (53,"w"))))))))] [],CRule [CPComb ("Pretty","CloseNest") [CPVar (64,"ts")],CPVar (65,"w"),CPVar (66,"p"),CPVar (67,"e"),CPVar (68,"outGrpPreOuter"),CPVar (69,"qs"),CPVar (70,"si"),CPVar (71,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (64,"ts"))) (CVar (65,"w"))) (CVar (66,"p"))) (CVar (67,"e"))) (CVar (68,"outGrpPreOuter"))) (CVar (69,"qs"))) (CVar (70,"si"))) (CLambda [CPVar (72,"h"),CPVar (73,"c")] (CApply (CApply (CVar (71,"outGrpPreInner")) (CVar (72,"h"))) (CLambda [CPVar (74,"r"),CPVar (75,"ms")] (CApply (CApply (CVar (73,"c")) (CVar (74,"r"))) (CApply (CSymbol ("Prelude","tail")) (CVar (75,"ms"))))))))] []]),
+  CFunc ("Pretty","nest") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"i"),CPVar (1,"d")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","OpenNest")) (CLambda [CPAs (4,"ms") (CPComb ("Prelude",":") [CPVar (2,"m"),CPVar (3,"_")]),CPVar (5,"_"),CPVar (6,"_")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"m"))) (CVar (0,"i")))) (CVar (4,"ms")))))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","deDoc")) (CVar (1,"d")))) (CSymbol ("Pretty","CloseNest")))))] []]),
+  CFunc ("Pretty","noGroup") 5 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])))))) (CRules CFlex [CRule [CPComb ("Pretty","Empty") [],CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Pretty","Text") [CPVar (4,"t"),CPVar (5,"ts")],CPVar (6,"w"),CPVar (7,"p"),CPVar (8,"r"),CPVar (9,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"t"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (5,"ts"))) (CVar (6,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (7,"p"))) (CVar (10,"l")))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (8,"r"))) (CVar (10,"l")))) (CVar (9,"ms"))))] [CLocalPat (CPVar (10,"l")) (CApply (CSymbol ("Pretty","length")) (CVar (4,"t"))) []],CRule [CPComb ("Pretty","Line") [CPVar (11,"_"),CPVar (12,"ts")],CPVar (13,"w"),CPVar (14,"p"),CPVar (15,"_"),CPAs (18,"ms") (CPComb ("Prelude",":") [CPVar (16,"m"),CPVar (17,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","replicate")) (CVar (16,"m"))) (CLit (CCharc ' ')))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (12,"ts"))) (CVar (13,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (14,"p"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (13,"w"))) (CVar (16,"m")))) (CVar (18,"ms")))))] [],CRule [CPComb ("Pretty","Open") [CPVar (19,"ts")],CPVar (20,"w"),CPVar (21,"p"),CPVar (22,"r"),CPVar (23,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (19,"ts"))) (CVar (20,"w"))) (CVar (21,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (21,"p"))) (CVar (22,"r")))) (CLambda [CPVar (24,"_"),CPVar (25,"c")] (CVar (25,"c")))) (CVar (22,"r"))) (CVar (23,"ms")))] [],CRule [CPComb ("Pretty","Close") [CPVar (26,"ts")],CPVar (27,"w"),CPVar (28,"p"),CPVar (29,"r"),CPVar (30,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (26,"ts"))) (CVar (27,"w"))) (CVar (28,"p"))) (CVar (29,"r"))) (CVar (30,"ms")))] [],CRule [CPComb ("Pretty","OpenNest") [CPVar (31,"f"),CPVar (32,"ts")],CPVar (33,"w"),CPVar (34,"p"),CPVar (35,"r"),CPVar (36,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (32,"ts"))) (CVar (33,"w"))) (CVar (34,"p"))) (CVar (35,"r"))) (CApply (CApply (CApply (CVar (31,"f")) (CVar (36,"ms"))) (CVar (35,"r"))) (CVar (33,"w"))))] [],CRule [CPComb ("Pretty","CloseNest") [CPVar (37,"ts")],CPVar (38,"w"),CPVar (39,"p"),CPVar (40,"r"),CPVar (41,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (37,"ts"))) (CVar (38,"w"))) (CVar (39,"p"))) (CVar (40,"r"))) (CApply (CSymbol ("Prelude","tail")) (CVar (41,"ms"))))] []]),
+  CFunc ("Pretty","normalise") 0 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CTCons ("Pretty","Tokens") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","go")) (CSymbol ("Prelude","id")))] [CLocalFunc (CFunc ("Pretty","go") 2 Private (CFuncType (CFuncType (CTCons ("Pretty","Tokens") []) (CTCons ("Pretty","Tokens") [])) (CFuncType (CTCons ("Pretty","Tokens") []) (CTCons ("Pretty","Tokens") []))) (CRules CFlex [CRule [CPVar (0,"co"),CPComb ("Pretty","Empty") []] [(CSymbol ("Prelude","success"),CApply (CVar (0,"co")) (CSymbol ("Pretty","Empty")))] [],CRule [CPVar (1,"co"),CPComb ("Pretty","Open") [CPVar (2,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","go")) (CApply (CApply (CSymbol ("Prelude",".")) (CVar (1,"co"))) (CSymbol ("Pretty","open")))) (CVar (2,"ts")))] [],CRule [CPVar (3,"co"),CPComb ("Pretty","Close") [CPVar (4,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","go")) (CApply (CApply (CSymbol ("Prelude",".")) (CVar (3,"co"))) (CSymbol ("Pretty","Close")))) (CVar (4,"ts")))] [],CRule [CPVar (5,"co"),CPComb ("Pretty","Line") [CPVar (6,"s"),CPVar (7,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CApply (CSymbol ("Prelude",".")) (CVar (5,"co"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","Line")) (CVar (6,"s")))) (CApply (CSymbol ("Pretty","go")) (CSymbol ("Prelude","id")))))) (CVar (7,"ts")))] [],CRule [CPVar (8,"co"),CPComb ("Pretty","Text") [CPVar (9,"s"),CPVar (10,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","Text")) (CVar (9,"s"))) (CApply (CApply (CSymbol ("Pretty","go")) (CVar (8,"co"))) (CVar (10,"ts"))))] [],CRule [CPVar (11,"co"),CPComb ("Pretty","OpenNest") [CPVar (12,"f"),CPVar (13,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","OpenNest")) (CVar (12,"f"))) (CApply (CApply (CSymbol ("Pretty","go")) (CVar (11,"co"))) (CVar (13,"ts"))))] [],CRule [CPVar (14,"co"),CPComb ("Pretty","CloseNest") [CPVar (15,"ts")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","CloseNest")) (CApply (CApply (CSymbol ("Pretty","go")) (CVar (14,"co"))) (CVar (15,"ts"))))] []])),CLocalFunc (CFunc ("Pretty","open") 1 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CTCons ("Pretty","Tokens") [])) (CRules CFlex [CRule [CPVar (0,"t")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"t")) [CBranch (CPComb ("Pretty","Close") [CPVar (1,"ts")]) (CVar (1,"ts")),CBranch (CPVar (2,"_")) (CApply (CSymbol ("Pretty","Open")) (CVar (0,"t")))])] []]))]]),
+  CFunc ("Pretty","oneGroup") 5 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])))))))) (CRules CFlex [CRule [CPComb ("Pretty","Text") [CPVar (0,"t"),CPVar (1,"ts")],CPVar (2,"w"),CPVar (3,"p"),CPVar (4,"e"),CPVar (5,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneOne")) (CVar (1,"ts"))) (CVar (2,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"p"))) (CVar (6,"l")))) (CVar (4,"e"))) (CLambda [CPVar (7,"h"),CPVar (8,"c")] (CApply (CApply (CVar (5,"outGrpPre")) (CVar (7,"h"))) (CApply (CSymbol ("Pretty","outText")) (CVar (8,"c"))))))] [CLocalPat (CPVar (6,"l")) (CApply (CSymbol ("Pretty","length")) (CVar (0,"t"))) [],CLocalFunc (CFunc ("Pretty","outText") 3 Private (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])))) (CRules CFlex [CRule [CPVar (7,"c"),CPVar (8,"r"),CPVar (9,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"t"))) (CApply (CApply (CVar (7,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (8,"r"))) (CVar (6,"l")))) (CVar (9,"ms"))))] []]))],CRule [CPComb ("Pretty","Line") [CPVar (9,"s"),CPVar (10,"ts")],CPVar (11,"w"),CPVar (12,"p"),CPVar (13,"e"),CPVar (14,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneOne")) (CVar (10,"ts"))) (CVar (11,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (12,"p"))) (CVar (15,"lens")))) (CVar (13,"e"))) (CLambda [CPVar (16,"h"),CPVar (17,"c")] (CApply (CApply (CVar (14,"outGrpPre")) (CVar (16,"h"))) (CApply (CApply (CSymbol ("Pretty","outLine")) (CVar (16,"h"))) (CVar (17,"c"))))))] [CLocalPat (CPVar (15,"lens")) (CApply (CSymbol ("Pretty","length")) (CVar (9,"s"))) [],CLocalFunc (CFunc ("Pretty","outLine") 4 Private (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))) (CRules CFlex [CRule [CPVar (16,"h"),CPVar (17,"c"),CPVar (18,"r"),CPAs (21,"ms") (CPComb ("Prelude",":") [CPVar (19,"m"),CPVar (20,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (16,"h"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (9,"s"))) (CApply (CApply (CVar (17,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (18,"r"))) (CVar (15,"lens")))) (CVar (21,"ms"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","replicate")) (CVar (19,"m"))) (CLit (CCharc ' ')))) (CApply (CApply (CVar (17,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (11,"w"))) (CVar (19,"m")))) (CVar (21,"ms"))))))] []]))],CRule [CPComb ("Pretty","Open") [CPVar (18,"ts")],CPVar (19,"w"),CPVar (20,"p"),CPVar (21,"e"),CPVar (22,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (18,"ts"))) (CVar (19,"w"))) (CVar (20,"p"))) (CVar (21,"e"))) (CVar (22,"outGrpPre"))) (CSymbol ("Dequeue","empty"))) (CVar (20,"p"))) (CLambda [CPVar (23,"_"),CPVar (24,"c")] (CVar (24,"c"))))] [],CRule [CPComb ("Pretty","Close") [CPVar (25,"ts")],CPVar (26,"w"),CPVar (27,"p"),CPVar (28,"e"),CPVar (29,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (29,"outGrpPre")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (27,"p"))) (CVar (28,"e")))) (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (25,"ts"))) (CVar (26,"w"))) (CVar (27,"p"))))] [],CRule [CPComb ("Pretty","OpenNest") [CPVar (30,"f"),CPVar (31,"ts")],CPVar (32,"w"),CPVar (33,"p"),CPVar (34,"e"),CPVar (35,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (31,"ts"))) (CVar (32,"w"))) (CVar (33,"p"))) (CVar (34,"e"))) (CLambda [CPVar (36,"h"),CPVar (37,"c")] (CApply (CApply (CVar (35,"outGrpPre")) (CVar (36,"h"))) (CLambda [CPVar (38,"r"),CPVar (39,"ms")] (CApply (CApply (CVar (37,"c")) (CVar (38,"r"))) (CApply (CApply (CApply (CVar (30,"f")) (CVar (39,"ms"))) (CVar (38,"r"))) (CVar (32,"w"))))))))] [],CRule [CPComb ("Pretty","CloseNest") [CPVar (40,"ts")],CPVar (41,"w"),CPVar (42,"p"),CPVar (43,"e"),CPVar (44,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (40,"ts"))) (CVar (41,"w"))) (CVar (42,"p"))) (CVar (43,"e"))) (CLambda [CPVar (45,"h"),CPVar (46,"c")] (CApply (CApply (CVar (44,"outGrpPre")) (CVar (45,"h"))) (CLambda [CPVar (47,"r"),CPVar (48,"ms")] (CApply (CApply (CVar (46,"c")) (CVar (47,"r"))) (CApply (CSymbol ("Prelude","tail")) (CVar (48,"ms"))))))))] []]),
+  CFunc ("Pretty","parens") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","lparen"))) (CSymbol ("Pretty","rparen")))] []]),
+  CFunc ("Pretty","pretty") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [CPVar (0,"w"),CPVar (1,"d")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CApply (CSymbol ("Pretty","doc2Tokens")) (CVar (1,"d")))) (CVar (0,"w"))) (CLit (CIntc 1))) (CVar (0,"w"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 0))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("Pretty","pruneMulti") 8 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))) (CFuncType (CTCons ("Dequeue","Queue") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))]]) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))))))))) (CRules CFlex [CRule [CPVar (0,"ts"),CPVar (1,"w"),CPVar (2,"p"),CPVar (3,"e"),CPVar (4,"outGrpPreOuter"),CPVar (5,"qs"),CPVar (6,"si"),CPVar (7,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (2,"p"))) (CVar (3,"e")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p"))) (CVar (3,"e"))) (CVar (4,"outGrpPreOuter"))) (CVar (5,"qs"))) (CVar (6,"si"))) (CVar (7,"outGrpPreInner")))) (CApply (CApply (CVar (4,"outGrpPreOuter")) (CSymbol ("Prelude","False"))) (CLambda [CPVar (8,"r")] (CApply (CCase (CApply (CSymbol ("Dequeue","matchLast")) (CVar (5,"qs"))) [CBranch (CPComb ("Prelude","Nothing") []) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneOne")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (6,"si"))) (CVar (8,"r")))) (CVar (7,"outGrpPreInner"))),CBranch (CPComb ("Prelude","Just") [CPComb ("Prelude","(,)") [CPComb ("Prelude","(,)") [CPVar (9,"s"),CPVar (10,"outGrpPre")],CPVar (11,"qs'")]]) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneMulti")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (9,"s"))) (CVar (8,"r")))) (CVar (10,"outGrpPre"))) (CVar (11,"qs'"))) (CVar (6,"si"))) (CVar (7,"outGrpPreInner")))]) (CVar (8,"r"))))))] []]),
+  CFunc ("Pretty","pruneOne") 5 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CFuncType (CTCons ("Prelude","Bool") []) (CFuncType (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))))) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])))))))) (CRules CFlex [CRule [CPVar (0,"ts"),CPVar (1,"w"),CPVar (2,"p"),CPVar (3,"e"),CPVar (4,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (2,"p"))) (CVar (3,"e")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p"))) (CVar (3,"e"))) (CVar (4,"outGrpPre")))) (CApply (CApply (CVar (4,"outGrpPre")) (CSymbol ("Prelude","False"))) (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p")))))] []]),
+  CFunc ("Pretty","punctuate") 2 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"d"),CPAs (4,"ds") (CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")])] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","go")) (CVar (4,"ds")))] [CLocalFunc (CFunc ("Pretty","go") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []])) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (5,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (6,"x"),CPAs (9,"xs") (CPComb ("Prelude",":") [CPVar (7,"_"),CPVar (8,"_")])]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (6,"x"))) (CVar (1,"d")))) (CApply (CSymbol ("Pretty","go")) (CVar (9,"xs"))))] []]))]]),
+  CFunc ("Pretty","rangle") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '>')))] []]),
+  CFunc ("Pretty","rbrace") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '}')))] []]),
+  CFunc ("Pretty","rbracket") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ']')))] []]),
+  CFunc ("Pretty","rparen") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ')')))] []]),
+  CFunc ("Pretty","semi") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ';')))] []]),
+  CFunc ("Pretty","semiBraces") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Pretty","fillEncloseSep")) (CSymbol ("Pretty","lbrace"))) (CSymbol ("Pretty","rbrace"))) (CSymbol ("Pretty","semi")))] []]),
+  CFunc ("Pretty","sep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","group"))) (CSymbol ("Pretty","vsep")))] []]),
+  CFunc ("Pretty","softbreak") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","group")) (CSymbol ("Pretty","linebreak")))] []]),
+  CFunc ("Pretty","softline") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","group")) (CSymbol ("Pretty","line")))] []]),
+  CFunc ("Pretty","space") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ' ')))] []]),
+  CFunc ("Pretty","squote") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '\'')))] []]),
+  CFunc ("Pretty","squotes") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","squote"))) (CSymbol ("Pretty","squote")))] []]),
+  CFunc ("Pretty","string") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","hcat"))) (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (0,"c")] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (0,"c"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\r'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Pretty","line"))) (CApply (CSymbol ("Pretty","char")) (CVar (0,"c")))))))] []]),
+  CFunc ("Pretty","text") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CSymbol ("Pretty","Text")) (CVar (0,"s"))))] []]),
+  CFunc ("Pretty","tupled") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Pretty","fillEncloseSep")) (CSymbol ("Pretty","lparen"))) (CSymbol ("Pretty","rparen"))) (CSymbol ("Pretty","comma")))] []]),
+  CFunc ("Pretty","vcat") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<$$>")))] []]),
+  CFunc ("Pretty","vsep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<$>")))] []])]
+ [COp ("Pretty","<//>") CInfixlOp 1,COp ("Pretty","<$$>") CInfixlOp 1,COp ("Pretty","</>") CInfixlOp 1,COp ("Pretty","<$>") CInfixlOp 1,COp ("Pretty","<+>") CInfixlOp 1,COp ("Pretty","<>") CInfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Pretty.cy b/src/lib/Curry/Module/.curry/Pretty.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Pretty.cy
@@ -0,0 +1,122 @@
+Module "Pretty"
+(Just (Exporting (11,15) [(Export (QualIdent Nothing (Ident "pretty" 0))),(Export (QualIdent Nothing (Ident "Doc" 0))),(Export (QualIdent Nothing (Ident "empty" 0))),(Export (QualIdent Nothing (Ident "text" 0))),(Export (QualIdent Nothing (Ident "linesep" 0))),(Export (QualIdent Nothing (Ident "line" 0))),(Export (QualIdent Nothing (Ident "linebreak" 0))),(Export (QualIdent Nothing (Ident "group" 0))),(Export (QualIdent Nothing (Ident "softline" 0))),(Export (QualIdent Nothing (Ident "softbreak" 0))),(Export (QualIdent Nothing (Ident "nest" 0))),(Export (QualIdent Nothing (Ident "hang" 0))),(Export (QualIdent Nothing (Ident "align" 0))),(Export (QualIdent Nothing (Ident "combine" 0))),(Export (QualIdent Nothing (Ident "<>" 0))),(Export (QualIdent Nothing (Ident "<+>" 0))),(Export (QualIdent Nothing (Ident "<$>" 0))),(Export (QualIdent Nothing (Ident "</>" 0))),(Export (QualIdent Nothing (Ident "<$$>" 0))),(Export (QualIdent Nothing (Ident "<//>" 0))),(Export (QualIdent Nothing (Ident "compose" 0))),(Export (QualIdent Nothing (Ident "hsep" 0))),(Export (QualIdent Nothing (Ident "vsep" 0))),(Export (QualIdent Nothing (Ident "fillSep" 0))),(Export (QualIdent Nothing (Ident "sep" 0))),(Export (QualIdent Nothing (Ident "hcat" 0))),(Export (QualIdent Nothing (Ident "vcat" 0))),(Export (QualIdent Nothing (Ident "fillCat" 0))),(Export (QualIdent Nothing (Ident "cat" 0))),(Export (QualIdent Nothing (Ident "punctuate" 0))),(Export (QualIdent Nothing (Ident "encloseSep" 0))),(Export (QualIdent Nothing (Ident "hEncloseSep" 0))),(Export (QualIdent Nothing (Ident "fillEncloseSep" 0))),(Export (QualIdent Nothing (Ident "list" 0))),(Export (QualIdent Nothing (Ident "tupled" 0))),(Export (QualIdent Nothing (Ident "semiBraces" 0))),(Export (QualIdent Nothing (Ident "enclose" 0))),(Export (QualIdent Nothing (Ident "squotes" 0))),(Export (QualIdent Nothing (Ident "dquotes" 0))),(Export (QualIdent Nothing (Ident "bquotes" 0))),(Export (QualIdent Nothing (Ident "parens" 0))),(Export (QualIdent Nothing (Ident "angles" 0))),(Export (QualIdent Nothing (Ident "braces" 0))),(Export (QualIdent Nothing (Ident "brackets" 0))),(Export (QualIdent Nothing (Ident "char" 0))),(Export (QualIdent Nothing (Ident "string" 0))),(Export (QualIdent Nothing (Ident "int" 0))),(Export (QualIdent Nothing (Ident "float" 0))),(Export (QualIdent Nothing (Ident "lparen" 0))),(Export (QualIdent Nothing (Ident "rparen" 0))),(Export (QualIdent Nothing (Ident "langle" 0))),(Export (QualIdent Nothing (Ident "rangle" 0))),(Export (QualIdent Nothing (Ident "lbrace" 0))),(Export (QualIdent Nothing (Ident "rbrace" 0))),(Export (QualIdent Nothing (Ident "lbracket" 0))),(Export (QualIdent Nothing (Ident "rbracket" 0))),(Export (QualIdent Nothing (Ident "squote" 0))),(Export (QualIdent Nothing (Ident "dquote" 0))),(Export (QualIdent Nothing (Ident "semi" 0))),(Export (QualIdent Nothing (Ident "colon" 0))),(Export (QualIdent Nothing (Ident "comma" 0))),(Export (QualIdent Nothing (Ident "space" 0))),(Export (QualIdent Nothing (Ident "dot" 0))),(Export (QualIdent Nothing (Ident "backslash" 0))),(Export (QualIdent Nothing (Ident "equals" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (41,1) "Dequeue" False (Just "Q") Nothing)
+,(DataDecl (45,1) (Ident "Doc" 0) [] [(ConstrDecl (45,12) [] (Ident "Doc" 0) [(ArrowType (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) []))])])
+,(TypeDecl (177,1) (Ident "Layout" 0) [] (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))
+,(TypeDecl (178,1) (Ident "Horizontal" 0) [] (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))
+,(TypeDecl (179,1) (Ident "Remaining" 0) [] (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))
+,(TypeDecl (180,1) (Ident "Width" 0) [] (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))
+,(TypeDecl (181,1) (Ident "Position" 0) [] (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))
+,(TypeDecl (182,1) (Ident "StartPosition" 0) [] (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))
+,(TypeDecl (183,1) (Ident "EndPosition" 0) [] (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))
+,(TypeDecl (184,1) (Ident "Out" 0) [] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Remaining" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Margins" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(TypeDecl (185,1) (Ident "OutGroupPrefix" 0) [] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Horizontal" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Out" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Out" 0)) []))))
+,(TypeDecl (186,1) (Ident "Margins" 0) [] (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(DataDecl (188,1) (Ident "Tokens" 0) [] [(ConstrDecl (188,15) [] (Ident "Text" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) [])]),(ConstrDecl (189,15) [] (Ident "Line" 0) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) [])]),(ConstrDecl (190,15) [] (Ident "Open" 0) [(ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) [])]),(ConstrDecl (191,15) [] (Ident "Close" 0) [(ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) [])]),(ConstrDecl (192,15) [] (Ident "Empty" 0) []),(ConstrDecl (193,15) [] (Ident "OpenNest" 0) [(ArrowType (ConstructorType (QualIdent Nothing (Ident "Margins" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Remaining" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Width" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Margins" 0)) [])))),(ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) [])]),(ConstrDecl (194,15) [] (Ident "CloseNest" 0) [(ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) [])])])
+,(InfixDecl (43,1) InfixL 1 [(Ident "<>" 0),(Ident "<+>" 0),(Ident "<$>" 0),(Ident "</>" 0),(Ident "<$$>" 0),(Ident "<//>" 0)])
+,(FunctionDecl (47,1) (Ident "deDoc" 0) [(Equation (47,1) (FunLhs (Ident "deDoc" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Doc" 0)) [(VariablePattern (Ident "d" 2))]))]) (SimpleRhs (47,17) (Variable (QualIdent Nothing (Ident "d" 2))) []))])
+,(TypeSig (49,1) [(Ident "empty" 0)] (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))
+,(FunctionDecl (50,1) (Ident "empty" 0) [(Equation (50,1) (FunLhs (Ident "empty" 0) []) (SimpleRhs (50,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "text" 0))) (Literal (String ""))) []))])
+,(TypeSig (52,1) [(Ident "text" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (53,1) (Ident "text" 0) [(Equation (53,1) (FunLhs (Ident "text" 0) [(VariablePattern (Ident "s" 6))]) (SimpleRhs (53,10) (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Doc" 0))) (Paren (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Text" 0))) (Variable (QualIdent Nothing (Ident "s" 6)))))) []))])
+,(TypeSig (55,1) [(Ident "linesep" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (56,1) (Ident "linesep" 0) [(Equation (56,1) (FunLhs (Ident "linesep" 0) []) (SimpleRhs (56,11) (InfixApply (Constructor (QualIdent (Just "Pretty") (Ident "Doc" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Pretty") (Ident "Line" 0)))) []))])
+,(TypeSig (58,1) [(Ident "line" 0),(Ident "linebreak" 0),(Ident "softline" 0),(Ident "softbreak" 0)] (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))
+,(FunctionDecl (59,1) (Ident "line" 0) [(Equation (59,1) (FunLhs (Ident "line" 0) []) (SimpleRhs (59,8) (Apply (Variable (QualIdent (Just "Pretty") (Ident "linesep" 0))) (Literal (String " "))) []))])
+,(FunctionDecl (60,1) (Ident "linebreak" 0) [(Equation (60,1) (FunLhs (Ident "linebreak" 0) []) (SimpleRhs (60,13) (Apply (Variable (QualIdent (Just "Pretty") (Ident "linesep" 0))) (Literal (String ""))) []))])
+,(FunctionDecl (61,1) (Ident "softline" 0) [(Equation (61,1) (FunLhs (Ident "softline" 0) []) (SimpleRhs (61,12) (Apply (Variable (QualIdent (Just "Pretty") (Ident "group" 0))) (Variable (QualIdent (Just "Pretty") (Ident "line" 0)))) []))])
+,(FunctionDecl (62,1) (Ident "softbreak" 0) [(Equation (62,1) (FunLhs (Ident "softbreak" 0) []) (SimpleRhs (62,13) (Apply (Variable (QualIdent (Just "Pretty") (Ident "group" 0))) (Variable (QualIdent (Just "Pretty") (Ident "linebreak" 0)))) []))])
+,(TypeSig (64,1) [(Ident "group" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (65,1) (Ident "group" 0) [(Equation (65,1) (FunLhs (Ident "group" 0) [(VariablePattern (Ident "d" 18))]) (SimpleRhs (65,11) (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Doc" 0))) (Paren (InfixApply (Constructor (QualIdent (Just "Pretty") (Ident "Open" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Pretty") (Ident "deDoc" 0))) (Variable (QualIdent Nothing (Ident "d" 18)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Pretty") (Ident "Close" 0))))))) []))])
+,(TypeSig (67,1) [(Ident "nest" 0),(Ident "hang" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))))
+,(FunctionDecl (68,1) (Ident "nest" 0) [(Equation (68,1) (FunLhs (Ident "nest" 0) [(VariablePattern (Ident "i" 20)),(VariablePattern (Ident "d" 20))]) (SimpleRhs (68,12) (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Doc" 0))) (Paren (InfixApply (Apply (Constructor (QualIdent (Just "Pretty") (Ident "OpenNest" 0))) (Paren (Lambda [(AsPattern (Ident "ms" 22) (ParenPattern (InfixPattern (VariablePattern (Ident "m" 22)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 23))))),(VariablePattern (Ident "_" 24)),(VariablePattern (Ident "_" 25))] (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "m" 22))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "i" 20))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ms" 22))))))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Pretty") (Ident "deDoc" 0))) (Variable (QualIdent Nothing (Ident "d" 20)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Pretty") (Ident "CloseNest" 0))))))) []))])
+,(FunctionDecl (69,1) (Ident "hang" 0) [(Equation (69,1) (FunLhs (Ident "hang" 0) [(VariablePattern (Ident "i" 26)),(VariablePattern (Ident "d" 26))]) (SimpleRhs (69,12) (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Doc" 0))) (Paren (InfixApply (Apply (Constructor (QualIdent (Just "Pretty") (Ident "OpenNest" 0))) (Paren (Lambda [(VariablePattern (Ident "ms" 28)),(VariablePattern (Ident "r" 28)),(VariablePattern (Ident "w" 28))] (InfixApply (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "w" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "r" 28)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "i" 26))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ms" 28))))))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Pretty") (Ident "deDoc" 0))) (Variable (QualIdent Nothing (Ident "d" 26)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Pretty") (Ident "CloseNest" 0))))))) []))])
+,(TypeSig (71,1) [(Ident "align" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (72,1) (Ident "align" 0) [(Equation (72,1) (FunLhs (Ident "align" 0) []) (SimpleRhs (72,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "hang" 0))) (Literal (Int (Ident "_" 31) 0))) []))])
+,(TypeSig (74,1) [(Ident "combine" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))))
+,(FunctionDecl (75,1) (Ident "combine" 0) [(Equation (75,1) (FunLhs (Ident "combine" 0) [(VariablePattern (Ident "s" 32)),(VariablePattern (Ident "d1" 32)),(VariablePattern (Ident "d2" 32))]) (SimpleRhs (75,19) (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent Nothing (Ident "d1" 32)))) (Variable (QualIdent Nothing (Ident "d2" 32)))) (Variable (QualIdent Nothing (Ident "s" 32)))) []))])
+,(TypeSig (77,1) [(Ident "<>" 0),(Ident "<+>" 0),(Ident "<$>" 0),(Ident "</>" 0),(Ident "<$$>" 0),(Ident "<//>" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))))
+,(FunctionDecl (78,1) (Ident "<>" 0) [(Equation (78,1) (OpLhs (VariablePattern (Ident "d1" 34)) (Ident "<>" 0) (VariablePattern (Ident "d2" 34))) (SimpleRhs (78,12) (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Doc" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Pretty") (Ident "deDoc" 0))) (Variable (QualIdent Nothing (Ident "d1" 34)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Pretty") (Ident "deDoc" 0))) (Variable (QualIdent Nothing (Ident "d2" 34))))))) []))])
+,(FunctionDecl (79,1) (Ident "<+>" 0) [(Equation (79,1) (FunLhs (Ident "<+>" 0) []) (SimpleRhs (79,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "combine" 0))) (Variable (QualIdent (Just "Pretty") (Ident "space" 0)))) []))])
+,(FunctionDecl (80,1) (Ident "<$>" 0) [(Equation (80,1) (FunLhs (Ident "<$>" 0) []) (SimpleRhs (80,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "combine" 0))) (Variable (QualIdent (Just "Pretty") (Ident "line" 0)))) []))])
+,(FunctionDecl (81,1) (Ident "</>" 0) [(Equation (81,1) (FunLhs (Ident "</>" 0) []) (SimpleRhs (81,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "combine" 0))) (Variable (QualIdent (Just "Pretty") (Ident "softline" 0)))) []))])
+,(FunctionDecl (82,1) (Ident "<$$>" 0) [(Equation (82,1) (FunLhs (Ident "<$$>" 0) []) (SimpleRhs (82,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "combine" 0))) (Variable (QualIdent (Just "Pretty") (Ident "linebreak" 0)))) []))])
+,(FunctionDecl (83,1) (Ident "<//>" 0) [(Equation (83,1) (FunLhs (Ident "<//>" 0) []) (SimpleRhs (83,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "combine" 0))) (Variable (QualIdent (Just "Pretty") (Ident "softbreak" 0)))) []))])
+,(TypeSig (85,1) [(Ident "compose" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))))
+,(FunctionDecl (87,1) (Ident "compose" 0) [(Equation (87,1) (FunLhs (Ident "compose" 0) [(VariablePattern (Ident "_" 47)),(ListPattern [])]) (SimpleRhs (87,16) (Variable (QualIdent (Just "Dequeue") (Ident "empty" 0))) [])),(Equation (88,1) (FunLhs (Ident "compose" 0) [(VariablePattern (Ident "op" 49)),(AsPattern (Ident "ds" 49) (ParenPattern (InfixPattern (VariablePattern (Ident "_" 50)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 51)))))]) (SimpleRhs (88,23) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr1" 0))) (Variable (QualIdent Nothing (Ident "op" 49)))) (Variable (QualIdent Nothing (Ident "ds" 49)))) []))])
+,(TypeSig (90,1) [(Ident "hsep" 0),(Ident "vsep" 0),(Ident "fillSep" 0),(Ident "sep" 0),(Ident "hcat" 0),(Ident "vcat" 0),(Ident "fillCat" 0),(Ident "cat" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (91,1) (Ident "hsep" 0) [(Equation (91,1) (FunLhs (Ident "hsep" 0) []) (SimpleRhs (91,8) (Apply (Variable (QualIdent (Just "Pretty") (Ident "compose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "<+>" 0)))) []))])
+,(FunctionDecl (92,1) (Ident "vsep" 0) [(Equation (92,1) (FunLhs (Ident "vsep" 0) []) (SimpleRhs (92,8) (Apply (Variable (QualIdent (Just "Pretty") (Ident "compose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "<$>" 0)))) []))])
+,(FunctionDecl (93,1) (Ident "fillSep" 0) [(Equation (93,1) (FunLhs (Ident "fillSep" 0) []) (SimpleRhs (93,11) (Apply (Variable (QualIdent (Just "Pretty") (Ident "compose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "</>" 0)))) []))])
+,(FunctionDecl (94,1) (Ident "sep" 0) [(Equation (94,1) (FunLhs (Ident "sep" 0) []) (SimpleRhs (94,7) (InfixApply (Variable (QualIdent (Just "Pretty") (Ident "group" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Pretty") (Ident "vsep" 0)))) []))])
+,(FunctionDecl (95,1) (Ident "hcat" 0) [(Equation (95,1) (FunLhs (Ident "hcat" 0) []) (SimpleRhs (95,8) (Apply (Variable (QualIdent (Just "Pretty") (Ident "compose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "<>" 0)))) []))])
+,(FunctionDecl (96,1) (Ident "vcat" 0) [(Equation (96,1) (FunLhs (Ident "vcat" 0) []) (SimpleRhs (96,8) (Apply (Variable (QualIdent (Just "Pretty") (Ident "compose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "<$$>" 0)))) []))])
+,(FunctionDecl (97,1) (Ident "fillCat" 0) [(Equation (97,1) (FunLhs (Ident "fillCat" 0) []) (SimpleRhs (97,11) (Apply (Variable (QualIdent (Just "Pretty") (Ident "compose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "<//>" 0)))) []))])
+,(FunctionDecl (98,1) (Ident "cat" 0) [(Equation (98,1) (FunLhs (Ident "cat" 0) []) (SimpleRhs (98,7) (InfixApply (Variable (QualIdent (Just "Pretty") (Ident "group" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Pretty") (Ident "vcat" 0)))) []))])
+,(TypeSig (100,1) [(Ident "punctuate" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])) (ListType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))))
+,(FunctionDecl (101,1) (Ident "punctuate" 0) [(Equation (101,1) (FunLhs (Ident "punctuate" 0) [(VariablePattern (Ident "_" 70)),(ListPattern [])]) (SimpleRhs (101,18) (List []) [])),(Equation (102,1) (FunLhs (Ident "punctuate" 0) [(VariablePattern (Ident "d" 72)),(AsPattern (Ident "ds" 72) (ParenPattern (InfixPattern (VariablePattern (Ident "_" 73)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 74)))))]) (SimpleRhs (102,24) (Apply (Variable (QualIdent Nothing (Ident "go" 75))) (Variable (QualIdent Nothing (Ident "ds" 72)))) [(FunctionDecl (104,3) (Ident "go" 75) [(Equation (104,3) (FunLhs (Ident "go" 75) [(ListPattern [(VariablePattern (Ident "x" 76))])]) (SimpleRhs (104,12) (List [(Variable (QualIdent Nothing (Ident "x" 76)))]) [])),(Equation (105,3) (FunLhs (Ident "go" 75) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 78)) (QualIdent Nothing (Ident ":" 0)) (AsPattern (Ident "xs" 78) (ParenPattern (InfixPattern (VariablePattern (Ident "_" 79)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 80)))))))]) (SimpleRhs (105,21) (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 78))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Variable (QualIdent Nothing (Ident "d" 72))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "go" 75))) (Variable (QualIdent Nothing (Ident "xs" 78))))) []))])]))])
+,(TypeSig (107,1) [(Ident "encloseSep" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))))))
+,(FunctionDecl (108,1) (Ident "encloseSep" 0) [(Equation (108,1) (FunLhs (Ident "encloseSep" 0) [(VariablePattern (Ident "l" 82)),(VariablePattern (Ident "r" 82)),(VariablePattern (Ident "_" 83)),(ListPattern [])]) (SimpleRhs (108,23) (InfixApply (Variable (QualIdent Nothing (Ident "l" 82))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Variable (QualIdent Nothing (Ident "r" 82)))) [])),(Equation (109,1) (FunLhs (Ident "encloseSep" 0) [(VariablePattern (Ident "l" 85)),(VariablePattern (Ident "r" 85)),(VariablePattern (Ident "s" 85)),(ParenPattern (InfixPattern (VariablePattern (Ident "d" 85)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ds" 85))))]) (SimpleRhs (109,27) (Apply (Variable (QualIdent (Just "Pretty") (Ident "align" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent Nothing (Ident "l" 85)))) (Variable (QualIdent Nothing (Ident "r" 85)))) (Paren (Apply (Variable (QualIdent (Just "Pretty") (Ident "cat" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "d" 85))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (LeftSection (Variable (QualIdent Nothing (Ident "s" 85))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))))) (Variable (QualIdent Nothing (Ident "ds" 85))))))))))) []))])
+,(TypeSig (111,1) [(Ident "hEncloseSep" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))))))
+,(FunctionDecl (112,1) (Ident "hEncloseSep" 0) [(Equation (112,1) (FunLhs (Ident "hEncloseSep" 0) [(VariablePattern (Ident "l" 87)),(VariablePattern (Ident "r" 87)),(VariablePattern (Ident "_" 88)),(ListPattern [])]) (SimpleRhs (112,24) (InfixApply (Variable (QualIdent Nothing (Ident "l" 87))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Variable (QualIdent Nothing (Ident "r" 87)))) [])),(Equation (113,1) (FunLhs (Ident "hEncloseSep" 0) [(VariablePattern (Ident "l" 90)),(VariablePattern (Ident "r" 90)),(VariablePattern (Ident "s" 90)),(ParenPattern (InfixPattern (VariablePattern (Ident "d" 90)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ds" 90))))]) (SimpleRhs (113,28) (Apply (Variable (QualIdent (Just "Pretty") (Ident "align" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent Nothing (Ident "l" 90)))) (Variable (QualIdent Nothing (Ident "r" 90)))) (Paren (Apply (Variable (QualIdent (Just "Pretty") (Ident "hcat" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "d" 90))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (LeftSection (Variable (QualIdent Nothing (Ident "s" 90))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))))) (Variable (QualIdent Nothing (Ident "ds" 90))))))))))) []))])
+,(TypeSig (115,1) [(Ident "fillEncloseSep" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))))))
+,(FunctionDecl (116,1) (Ident "fillEncloseSep" 0) [(Equation (116,1) (FunLhs (Ident "fillEncloseSep" 0) [(VariablePattern (Ident "l" 92)),(VariablePattern (Ident "r" 92)),(VariablePattern (Ident "_" 93)),(ListPattern [])]) (SimpleRhs (116,27) (InfixApply (Variable (QualIdent Nothing (Ident "l" 92))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Variable (QualIdent Nothing (Ident "r" 92)))) [])),(Equation (117,1) (FunLhs (Ident "fillEncloseSep" 0) [(VariablePattern (Ident "l" 95)),(VariablePattern (Ident "r" 95)),(VariablePattern (Ident "s" 95)),(ParenPattern (InfixPattern (VariablePattern (Ident "d" 95)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ds" 95))))]) (SimpleRhs (118,5) (Apply (Variable (QualIdent (Just "Pretty") (Ident "align" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent Nothing (Ident "l" 95)))) (Variable (QualIdent Nothing (Ident "r" 95)))) (Paren (Apply (Variable (QualIdent (Just "Pretty") (Ident "hcat" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "d" 95))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "withSoftBreaks" 96))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (LeftSection (Variable (QualIdent Nothing (Ident "s" 95))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))))) (Variable (QualIdent Nothing (Ident "ds" 95))))))))))))) [(FunctionDecl (120,3) (Ident "withSoftBreaks" 96) [(Equation (120,3) (FunLhs (Ident "withSoftBreaks" 96) [(ListPattern [])]) (SimpleRhs (120,23) (List []) [])),(Equation (121,3) (FunLhs (Ident "withSoftBreaks" 96) [(ListPattern [(VariablePattern (Ident "x" 99))])]) (SimpleRhs (121,24) (List [(Apply (Variable (QualIdent (Just "Pretty") (Ident "group" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Pretty") (Ident "linebreak" 0))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Variable (QualIdent Nothing (Ident "x" 99))))))]) [])),(Equation (122,3) (FunLhs (Ident "withSoftBreaks" 96) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 101)) (QualIdent Nothing (Ident ":" 0)) (AsPattern (Ident "xs" 101) (ParenPattern (InfixPattern (VariablePattern (Ident "_" 102)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 103)))))))]) (SimpleRhs (123,7) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Pretty") (Ident "group" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Pretty") (Ident "linebreak" 0))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Paren (Apply (Variable (QualIdent (Just "Pretty") (Ident "group" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 101))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Variable (QualIdent (Just "Pretty") (Ident "linebreak" 0)))))))))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "withSoftBreaks" 96))) (Variable (QualIdent Nothing (Ident "xs" 101)))))) []))])]))])
+,(TypeSig (125,1) [(Ident "list" 0),(Ident "tupled" 0),(Ident "semiBraces" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (126,1) (Ident "list" 0) [(Equation (126,1) (FunLhs (Ident "list" 0) []) (SimpleRhs (126,8) (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "fillEncloseSep" 0))) (Variable (QualIdent (Just "Pretty") (Ident "lbracket" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "rbracket" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "comma" 0)))) []))])
+,(FunctionDecl (127,1) (Ident "tupled" 0) [(Equation (127,1) (FunLhs (Ident "tupled" 0) []) (SimpleRhs (127,10) (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "fillEncloseSep" 0))) (Variable (QualIdent (Just "Pretty") (Ident "lparen" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "rparen" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "comma" 0)))) []))])
+,(FunctionDecl (128,1) (Ident "semiBraces" 0) [(Equation (128,1) (FunLhs (Ident "semiBraces" 0) []) (SimpleRhs (128,14) (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "fillEncloseSep" 0))) (Variable (QualIdent (Just "Pretty") (Ident "lbrace" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "rbrace" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "semi" 0)))) []))])
+,(TypeSig (130,1) [(Ident "enclose" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))))
+,(FunctionDecl (131,1) (Ident "enclose" 0) [(Equation (131,1) (FunLhs (Ident "enclose" 0) [(VariablePattern (Ident "l" 111)),(VariablePattern (Ident "r" 111)),(VariablePattern (Ident "d" 111))]) (SimpleRhs (131,17) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "l" 111))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Variable (QualIdent Nothing (Ident "d" 111)))) (InfixOp (QualIdent (Just "Pretty") (Ident "<>" 0))) (Variable (QualIdent Nothing (Ident "r" 111)))) []))])
+,(TypeSig (133,1) [(Ident "squotes" 0),(Ident "dquotes" 0),(Ident "parens" 0),(Ident "angles" 0),(Ident "braces" 0),(Ident "brackets" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (134,1) (Ident "squotes" 0) [(Equation (134,1) (FunLhs (Ident "squotes" 0) []) (SimpleRhs (134,11) (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "squote" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "squote" 0)))) []))])
+,(FunctionDecl (135,1) (Ident "dquotes" 0) [(Equation (135,1) (FunLhs (Ident "dquotes" 0) []) (SimpleRhs (135,11) (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "dquote" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "dquote" 0)))) []))])
+,(FunctionDecl (136,1) (Ident "bquotes" 0) [(Equation (136,1) (FunLhs (Ident "bquotes" 0) []) (SimpleRhs (136,11) (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "bquote" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "bquote" 0)))) []))])
+,(FunctionDecl (137,1) (Ident "parens" 0) [(Equation (137,1) (FunLhs (Ident "parens" 0) []) (SimpleRhs (137,10) (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "lparen" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "rparen" 0)))) []))])
+,(FunctionDecl (138,1) (Ident "angles" 0) [(Equation (138,1) (FunLhs (Ident "angles" 0) []) (SimpleRhs (138,10) (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "langle" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "rangle" 0)))) []))])
+,(FunctionDecl (139,1) (Ident "braces" 0) [(Equation (139,1) (FunLhs (Ident "braces" 0) []) (SimpleRhs (139,10) (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "lbrace" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "rbrace" 0)))) []))])
+,(FunctionDecl (140,1) (Ident "brackets" 0) [(Equation (140,1) (FunLhs (Ident "brackets" 0) []) (SimpleRhs (140,12) (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Variable (QualIdent (Just "Pretty") (Ident "lbracket" 0)))) (Variable (QualIdent (Just "Pretty") (Ident "rbracket" 0)))) []))])
+,(TypeSig (142,1) [(Ident "char" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (143,1) (Ident "char" 0) [(Equation (143,1) (FunLhs (Ident "char" 0) [(VariablePattern (Ident "c" 127))]) (SimpleRhs (143,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "text" 0))) (List [(Variable (QualIdent Nothing (Ident "c" 127)))])) []))])
+,(TypeSig (145,1) [(Ident "string" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (146,1) (Ident "string" 0) [(Equation (146,1) (FunLhs (Ident "string" 0) []) (SimpleRhs (146,10) (InfixApply (Variable (QualIdent (Just "Pretty") (Ident "hcat" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Lambda [(VariablePattern (Ident "c" 131))] (IfThenElse (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "elem" 0))) (Variable (QualIdent Nothing (Ident "c" 131)))) (List [(Literal (Char '\n')),(Literal (Char '\r'))])) (Variable (QualIdent (Just "Pretty") (Ident "line" 0))) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Variable (QualIdent Nothing (Ident "c" 131))))))))) []))])
+,(TypeSig (148,1) [(Ident "int" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (149,1) (Ident "int" 0) [(Equation (149,1) (FunLhs (Ident "int" 0) [(VariablePattern (Ident "n" 132))]) (SimpleRhs (149,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "text" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "n" 132)))))) []))])
+,(TypeSig (151,1) [(Ident "float" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Float" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (152,1) (Ident "float" 0) [(Equation (152,1) (FunLhs (Ident "float" 0) [(VariablePattern (Ident "x" 134))]) (SimpleRhs (152,11) (Apply (Variable (QualIdent (Just "Pretty") (Ident "text" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "x" 134)))))) []))])
+,(TypeSig (154,1) [(Ident "lparen" 0),(Ident "rparen" 0),(Ident "langle" 0),(Ident "rangle" 0),(Ident "lbrace" 0),(Ident "rbrace" 0),(Ident "lbracket" 0),(Ident "rbracket" 0),(Ident "squote" 0),(Ident "dquote" 0),(Ident "bquote" 0),(Ident "semi" 0),(Ident "colon" 0),(Ident "comma" 0),(Ident "space" 0),(Ident "dot" 0),(Ident "backslash" 0),(Ident "equals" 0)] (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))
+,(FunctionDecl (157,1) (Ident "lparen" 0) [(Equation (157,1) (FunLhs (Ident "lparen" 0) []) (SimpleRhs (157,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '('))) []))])
+,(FunctionDecl (158,1) (Ident "rparen" 0) [(Equation (158,1) (FunLhs (Ident "rparen" 0) []) (SimpleRhs (158,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char ')'))) []))])
+,(FunctionDecl (159,1) (Ident "langle" 0) [(Equation (159,1) (FunLhs (Ident "langle" 0) []) (SimpleRhs (159,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '<'))) []))])
+,(FunctionDecl (160,1) (Ident "rangle" 0) [(Equation (160,1) (FunLhs (Ident "rangle" 0) []) (SimpleRhs (160,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '>'))) []))])
+,(FunctionDecl (161,1) (Ident "lbrace" 0) [(Equation (161,1) (FunLhs (Ident "lbrace" 0) []) (SimpleRhs (161,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '{'))) []))])
+,(FunctionDecl (162,1) (Ident "rbrace" 0) [(Equation (162,1) (FunLhs (Ident "rbrace" 0) []) (SimpleRhs (162,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '}'))) []))])
+,(FunctionDecl (163,1) (Ident "lbracket" 0) [(Equation (163,1) (FunLhs (Ident "lbracket" 0) []) (SimpleRhs (163,12) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '['))) []))])
+,(FunctionDecl (164,1) (Ident "rbracket" 0) [(Equation (164,1) (FunLhs (Ident "rbracket" 0) []) (SimpleRhs (164,12) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char ']'))) []))])
+,(FunctionDecl (165,1) (Ident "squote" 0) [(Equation (165,1) (FunLhs (Ident "squote" 0) []) (SimpleRhs (165,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '\''))) []))])
+,(FunctionDecl (166,1) (Ident "dquote" 0) [(Equation (166,1) (FunLhs (Ident "dquote" 0) []) (SimpleRhs (166,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '"'))) []))])
+,(FunctionDecl (167,1) (Ident "bquote" 0) [(Equation (167,1) (FunLhs (Ident "bquote" 0) []) (SimpleRhs (167,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '`'))) []))])
+,(FunctionDecl (168,1) (Ident "semi" 0) [(Equation (168,1) (FunLhs (Ident "semi" 0) []) (SimpleRhs (168,8) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char ';'))) []))])
+,(FunctionDecl (169,1) (Ident "colon" 0) [(Equation (169,1) (FunLhs (Ident "colon" 0) []) (SimpleRhs (169,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char ':'))) []))])
+,(FunctionDecl (170,1) (Ident "comma" 0) [(Equation (170,1) (FunLhs (Ident "comma" 0) []) (SimpleRhs (170,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char ','))) []))])
+,(FunctionDecl (171,1) (Ident "space" 0) [(Equation (171,1) (FunLhs (Ident "space" 0) []) (SimpleRhs (171,9) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char ' '))) []))])
+,(FunctionDecl (172,1) (Ident "dot" 0) [(Equation (172,1) (FunLhs (Ident "dot" 0) []) (SimpleRhs (172,7) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '.'))) []))])
+,(FunctionDecl (173,1) (Ident "backslash" 0) [(Equation (173,1) (FunLhs (Ident "backslash" 0) []) (SimpleRhs (173,13) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '\\'))) []))])
+,(FunctionDecl (174,1) (Ident "equals" 0) [(Equation (174,1) (FunLhs (Ident "equals" 0) []) (SimpleRhs (174,10) (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Literal (Char '='))) []))])
+,(TypeSig (196,1) [(Ident "normalise" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) [])))
+,(FunctionDecl (197,1) (Ident "normalise" 0) [(Equation (197,1) (FunLhs (Ident "normalise" 0) []) (SimpleRhs (197,13) (Apply (Variable (QualIdent Nothing (Ident "go" 173))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0)))) [(FunctionDecl (199,3) (Ident "go" 173) [(Equation (199,3) (FunLhs (Ident "go" 173) [(VariablePattern (Ident "co" 174)),(ConstructorPattern (QualIdent (Just "Pretty") (Ident "Empty" 0)) [])]) (SimpleRhs (199,17) (Apply (Variable (QualIdent Nothing (Ident "co" 174))) (Constructor (QualIdent (Just "Pretty") (Ident "Empty" 0)))) [])),(Equation (201,3) (FunLhs (Ident "go" 173) [(VariablePattern (Ident "co" 176)),(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Open" 0)) [(VariablePattern (Ident "ts" 176))]))]) (SimpleRhs (201,21) (Apply (Apply (Variable (QualIdent Nothing (Ident "go" 173))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "co" 176))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent Nothing (Ident "open" 173)))))) (Variable (QualIdent Nothing (Ident "ts" 176)))) [])),(Equation (202,3) (FunLhs (Ident "go" 173) [(VariablePattern (Ident "co" 178)),(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Close" 0)) [(VariablePattern (Ident "ts" 178))]))]) (SimpleRhs (202,22) (Apply (Apply (Variable (QualIdent Nothing (Ident "go" 173))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "co" 178))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Constructor (QualIdent (Just "Pretty") (Ident "Close" 0)))))) (Variable (QualIdent Nothing (Ident "ts" 178)))) [])),(Equation (203,3) (FunLhs (Ident "go" 173) [(VariablePattern (Ident "co" 180)),(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Line" 0)) [(VariablePattern (Ident "s" 180)),(VariablePattern (Ident "ts" 180))]))]) (SimpleRhs (203,23) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "co" 180))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Line" 0))) (Variable (QualIdent Nothing (Ident "s" 180)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent Nothing (Ident "go" 173))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Variable (QualIdent Nothing (Ident "ts" 180)))) [])),(Equation (204,3) (FunLhs (Ident "go" 173) [(VariablePattern (Ident "co" 182)),(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Text" 0)) [(VariablePattern (Ident "s" 182)),(VariablePattern (Ident "ts" 182))]))]) (SimpleRhs (204,23) (Apply (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Text" 0))) (Variable (QualIdent Nothing (Ident "s" 182)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "go" 173))) (Variable (QualIdent Nothing (Ident "co" 182)))) (Variable (QualIdent Nothing (Ident "ts" 182)))))) [])),(Equation (205,3) (FunLhs (Ident "go" 173) [(VariablePattern (Ident "co" 184)),(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "OpenNest" 0)) [(VariablePattern (Ident "f" 184)),(VariablePattern (Ident "ts" 184))]))]) (SimpleRhs (205,27) (Apply (Apply (Constructor (QualIdent (Just "Pretty") (Ident "OpenNest" 0))) (Variable (QualIdent Nothing (Ident "f" 184)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "go" 173))) (Variable (QualIdent Nothing (Ident "co" 184)))) (Variable (QualIdent Nothing (Ident "ts" 184)))))) [])),(Equation (206,3) (FunLhs (Ident "go" 173) [(VariablePattern (Ident "co" 186)),(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "CloseNest" 0)) [(VariablePattern (Ident "ts" 186))]))]) (SimpleRhs (206,26) (Apply (Constructor (QualIdent (Just "Pretty") (Ident "CloseNest" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "go" 173))) (Variable (QualIdent Nothing (Ident "co" 186)))) (Variable (QualIdent Nothing (Ident "ts" 186)))))) []))]),(FunctionDecl (208,3) (Ident "open" 173) [(Equation (208,3) (FunLhs (Ident "open" 173) [(VariablePattern (Ident "t" 188))]) (SimpleRhs (208,12) (Case (Variable (QualIdent Nothing (Ident "t" 188))) [(Alt (208,22) (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Close" 0)) [(VariablePattern (Ident "ts" 190))]) (SimpleRhs (208,34) (Variable (QualIdent Nothing (Ident "ts" 190))) [])),(Alt (208,38) (VariablePattern (Ident "_" 193)) (SimpleRhs (208,43) (Apply (Constructor (QualIdent (Just "Pretty") (Ident "Open" 0))) (Variable (QualIdent Nothing (Ident "t" 188)))) []))]) []))])]))])
+,(FunctionDecl (210,1) (Ident "doc2Tokens" 0) [(Equation (210,1) (FunLhs (Ident "doc2Tokens" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Doc" 0)) [(VariablePattern (Ident "d" 195))]))]) (SimpleRhs (210,22) (Apply (Variable (QualIdent (Just "Pretty") (Ident "normalise" 0))) (Paren (Apply (Variable (QualIdent Nothing (Ident "d" 195))) (Constructor (QualIdent (Just "Pretty") (Ident "Empty" 0)))))) []))])
+,(TypeSig (213,1) [(Ident "pretty" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Width" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(FunctionDecl (214,1) (Ident "pretty" 0) [(Equation (214,1) (FunLhs (Ident "pretty" 0) [(VariablePattern (Ident "w" 197)),(VariablePattern (Ident "d" 197))]) (SimpleRhs (214,14) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "noGroup" 0))) (Paren (Apply (Variable (QualIdent (Just "Pretty") (Ident "doc2Tokens" 0))) (Variable (QualIdent Nothing (Ident "d" 197)))))) (Variable (QualIdent Nothing (Ident "w" 197)))) (Literal (Int (Ident "_" 199) 1))) (Variable (QualIdent Nothing (Ident "w" 197)))) (List [(Literal (Int (Ident "_" 200) 0))])) []))])
+,(FunctionDecl (217,1) (Ident "length" 0) [(Equation (217,1) (FunLhs (Ident "length" 0) []) (SimpleRhs (217,10) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (Paren (InfixApply (List [(Literal (Int (Ident "_" 203) 5)),(Literal (Int (Ident "_" 204) 6)),(Literal (Int (Ident "_" 205) 7))]) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (EnumFromTo (Literal (Int (Ident "_" 206) 16)) (Literal (Int (Ident "_" 207) 31)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "ord" 0)))))))) []))])
+,(TypeSig (219,1) [(Ident "noGroup" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Width" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Position" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Out" 0)) [])))))
+,(FunctionDecl (220,1) (Ident "noGroup" 0) [(Equation (220,1) (FunLhs (Ident "noGroup" 0) [(ConstructorPattern (QualIdent (Just "Pretty") (Ident "Empty" 0)) []),(VariablePattern (Ident "_" 209)),(VariablePattern (Ident "_" 210)),(VariablePattern (Ident "_" 211)),(VariablePattern (Ident "_" 212))]) (SimpleRhs (220,25) (Literal (String "")) [])),(Equation (221,1) (FunLhs (Ident "noGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Text" 0)) [(VariablePattern (Ident "t" 214)),(VariablePattern (Ident "ts" 214))])),(VariablePattern (Ident "w" 214)),(VariablePattern (Ident "p" 214)),(VariablePattern (Ident "r" 214)),(VariablePattern (Ident "ms" 214))]) (SimpleRhs (221,32) (InfixApply (Variable (QualIdent Nothing (Ident "t" 214))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "noGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 214)))) (Variable (QualIdent Nothing (Ident "w" 214)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 214))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "l" 215)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "r" 214))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "l" 215)))))) (Variable (QualIdent Nothing (Ident "ms" 214))))) [(PatternDecl (223,3) (VariablePattern (Ident "l" 215)) (SimpleRhs (223,7) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "t" 214)))) []))])),(Equation (224,1) (FunLhs (Ident "noGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Line" 0)) [(VariablePattern (Ident "_" 218)),(VariablePattern (Ident "ts" 217))])),(VariablePattern (Ident "w" 217)),(VariablePattern (Ident "p" 217)),(VariablePattern (Ident "_" 219)),(AsPattern (Ident "ms" 217) (ParenPattern (InfixPattern (VariablePattern (Ident "m" 217)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 220)))))]) (SimpleRhs (225,3) (InfixApply (Literal (Char '\n')) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "replicate" 0))) (Variable (QualIdent Nothing (Ident "m" 217)))) (Literal (Char ' '))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "noGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 217)))) (Variable (QualIdent Nothing (Ident "w" 217)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 217))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 222) 1))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "w" 217))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "m" 217)))))) (Variable (QualIdent Nothing (Ident "ms" 217)))))) [])),(Equation (226,1) (FunLhs (Ident "noGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Open" 0)) [(VariablePattern (Ident "ts" 223))])),(VariablePattern (Ident "w" 223)),(VariablePattern (Ident "p" 223)),(VariablePattern (Ident "r" 223)),(VariablePattern (Ident "ms" 223))]) (SimpleRhs (226,30) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "oneGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 223)))) (Variable (QualIdent Nothing (Ident "w" 223)))) (Variable (QualIdent Nothing (Ident "p" 223)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 223))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "r" 223)))))) (Paren (Lambda [(VariablePattern (Ident "_" 226)),(VariablePattern (Ident "c" 225))] (Variable (QualIdent Nothing (Ident "c" 225)))))) (Variable (QualIdent Nothing (Ident "r" 223)))) (Variable (QualIdent Nothing (Ident "ms" 223)))) [])),(Equation (227,1) (FunLhs (Ident "noGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Close" 0)) [(VariablePattern (Ident "ts" 227))])),(VariablePattern (Ident "w" 227)),(VariablePattern (Ident "p" 227)),(VariablePattern (Ident "r" 227)),(VariablePattern (Ident "ms" 227))]) (SimpleRhs (227,31) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "noGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 227)))) (Variable (QualIdent Nothing (Ident "w" 227)))) (Variable (QualIdent Nothing (Ident "p" 227)))) (Variable (QualIdent Nothing (Ident "r" 227)))) (Variable (QualIdent Nothing (Ident "ms" 227)))) [])),(Equation (228,1) (FunLhs (Ident "noGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "OpenNest" 0)) [(VariablePattern (Ident "f" 229)),(VariablePattern (Ident "ts" 229))])),(VariablePattern (Ident "w" 229)),(VariablePattern (Ident "p" 229)),(VariablePattern (Ident "r" 229)),(VariablePattern (Ident "ms" 229))]) (SimpleRhs (228,36) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "noGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 229)))) (Variable (QualIdent Nothing (Ident "w" 229)))) (Variable (QualIdent Nothing (Ident "p" 229)))) (Variable (QualIdent Nothing (Ident "r" 229)))) (Paren (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 229))) (Variable (QualIdent Nothing (Ident "ms" 229)))) (Variable (QualIdent Nothing (Ident "r" 229)))) (Variable (QualIdent Nothing (Ident "w" 229)))))) [])),(Equation (229,1) (FunLhs (Ident "noGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "CloseNest" 0)) [(VariablePattern (Ident "ts" 231))])),(VariablePattern (Ident "w" 231)),(VariablePattern (Ident "p" 231)),(VariablePattern (Ident "r" 231)),(VariablePattern (Ident "ms" 231))]) (SimpleRhs (229,35) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "noGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 231)))) (Variable (QualIdent Nothing (Ident "w" 231)))) (Variable (QualIdent Nothing (Ident "p" 231)))) (Variable (QualIdent Nothing (Ident "r" 231)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "ms" 231)))))) []))])
+,(TypeSig (231,1) [(Ident "oneGroup" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Width" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Position" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "EndPosition" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "OutGroupPrefix" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Out" 0)) [])))))))
+,(FunctionDecl (232,1) (Ident "oneGroup" 0) [(Equation (232,1) (FunLhs (Ident "oneGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Text" 0)) [(VariablePattern (Ident "t" 233)),(VariablePattern (Ident "ts" 233))])),(VariablePattern (Ident "w" 233)),(VariablePattern (Ident "p" 233)),(VariablePattern (Ident "e" 233)),(VariablePattern (Ident "outGrpPre" 233))]) (SimpleRhs (233,3) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "pruneOne" 0))) (Variable (QualIdent Nothing (Ident "ts" 233)))) (Variable (QualIdent Nothing (Ident "w" 233)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 233))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "l" 234)))))) (Variable (QualIdent Nothing (Ident "e" 233)))) (Paren (Lambda [(VariablePattern (Ident "h" 238)),(VariablePattern (Ident "c" 238))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPre" 233))) (Variable (QualIdent Nothing (Ident "h" 238)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "outText" 234))) (Variable (QualIdent Nothing (Ident "c" 238))))))))) [(PatternDecl (235,3) (VariablePattern (Ident "l" 234)) (SimpleRhs (235,7) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "t" 233)))) [])),(FunctionDecl (236,3) (Ident "outText" 234) [(Equation (236,3) (FunLhs (Ident "outText" 234) [(VariablePattern (Ident "c" 236)),(VariablePattern (Ident "r" 236)),(VariablePattern (Ident "ms" 236))]) (SimpleRhs (236,20) (InfixApply (Variable (QualIdent Nothing (Ident "t" 233))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 236))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "r" 236))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "l" 234)))))) (Variable (QualIdent Nothing (Ident "ms" 236))))) []))])])),(Equation (237,1) (FunLhs (Ident "oneGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Line" 0)) [(VariablePattern (Ident "s" 239)),(VariablePattern (Ident "ts" 239))])),(VariablePattern (Ident "w" 239)),(VariablePattern (Ident "p" 239)),(VariablePattern (Ident "e" 239)),(VariablePattern (Ident "outGrpPre" 239))]) (SimpleRhs (238,3) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "pruneOne" 0))) (Variable (QualIdent Nothing (Ident "ts" 239)))) (Variable (QualIdent Nothing (Ident "w" 239)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 239))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "lens" 240)))))) (Variable (QualIdent Nothing (Ident "e" 239)))) (Paren (Lambda [(VariablePattern (Ident "h" 245)),(VariablePattern (Ident "c" 245))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPre" 239))) (Variable (QualIdent Nothing (Ident "h" 245)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "outLine" 240))) (Variable (QualIdent Nothing (Ident "h" 245)))) (Variable (QualIdent Nothing (Ident "c" 245))))))))) [(PatternDecl (240,3) (VariablePattern (Ident "lens" 240)) (SimpleRhs (240,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "s" 239)))) [])),(FunctionDecl (241,3) (Ident "outLine" 240) [(Equation (241,3) (FunLhs (Ident "outLine" 240) [(VariablePattern (Ident "h" 242)),(VariablePattern (Ident "c" 242)),(VariablePattern (Ident "r" 242)),(AsPattern (Ident "ms" 242) (ParenPattern (InfixPattern (VariablePattern (Ident "m" 242)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 243)))))]) (SimpleRhs (242,5) (IfThenElse (Variable (QualIdent Nothing (Ident "h" 242))) (InfixApply (Variable (QualIdent Nothing (Ident "s" 239))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 242))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "r" 242))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "lens" 240)))))) (Variable (QualIdent Nothing (Ident "ms" 242))))) (InfixApply (Literal (Char '\n')) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "replicate" 0))) (Variable (QualIdent Nothing (Ident "m" 242)))) (Literal (Char ' '))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 242))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "w" 239))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "m" 242)))))) (Variable (QualIdent Nothing (Ident "ms" 242))))))) []))])])),(Equation (243,1) (FunLhs (Ident "oneGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Open" 0)) [(VariablePattern (Ident "ts" 246))])),(VariablePattern (Ident "w" 246)),(VariablePattern (Ident "p" 246)),(VariablePattern (Ident "e" 246)),(VariablePattern (Ident "outGrpPre" 246))]) (SimpleRhs (244,3) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "multiGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 246)))) (Variable (QualIdent Nothing (Ident "w" 246)))) (Variable (QualIdent Nothing (Ident "p" 246)))) (Variable (QualIdent Nothing (Ident "e" 246)))) (Variable (QualIdent Nothing (Ident "outGrpPre" 246)))) (Variable (QualIdent (Just "Dequeue") (Ident "empty" 0)))) (Variable (QualIdent Nothing (Ident "p" 246)))) (Paren (Lambda [(VariablePattern (Ident "_" 249)),(VariablePattern (Ident "c" 248))] (Variable (QualIdent Nothing (Ident "c" 248)))))) [])),(Equation (245,1) (FunLhs (Ident "oneGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Close" 0)) [(VariablePattern (Ident "ts" 250))])),(VariablePattern (Ident "w" 250)),(VariablePattern (Ident "p" 250)),(VariablePattern (Ident "e" 250)),(VariablePattern (Ident "outGrpPre" 250))]) (SimpleRhs (245,39) (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPre" 250))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 250))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Variable (QualIdent Nothing (Ident "e" 250)))))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "noGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 250)))) (Variable (QualIdent Nothing (Ident "w" 250)))) (Variable (QualIdent Nothing (Ident "p" 250)))))) [])),(Equation (246,1) (FunLhs (Ident "oneGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "OpenNest" 0)) [(VariablePattern (Ident "f" 252)),(VariablePattern (Ident "ts" 252))])),(VariablePattern (Ident "w" 252)),(VariablePattern (Ident "p" 252)),(VariablePattern (Ident "e" 252)),(VariablePattern (Ident "outGrpPre" 252))]) (SimpleRhs (247,3) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "oneGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 252)))) (Variable (QualIdent Nothing (Ident "w" 252)))) (Variable (QualIdent Nothing (Ident "p" 252)))) (Variable (QualIdent Nothing (Ident "e" 252)))) (Paren (Lambda [(VariablePattern (Ident "h" 254)),(VariablePattern (Ident "c" 254))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPre" 252))) (Variable (QualIdent Nothing (Ident "h" 254)))) (Paren (Lambda [(VariablePattern (Ident "r" 255)),(VariablePattern (Ident "ms" 255))] (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 254))) (Variable (QualIdent Nothing (Ident "r" 255)))) (Paren (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 252))) (Variable (QualIdent Nothing (Ident "ms" 255)))) (Variable (QualIdent Nothing (Ident "r" 255)))) (Variable (QualIdent Nothing (Ident "w" 252)))))))))))) [])),(Equation (248,1) (FunLhs (Ident "oneGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "CloseNest" 0)) [(VariablePattern (Ident "ts" 256))])),(VariablePattern (Ident "w" 256)),(VariablePattern (Ident "p" 256)),(VariablePattern (Ident "e" 256)),(VariablePattern (Ident "outGrpPre" 256))]) (SimpleRhs (249,3) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "oneGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 256)))) (Variable (QualIdent Nothing (Ident "w" 256)))) (Variable (QualIdent Nothing (Ident "p" 256)))) (Variable (QualIdent Nothing (Ident "e" 256)))) (Paren (Lambda [(VariablePattern (Ident "h" 258)),(VariablePattern (Ident "c" 258))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPre" 256))) (Variable (QualIdent Nothing (Ident "h" 258)))) (Paren (Lambda [(VariablePattern (Ident "r" 259)),(VariablePattern (Ident "ms" 259))] (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 258))) (Variable (QualIdent Nothing (Ident "r" 259)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "ms" 259)))))))))))) []))])
+,(TypeSig (251,1) [(Ident "multiGroup" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Width" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Position" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "EndPosition" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "OutGroupPrefix" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "StartPosition" 0)) []),(ConstructorType (QualIdent Nothing (Ident "OutGroupPrefix" 0)) [])])]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "StartPosition" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "OutGroupPrefix" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Out" 0)) []))))))))))
+,(FunctionDecl (254,1) (Ident "multiGroup" 0) [(Equation (254,1) (FunLhs (Ident "multiGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Text" 0)) [(VariablePattern (Ident "t" 260)),(VariablePattern (Ident "ts" 260))])),(VariablePattern (Ident "w" 260)),(VariablePattern (Ident "p" 260)),(VariablePattern (Ident "e" 260)),(VariablePattern (Ident "outGrpPreOuter" 260)),(VariablePattern (Ident "qs" 260)),(VariablePattern (Ident "s" 260)),(VariablePattern (Ident "outGrpPreInner" 260))]) (SimpleRhs (255,3) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "pruneMulti" 0))) (Variable (QualIdent Nothing (Ident "ts" 260)))) (Variable (QualIdent Nothing (Ident "w" 260)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 260))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "l" 261)))))) (Variable (QualIdent Nothing (Ident "e" 260)))) (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 260)))) (Variable (QualIdent Nothing (Ident "qs" 260)))) (Variable (QualIdent Nothing (Ident "s" 260)))) (Paren (Lambda [(VariablePattern (Ident "h" 265)),(VariablePattern (Ident "c" 265))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPreInner" 260))) (Variable (QualIdent Nothing (Ident "h" 265)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "outText" 261))) (Variable (QualIdent Nothing (Ident "c" 265))))))))) [(PatternDecl (258,3) (VariablePattern (Ident "l" 261)) (SimpleRhs (258,7) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "t" 260)))) [])),(FunctionDecl (259,3) (Ident "outText" 261) [(Equation (259,3) (FunLhs (Ident "outText" 261) [(VariablePattern (Ident "c" 263)),(VariablePattern (Ident "r" 263)),(VariablePattern (Ident "ms" 263))]) (SimpleRhs (259,20) (InfixApply (Variable (QualIdent Nothing (Ident "t" 260))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 263))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "r" 263))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "l" 261)))))) (Variable (QualIdent Nothing (Ident "ms" 263))))) []))])])),(Equation (260,1) (FunLhs (Ident "multiGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Line" 0)) [(VariablePattern (Ident "s" 266)),(VariablePattern (Ident "ts" 266))])),(VariablePattern (Ident "w" 266)),(VariablePattern (Ident "p" 266)),(VariablePattern (Ident "e" 266)),(VariablePattern (Ident "outGrpPreOuter" 266)),(VariablePattern (Ident "qs" 266)),(VariablePattern (Ident "si" 266)),(VariablePattern (Ident "outGrpPreInner" 266))]) (SimpleRhs (261,3) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "pruneMulti" 0))) (Variable (QualIdent Nothing (Ident "ts" 266)))) (Variable (QualIdent Nothing (Ident "w" 266)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 266))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "lens" 267)))))) (Variable (QualIdent Nothing (Ident "e" 266)))) (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 266)))) (Variable (QualIdent Nothing (Ident "qs" 266)))) (Variable (QualIdent Nothing (Ident "si" 266)))) (Paren (Lambda [(VariablePattern (Ident "h" 272)),(VariablePattern (Ident "c" 272))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPreInner" 266))) (Variable (QualIdent Nothing (Ident "h" 272)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "outLine" 267))) (Variable (QualIdent Nothing (Ident "h" 272)))) (Variable (QualIdent Nothing (Ident "c" 272))))))))) [(PatternDecl (264,3) (VariablePattern (Ident "lens" 267)) (SimpleRhs (264,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "s" 266)))) [])),(FunctionDecl (265,3) (Ident "outLine" 267) [(Equation (265,3) (FunLhs (Ident "outLine" 267) [(VariablePattern (Ident "h" 269)),(VariablePattern (Ident "c" 269)),(VariablePattern (Ident "r" 269)),(AsPattern (Ident "ms" 269) (ParenPattern (InfixPattern (VariablePattern (Ident "m" 269)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 270)))))]) (SimpleRhs (266,5) (IfThenElse (Variable (QualIdent Nothing (Ident "h" 269))) (InfixApply (Variable (QualIdent Nothing (Ident "s" 266))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 269))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "r" 269))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "lens" 267)))))) (Variable (QualIdent Nothing (Ident "ms" 269))))) (InfixApply (Literal (Char '\n')) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "replicate" 0))) (Variable (QualIdent Nothing (Ident "m" 269)))) (Literal (Char ' '))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 269))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "w" 266))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "m" 269)))))) (Variable (QualIdent Nothing (Ident "ms" 269))))))) []))])])),(Equation (267,1) (FunLhs (Ident "multiGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Open" 0)) [(VariablePattern (Ident "ts" 273))])),(VariablePattern (Ident "w" 273)),(VariablePattern (Ident "p" 273)),(VariablePattern (Ident "e" 273)),(VariablePattern (Ident "outGrpPreOuter" 273)),(VariablePattern (Ident "qs" 273)),(VariablePattern (Ident "si" 273)),(VariablePattern (Ident "outGrpPreInner" 273))]) (SimpleRhs (268,3) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "multiGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 273)))) (Variable (QualIdent Nothing (Ident "w" 273)))) (Variable (QualIdent Nothing (Ident "p" 273)))) (Variable (QualIdent Nothing (Ident "e" 273)))) (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 273)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Dequeue") (Ident "cons" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "si" 273))),(Variable (QualIdent Nothing (Ident "outGrpPreInner" 273)))])) (Variable (QualIdent Nothing (Ident "qs" 273)))))) (Variable (QualIdent Nothing (Ident "p" 273)))) (Paren (Lambda [(VariablePattern (Ident "_" 276)),(VariablePattern (Ident "c" 275))] (Variable (QualIdent Nothing (Ident "c" 275)))))) [])),(Equation (269,1) (FunLhs (Ident "multiGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "Close" 0)) [(VariablePattern (Ident "ts" 277))])),(VariablePattern (Ident "w" 277)),(VariablePattern (Ident "p" 277)),(VariablePattern (Ident "e" 277)),(VariablePattern (Ident "outGrpPreOuter" 277)),(VariablePattern (Ident "qs" 277)),(VariablePattern (Ident "si" 277)),(VariablePattern (Ident "outGrpPreInner" 277))]) (SimpleRhs (270,3) (Case (Apply (Variable (QualIdent (Just "Dequeue") (Ident "matchHead" 0))) (Variable (QualIdent Nothing (Ident "qs" 277)))) [(Alt (271,5) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) []) (SimpleRhs (271,16) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "oneGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 277)))) (Variable (QualIdent Nothing (Ident "w" 277)))) (Variable (QualIdent Nothing (Ident "p" 277)))) (Variable (QualIdent Nothing (Ident "e" 277)))) (Paren (Lambda [(VariablePattern (Ident "h" 281)),(VariablePattern (Ident "c" 281))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 277))) (Variable (QualIdent Nothing (Ident "h" 281)))) (Paren (Lambda [(VariablePattern (Ident "ri" 282))] (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPreInner" 277))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 277))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "si" 277))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "ri" 282))))))) (Variable (QualIdent Nothing (Ident "c" 281)))) (Variable (QualIdent Nothing (Ident "ri" 282)))))))))) [])),(Alt (274,5) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(TuplePattern [(TuplePattern [(VariablePattern (Ident "s" 283)),(VariablePattern (Ident "outGrpPre" 283))]),(VariablePattern (Ident "qs'" 283))])]) (SimpleRhs (275,7) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "multiGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 277)))) (Variable (QualIdent Nothing (Ident "w" 277)))) (Variable (QualIdent Nothing (Ident "p" 277)))) (Variable (QualIdent Nothing (Ident "e" 277)))) (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 277)))) (Variable (QualIdent Nothing (Ident "qs'" 283)))) (Variable (QualIdent Nothing (Ident "s" 283)))) (Paren (Lambda [(VariablePattern (Ident "h" 285)),(VariablePattern (Ident "c" 285))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPre" 283))) (Variable (QualIdent Nothing (Ident "h" 285)))) (Paren (Lambda [(VariablePattern (Ident "ri" 286))] (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPreInner" 277))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "p" 277))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "si" 277))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "ri" 286))))))) (Variable (QualIdent Nothing (Ident "c" 285)))) (Variable (QualIdent Nothing (Ident "ri" 286)))))))))) []))]) [])),(Equation (277,1) (FunLhs (Ident "multiGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "OpenNest" 0)) [(VariablePattern (Ident "f" 287)),(VariablePattern (Ident "ts" 287))])),(VariablePattern (Ident "w" 287)),(VariablePattern (Ident "p" 287)),(VariablePattern (Ident "e" 287)),(VariablePattern (Ident "outGrpPreOuter" 287)),(VariablePattern (Ident "qs" 287)),(VariablePattern (Ident "si" 287)),(VariablePattern (Ident "outGrpPreInner" 287))]) (SimpleRhs (278,3) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "multiGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 287)))) (Variable (QualIdent Nothing (Ident "w" 287)))) (Variable (QualIdent Nothing (Ident "p" 287)))) (Variable (QualIdent Nothing (Ident "e" 287)))) (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 287)))) (Variable (QualIdent Nothing (Ident "qs" 287)))) (Variable (QualIdent Nothing (Ident "si" 287)))) (Paren (Lambda [(VariablePattern (Ident "h" 289)),(VariablePattern (Ident "c" 289))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPreInner" 287))) (Variable (QualIdent Nothing (Ident "h" 289)))) (Paren (Lambda [(VariablePattern (Ident "r" 290)),(VariablePattern (Ident "ms" 290))] (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 289))) (Variable (QualIdent Nothing (Ident "r" 290)))) (Paren (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 287))) (Variable (QualIdent Nothing (Ident "ms" 290)))) (Variable (QualIdent Nothing (Ident "r" 290)))) (Variable (QualIdent Nothing (Ident "w" 287)))))))))))) [])),(Equation (280,1) (FunLhs (Ident "multiGroup" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Pretty") (Ident "CloseNest" 0)) [(VariablePattern (Ident "ts" 291))])),(VariablePattern (Ident "w" 291)),(VariablePattern (Ident "p" 291)),(VariablePattern (Ident "e" 291)),(VariablePattern (Ident "outGrpPreOuter" 291)),(VariablePattern (Ident "qs" 291)),(VariablePattern (Ident "si" 291)),(VariablePattern (Ident "outGrpPreInner" 291))]) (SimpleRhs (281,3) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "multiGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 291)))) (Variable (QualIdent Nothing (Ident "w" 291)))) (Variable (QualIdent Nothing (Ident "p" 291)))) (Variable (QualIdent Nothing (Ident "e" 291)))) (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 291)))) (Variable (QualIdent Nothing (Ident "qs" 291)))) (Variable (QualIdent Nothing (Ident "si" 291)))) (Paren (Lambda [(VariablePattern (Ident "h" 293)),(VariablePattern (Ident "c" 293))] (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPreInner" 291))) (Variable (QualIdent Nothing (Ident "h" 293)))) (Paren (Lambda [(VariablePattern (Ident "r" 294)),(VariablePattern (Ident "ms" 294))] (Apply (Apply (Variable (QualIdent Nothing (Ident "c" 293))) (Variable (QualIdent Nothing (Ident "r" 294)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "ms" 294)))))))))))) []))])
+,(TypeSig (285,1) [(Ident "pruneOne" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Width" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Position" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "EndPosition" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "OutGroupPrefix" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Out" 0)) [])))))))
+,(FunctionDecl (286,1) (Ident "pruneOne" 0) [(Equation (286,1) (FunLhs (Ident "pruneOne" 0) [(VariablePattern (Ident "ts" 295)),(VariablePattern (Ident "w" 295)),(VariablePattern (Ident "p" 295)),(VariablePattern (Ident "e" 295)),(VariablePattern (Ident "outGrpPre" 295))]) (SimpleRhs (287,3) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "p" 295))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Variable (QualIdent Nothing (Ident "e" 295)))) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "oneGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 295)))) (Variable (QualIdent Nothing (Ident "w" 295)))) (Variable (QualIdent Nothing (Ident "p" 295)))) (Variable (QualIdent Nothing (Ident "e" 295)))) (Variable (QualIdent Nothing (Ident "outGrpPre" 295)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPre" 295))) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "noGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 295)))) (Variable (QualIdent Nothing (Ident "w" 295)))) (Variable (QualIdent Nothing (Ident "p" 295))))))) []))])
+,(TypeSig (290,1) [(Ident "pruneMulti" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tokens" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Width" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Position" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "EndPosition" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "OutGroupPrefix" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Queue" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "StartPosition" 0)) []),(ConstructorType (QualIdent Nothing (Ident "OutGroupPrefix" 0)) [])])]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "StartPosition" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "OutGroupPrefix" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Out" 0)) []))))))))))
+,(FunctionDecl (293,1) (Ident "pruneMulti" 0) [(Equation (293,1) (FunLhs (Ident "pruneMulti" 0) [(VariablePattern (Ident "ts" 297)),(VariablePattern (Ident "w" 297)),(VariablePattern (Ident "p" 297)),(VariablePattern (Ident "e" 297)),(VariablePattern (Ident "outGrpPreOuter" 297)),(VariablePattern (Ident "qs" 297)),(VariablePattern (Ident "si" 297)),(VariablePattern (Ident "outGrpPreInner" 297))]) (SimpleRhs (294,3) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "p" 297))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Variable (QualIdent Nothing (Ident "e" 297)))) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "multiGroup" 0))) (Variable (QualIdent Nothing (Ident "ts" 297)))) (Variable (QualIdent Nothing (Ident "w" 297)))) (Variable (QualIdent Nothing (Ident "p" 297)))) (Variable (QualIdent Nothing (Ident "e" 297)))) (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 297)))) (Variable (QualIdent Nothing (Ident "qs" 297)))) (Variable (QualIdent Nothing (Ident "si" 297)))) (Variable (QualIdent Nothing (Ident "outGrpPreInner" 297)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "outGrpPreOuter" 297))) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))) (Paren (Lambda [(VariablePattern (Ident "r" 299))] (Apply (Paren (Case (Apply (Variable (QualIdent (Just "Dequeue") (Ident "matchLast" 0))) (Variable (QualIdent Nothing (Ident "qs" 297)))) [(Alt (297,23) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Nothing" 0)) []) (SimpleRhs (297,34) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "pruneOne" 0))) (Variable (QualIdent Nothing (Ident "ts" 297)))) (Variable (QualIdent Nothing (Ident "w" 297)))) (Variable (QualIdent Nothing (Ident "p" 297)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "si" 297))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "r" 299)))))) (Variable (QualIdent Nothing (Ident "outGrpPreInner" 297)))) [])),(Alt (298,23) (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(TuplePattern [(TuplePattern [(VariablePattern (Ident "s" 302)),(VariablePattern (Ident "outGrpPre" 302))]),(VariablePattern (Ident "qs'" 302))])]) (SimpleRhs (299,25) (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "pruneMulti" 0))) (Variable (QualIdent Nothing (Ident "ts" 297)))) (Variable (QualIdent Nothing (Ident "w" 297)))) (Variable (QualIdent Nothing (Ident "p" 297)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "s" 302))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "r" 299)))))) (Variable (QualIdent Nothing (Ident "outGrpPre" 302)))) (Variable (QualIdent Nothing (Ident "qs'" 302)))) (Variable (QualIdent Nothing (Ident "si" 297)))) (Variable (QualIdent Nothing (Ident "outGrpPreInner" 297)))) []))])) (Variable (QualIdent Nothing (Ident "r" 299)))))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Pretty.efc b/src/lib/Curry/Module/.curry/Pretty.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Pretty.efc
@@ -0,0 +1,1 @@
+Prog "Pretty" ["Dequeue","Prelude"] [TypeSyn ((Nothing,Nothing,"Pretty","Layout")) Private [] (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]),TypeSyn ((Nothing,Nothing,"Pretty","Horizontal")) Private [] (TCons ((Nothing,Nothing,"Prelude","Bool")) []),TypeSyn ((Nothing,Nothing,"Pretty","Remaining")) Private [] (TCons ((Nothing,Nothing,"Prelude","Int")) []),TypeSyn ((Nothing,Nothing,"Pretty","Width")) Private [] (TCons ((Nothing,Nothing,"Prelude","Int")) []),TypeSyn ((Nothing,Nothing,"Pretty","Position")) Private [] (TCons ((Nothing,Nothing,"Prelude","Int")) []),TypeSyn ((Nothing,Nothing,"Pretty","StartPosition")) Private [] (TCons ((Nothing,Nothing,"Prelude","Int")) []),TypeSyn ((Nothing,Nothing,"Pretty","EndPosition")) Private [] (TCons ((Nothing,Nothing,"Prelude","Int")) []),TypeSyn ((Nothing,Nothing,"Pretty","Out")) Private [] (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))),TypeSyn ((Nothing,Nothing,"Pretty","OutGroupPrefix")) Private [] (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))),TypeSyn ((Nothing,Nothing,"Pretty","Margins")) Private [] (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]),Type ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) Public [] [Cons ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) 1 Private [FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (TCons ((Nothing,Nothing,"Pretty","Tokens")) [])]],Type ((Nothing,Nothing,"Pretty","Tokens")) Private [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Text")) 2 Private [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Pretty","Tokens")) []],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Line")) 2 Private [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Pretty","Tokens")) []],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) 1 Private [TCons ((Nothing,Nothing,"Pretty","Tokens")) []],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Close")) 1 Private [TCons ((Nothing,Nothing,"Pretty","Tokens")) []],Cons ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),"Pretty","Empty")) 0 Private [],Cons ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) 2 Private [FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))),TCons ((Nothing,Nothing,"Pretty","Tokens")) []],Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) 1 Private [TCons ((Nothing,Nothing,"Pretty","Tokens")) []]]] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","deDoc")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (TCons ((Nothing,Nothing,"Pretty","Tokens")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) [(Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),2)]) (Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),2)))])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","empty")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","text")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","text")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Text")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","linesep")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) [],Comb (ConsPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Line")) []])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","line")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","linesep")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","linebreak")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","linesep")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","softline")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","group")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","line")) []])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","softbreak")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","group")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","linebreak")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","group")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","deDoc")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1))],Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Close")) []]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","nest")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) [Comb (FuncPartCall 3) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Pretty","nest._#lambda2")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","deDoc")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))],Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) []]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Pretty","nest._#lambda2")) 4 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","hang")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) [Comb (FuncPartCall 3) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Pretty","hang._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","deDoc")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))],Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) []]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Pretty","hang._#lambda3")) 4 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","align")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","hang")) [Lit (Intc  0)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","combine")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","deDoc")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","deDoc")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<+>")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","combine")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","space")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<$>")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","combine")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","line")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","</>")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","combine")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","softline")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<$$>")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","combine")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","linebreak")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<//>")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","combine")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","softbreak")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","compose")) 2 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","foldr1")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","hsep")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","compose")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<+>")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","vsep")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","compose")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<$>")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","fillSep")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","compose")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","</>")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","sep")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","group")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","vsep")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","hcat")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","compose")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","vcat")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","compose")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<$$>")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","fillCat")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","compose")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<//>")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","cat")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","group")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","vcat")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Pretty","punctuate")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Pretty","punctuate.go.75")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Pretty","punctuate.go.75")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Pretty","punctuate.go.75")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))))),"Pretty","encloseSep")) 4 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","align")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","cat")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),6))]]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))))),"Pretty","hEncloseSep")) 4 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","align")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","hcat")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),6))]]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))))),"Pretty","fillEncloseSep")) 4 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","align")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","hcat")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []])),"Pretty","fillEncloseSep.withSoftBreaks.96")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),6))]]]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []])),"Pretty","fillEncloseSep.withSoftBreaks.96")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","group")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","linebreak")) [],Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","group")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","linebreak")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","group")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","linebreak")) []]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []])),"Pretty","fillEncloseSep.withSoftBreaks.96")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]),3))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","list")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))))),"Pretty","fillEncloseSep")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lbracket")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rbracket")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","comma")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","tupled")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))))),"Pretty","fillEncloseSep")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lparen")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rparen")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","comma")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","semiBraces")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Pretty","Doc")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") []))))),"Pretty","fillEncloseSep")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lbrace")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rbrace")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","semi")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),3))],Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","squotes")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","squote")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","squote")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","dquotes")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","dquote")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","dquote")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","bquotes")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","bquote")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","bquote")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","parens")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lparen")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rparen")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","angles")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","langle")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rangle")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","braces")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lbrace")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rbrace")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","brackets")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lbracket")) [],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rbracket")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","text")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","string")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Prelude",".")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","hcat")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Pretty","Doc") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","string._#lambda4")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","string._#lambda4")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\r'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","line")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","int")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","text")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","float")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Float")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Float") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","text")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Float") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Float") []),1))]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lparen")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '(')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rparen")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  ')')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","langle")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '<')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rangle")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '>')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lbrace")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '{')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rbrace")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '}')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","lbracket")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '[')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","rbracket")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  ']')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","squote")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '\'')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","dquote")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '"')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","bquote")) 0 Private (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '`')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","semi")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  ';')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","colon")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  ':')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","comma")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  ',')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","space")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  ' ')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","dot")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '.')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","backslash")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '\\')])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Doc") []),"Pretty","equals")) 0 Public (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Lit (Charc  '=')])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","normalise")) 0 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (TCons ((Nothing,Nothing,"Pretty","Tokens")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","normalise.go.173")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Prelude","id")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","normalise.open.173")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (TCons ((Nothing,Nothing,"Pretty","Tokens")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Close")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),2)]) (Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Text")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),4)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Line")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),"Pretty","Empty")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))]),Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),8),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))])])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","normalise.go.173")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (TCons ((Nothing,Nothing,"Pretty","Tokens")) [])) (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (TCons ((Nothing,Nothing,"Pretty","Tokens")) []))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),1),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),"Pretty","Empty")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),"Pretty","Empty")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),3)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","normalise.go.173")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","normalise.open.173")) []],Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),3))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Close")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),4)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","normalise.go.173")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),1)),Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Close")) []],Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),4))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Line")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Line")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","normalise.go.173")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Prelude","id")) []]]],Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),6))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Text")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),8)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Text")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","normalise.go.173")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),8))]]),Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),9),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),9)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","normalise.go.173")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),11)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","normalise.go.173")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),1)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),11))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","doc2Tokens")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Tokens")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","Doc")) [(Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),2)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","normalise")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),"Pretty","Empty")) []]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Pretty","pretty")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","doc2Tokens")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Doc") []),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  0),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Pretty","length")) 0 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  5),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  6),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  7),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","enumFromTo")) [Lit (Intc  16),Lit (Intc  31)]]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) []]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),"Pretty","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Text")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),7)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 15) (TVar 16)) (FuncType (TVar 15) (TVar 16))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Pretty","length")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]])),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Line")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),11),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),12)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","replicate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11)),Lit (Charc  ' ')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  1)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]]])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),13)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),13)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Pretty","noGroup._#lambda6")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Close")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),14)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),14)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]),Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),15),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),16)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),15)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),17)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),17)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Pretty","noGroup._#lambda6")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),2)] (Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),2)))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Text")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),7)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 11) (TVar 12)) (FuncType (TVar 11) (TVar 12))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Pretty","length")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","pruneOne")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup._#lambda7")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]])),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Line")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 13) (TVar 14)) (FuncType (TVar 13) (TVar 14))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Pretty","length")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","pruneOne")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","oneGroup._#lambda8")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),12)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","multiGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),12)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),"Dequeue","empty")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Pretty","oneGroup._#lambda9")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Close")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),13)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),13)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]]),Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),14),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),15)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),15)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup._#lambda10")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),14)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),16)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","oneGroup._#lambda12")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","oneGroup.outText.234")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TVar 0),5)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Var ((Just (TVar 0),5))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup._#lambda7")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","oneGroup.outText.234")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup.outLine.240")) 7 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),7)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),7))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),9)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),7))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","replicate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Lit (Charc  ' ')],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),7))]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","oneGroup._#lambda8")) 6 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),6)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup.outLine.240")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),6))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Pretty","oneGroup._#lambda9")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),2)] (Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),2)))),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup._#lambda10")) 5 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","oneGroup._#lambda10._#lambda11")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","oneGroup._#lambda10._#lambda11")) 5 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","oneGroup._#lambda12")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Pretty","oneGroup._#lambda12._#lambda13")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Pretty","oneGroup._#lambda12._#lambda13")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","multiGroup")) 8 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))))))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Text")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 19) (TVar 20)) (FuncType (TVar 19) (TVar 20))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Pretty","length")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","pruneMulti")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),10)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","multiGroup._#lambda14")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),9))]])),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","Line")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),12),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),13)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),14),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 21) (TVar 22)) (FuncType (TVar 21) (TVar 22))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Pretty","length")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),12))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","pruneMulti")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),13)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),14))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","multiGroup._#lambda15")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),14)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),12)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Open")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),15)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","multiGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),15)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]))),"Dequeue","cons")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]))),"Prelude","(,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8))],Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Pretty","multiGroup._#lambda16")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","Close")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),16)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]])),"Dequeue","matchHead")) [Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]]),"Prelude","Nothing")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","multiGroup._#lambda18")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]])),"Prelude","Just")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]),17)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]),17))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 11) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]))),"Prelude","(,)")) [(Just (TVar 11),18),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),19)]) (Case  Rigid (Var ((Just (TVar 11),18))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (TVar 11))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),20),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),21)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","multiGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),19)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),20)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","multiGroup._#lambda20")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),21)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))]])])])]),Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") []))),"Pretty","OpenNest")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),22),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),23)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","multiGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),23)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","multiGroup._#lambda22")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),22)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (TCons (Nothing,Nothing,"Pretty","Tokens") [])),"Pretty","CloseNest")) [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),24)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","multiGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),24)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","multiGroup._#lambda24")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","multiGroup.outText.261")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TVar 0),5)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Var ((Just (TVar 0),5))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","multiGroup._#lambda14")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","multiGroup.outText.261")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","multiGroup.outLine.267")) 7 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),7)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),7))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),9)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),7))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","replicate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Lit (Charc  ' ')],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),7))]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","multiGroup._#lambda15")) 6 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),6)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","multiGroup.outLine.267")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),6))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Pretty","multiGroup._#lambda16")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),2)] (Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),2)))),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","multiGroup._#lambda18")) 6 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),6)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))),"Pretty","multiGroup._#lambda18._#lambda19")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),6)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))),"Pretty","multiGroup._#lambda18._#lambda19")) 5 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))]]],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","multiGroup._#lambda20")) 6 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),6)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),5))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))),"Pretty","multiGroup._#lambda20._#lambda21")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),6)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))),"Pretty","multiGroup._#lambda20._#lambda21")) 5 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))]]],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","multiGroup._#lambda22")) 5 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),4))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","multiGroup._#lambda22._#lambda23")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),5)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","multiGroup._#lambda22._#lambda23")) 5 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","multiGroup._#lambda24")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Pretty","multiGroup._#lambda24._#lambda25")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Pretty","multiGroup._#lambda24._#lambda25")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","pruneOne")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))))))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","oneGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Pretty","noGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","pruneMulti")) 8 Private (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))))))) (Rule [(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","multiGroup")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","pruneMulti._#lambda26")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))),"Pretty","pruneMulti._#lambda26")) 7 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Tokens")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))))))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]])),"Dequeue","matchLast")) [Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),3))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]]),"Prelude","Nothing")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))))))),"Pretty","pruneOne")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]])),"Prelude","Just")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]),8)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 4) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))],TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]]))),"Prelude","(,)")) [(Just (TVar 4),9),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),10)]) (Case  Rigid (Var ((Just (TVar 4),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (TVar 4))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),11),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),12)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Tokens") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))))))),"Pretty","pruneMulti")) [Var ((Just (TCons (Nothing,Nothing,"Pretty","Tokens") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),12)),Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))]]),10)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))])])])]))] [Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<>")) InfixlOp 1,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<+>")) InfixlOp 1,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<$>")) InfixlOp 1,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","</>")) InfixlOp 1,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<$$>")) InfixlOp 1,Op ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"Pretty","<//>")) InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Pretty.fcy b/src/lib/Curry/Module/.curry/Pretty.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Pretty.fcy
@@ -0,0 +1,1 @@
+Prog "Pretty" ["Dequeue","Prelude"] [TypeSyn ("Pretty","Layout") Private [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),TypeSyn ("Pretty","Horizontal") Private [] (TCons ("Prelude","Bool") []),TypeSyn ("Pretty","Remaining") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","Width") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","Position") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","StartPosition") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","EndPosition") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","Out") Private [] (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))),TypeSyn ("Pretty","OutGroupPrefix") Private [] (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))),TypeSyn ("Pretty","Margins") Private [] (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),Type ("Pretty","Doc") Public [] [Cons ("Pretty","Doc") 1 Private [FuncType (TCons ("Pretty","Tokens") []) (TCons ("Pretty","Tokens") [])]],Type ("Pretty","Tokens") Private [] [Cons ("Pretty","Text") 2 Private [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Pretty","Tokens") []],Cons ("Pretty","Line") 2 Private [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Pretty","Tokens") []],Cons ("Pretty","Open") 1 Private [TCons ("Pretty","Tokens") []],Cons ("Pretty","Close") 1 Private [TCons ("Pretty","Tokens") []],Cons ("Pretty","Empty") 0 Private [],Cons ("Pretty","OpenNest") 2 Private [FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))),TCons ("Pretty","Tokens") []],Cons ("Pretty","CloseNest") 1 Private [TCons ("Pretty","Tokens") []]]] [Func ("Pretty","deDoc") 1 Private (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Tokens") []) (TCons ("Pretty","Tokens") []))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Pretty","Doc") [2]) (Var 2)])),Func ("Pretty","empty") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","text") [Comb ConsCall ("Prelude","[]") []])),Func ("Pretty","text") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Pretty","Doc") [])) (Rule [1] (Comb ConsCall ("Pretty","Doc") [Comb (ConsPartCall 1) ("Pretty","Text") [Var 1]])),Func ("Pretty","linesep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Pretty","Doc") [],Comb (ConsPartCall 2) ("Pretty","Line") []])),Func ("Pretty","line") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","linesep") [],Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]])),Func ("Pretty","linebreak") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","linesep") [],Comb ConsCall ("Prelude","[]") []])),Func ("Pretty","softline") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","group") [Comb FuncCall ("Pretty","line") []])),Func ("Pretty","softbreak") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","group") [Comb FuncCall ("Pretty","linebreak") []])),Func ("Pretty","group") 1 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [1] (Comb ConsCall ("Pretty","Doc") [Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Pretty","Open") [],Comb FuncCall ("Prelude",".") [Comb FuncCall ("Pretty","deDoc") [Var 1],Comb (ConsPartCall 1) ("Pretty","Close") []]]])),Func ("Pretty","nest") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [1,2] (Comb ConsCall ("Pretty","Doc") [Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Pretty","OpenNest") [Comb (FuncPartCall 3) ("Pretty","nest._#lambda2") [Var 1]],Comb FuncCall ("Prelude",".") [Comb FuncCall ("Pretty","deDoc") [Var 2],Comb (ConsPartCall 1) ("Pretty","CloseNest") []]]])),Func ("Pretty","nest._#lambda2") 4 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))))) (Rule [1,2,3,4] (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","+") [Var 5,Var 1],Var 2])])),Func ("Pretty","hang") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [1,2] (Comb ConsCall ("Pretty","Doc") [Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Pretty","OpenNest") [Comb (FuncPartCall 3) ("Pretty","hang._#lambda3") [Var 1]],Comb FuncCall ("Prelude",".") [Comb FuncCall ("Pretty","deDoc") [Var 2],Comb (ConsPartCall 1) ("Pretty","CloseNest") []]]])),Func ("Pretty","hang._#lambda3") 4 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))))) (Rule [1,2,3,4] (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Var 4,Var 3],Var 1],Var 2])),Func ("Pretty","align") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","hang") [Lit (Intc  0)])),Func ("Pretty","combine") 3 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])))) (Rule [1,2,3] (Comb FuncCall ("Pretty","enclose") [Var 2,Var 3,Var 1])),Func ("Pretty","<>") 2 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [1,2] (Comb ConsCall ("Pretty","Doc") [Comb FuncCall ("Prelude",".") [Comb FuncCall ("Pretty","deDoc") [Var 1],Comb FuncCall ("Pretty","deDoc") [Var 2]]])),Func ("Pretty","<+>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Comb (FuncPartCall 2) ("Pretty","combine") [Comb FuncCall ("Pretty","space") []])),Func ("Pretty","<$>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Comb (FuncPartCall 2) ("Pretty","combine") [Comb FuncCall ("Pretty","line") []])),Func ("Pretty","</>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Comb (FuncPartCall 2) ("Pretty","combine") [Comb FuncCall ("Pretty","softline") []])),Func ("Pretty","<$$>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Comb (FuncPartCall 2) ("Pretty","combine") [Comb FuncCall ("Pretty","linebreak") []])),Func ("Pretty","<//>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Comb (FuncPartCall 2) ("Pretty","combine") [Comb FuncCall ("Pretty","softbreak") []])),Func ("Pretty","compose") 2 Public (FuncType (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Pretty","empty") []),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude","foldr1") [Var 1,Var 2])])),Func ("Pretty","hsep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","compose") [Comb FuncCall ("Pretty","<+>") []])),Func ("Pretty","vsep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","compose") [Comb FuncCall ("Pretty","<$>") []])),Func ("Pretty","fillSep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","compose") [Comb FuncCall ("Pretty","</>") []])),Func ("Pretty","sep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Pretty","group") [],Comb FuncCall ("Pretty","vsep") []])),Func ("Pretty","hcat") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","compose") [Comb (FuncPartCall 2) ("Pretty","<>") []])),Func ("Pretty","vcat") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","compose") [Comb FuncCall ("Pretty","<$$>") []])),Func ("Pretty","fillCat") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","compose") [Comb FuncCall ("Pretty","<//>") []])),Func ("Pretty","cat") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Pretty","group") [],Comb FuncCall ("Pretty","vcat") []])),Func ("Pretty","punctuate") 2 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Pretty","punctuate.go.75") [Var 1,Var 2])])),Func ("Pretty","punctuate.go.75") 2 Private (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Pretty","<>") [Var 3,Var 1],Comb FuncCall ("Pretty","punctuate.go.75") [Var 1,Var 4]])])])),Func ("Pretty","encloseSep") 4 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") []))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Pretty","<>") [Var 1,Var 2]),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","align") [],Comb FuncCall ("Pretty","enclose") [Var 1,Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","cat") [],Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Pretty","<>") [Var 3],Var 6]]]]])])),Func ("Pretty","hEncloseSep") 4 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") []))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Pretty","<>") [Var 1,Var 2]),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","align") [],Comb FuncCall ("Pretty","enclose") [Var 1,Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","hcat") [],Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Pretty","<>") [Var 3],Var 6]]]]])])),Func ("Pretty","fillEncloseSep") 4 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") []))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Pretty","<>") [Var 1,Var 2]),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","align") [],Comb FuncCall ("Pretty","enclose") [Var 1,Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","hcat") [],Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("Pretty","fillEncloseSep.withSoftBreaks.96") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Pretty","<>") [Var 3],Var 6]]]]]])])),Func ("Pretty","fillEncloseSep.withSoftBreaks.96") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [2,3]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Pretty","group") [Comb FuncCall ("Pretty","<>") [Comb FuncCall ("Pretty","linebreak") [],Var 2]],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [4,5]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Pretty","group") [Comb FuncCall ("Pretty","<>") [Comb FuncCall ("Pretty","linebreak") [],Comb FuncCall ("Pretty","group") [Comb FuncCall ("Pretty","<>") [Var 2,Comb FuncCall ("Pretty","linebreak") []]]]],Comb FuncCall ("Pretty","fillEncloseSep.withSoftBreaks.96") [Var 3]])])])),Func ("Pretty","list") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","fillEncloseSep") [Comb FuncCall ("Pretty","lbracket") [],Comb FuncCall ("Pretty","rbracket") [],Comb FuncCall ("Pretty","comma") []])),Func ("Pretty","tupled") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","fillEncloseSep") [Comb FuncCall ("Pretty","lparen") [],Comb FuncCall ("Pretty","rparen") [],Comb FuncCall ("Pretty","comma") []])),Func ("Pretty","semiBraces") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","fillEncloseSep") [Comb FuncCall ("Pretty","lbrace") [],Comb FuncCall ("Pretty","rbrace") [],Comb FuncCall ("Pretty","semi") []])),Func ("Pretty","enclose") 3 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])))) (Rule [1,2,3] (Comb FuncCall ("Pretty","<>") [Comb FuncCall ("Pretty","<>") [Var 1,Var 3],Var 2])),Func ("Pretty","squotes") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","enclose") [Comb FuncCall ("Pretty","squote") [],Comb FuncCall ("Pretty","squote") []])),Func ("Pretty","dquotes") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","enclose") [Comb FuncCall ("Pretty","dquote") [],Comb FuncCall ("Pretty","dquote") []])),Func ("Pretty","bquotes") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","enclose") [Comb FuncCall ("Pretty","bquote") [],Comb FuncCall ("Pretty","bquote") []])),Func ("Pretty","parens") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","enclose") [Comb FuncCall ("Pretty","lparen") [],Comb FuncCall ("Pretty","rparen") []])),Func ("Pretty","angles") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","enclose") [Comb FuncCall ("Pretty","langle") [],Comb FuncCall ("Pretty","rangle") []])),Func ("Pretty","braces") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","enclose") [Comb FuncCall ("Pretty","lbrace") [],Comb FuncCall ("Pretty","rbrace") []])),Func ("Pretty","brackets") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","enclose") [Comb FuncCall ("Pretty","lbracket") [],Comb FuncCall ("Pretty","rbracket") []])),Func ("Pretty","char") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Pretty","Doc") [])) (Rule [1] (Comb FuncCall ("Pretty","text") [Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]])),Func ("Pretty","string") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("Pretty","hcat") [],Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("Pretty","string._#lambda4") []]])),Func ("Pretty","string._#lambda4") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Pretty","Doc") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 1],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\r'),Comb ConsCall ("Prelude","[]") []]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Pretty","line") []),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Pretty","char") [Var 1])])),Func ("Pretty","int") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Pretty","Doc") [])) (Rule [1] (Comb FuncCall ("Pretty","text") [Comb FuncCall ("Prelude","show") [Var 1]])),Func ("Pretty","float") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Pretty","Doc") [])) (Rule [1] (Comb FuncCall ("Pretty","text") [Comb FuncCall ("Prelude","show") [Var 1]])),Func ("Pretty","lparen") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '(')])),Func ("Pretty","rparen") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  ')')])),Func ("Pretty","langle") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '<')])),Func ("Pretty","rangle") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '>')])),Func ("Pretty","lbrace") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '{')])),Func ("Pretty","rbrace") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '}')])),Func ("Pretty","lbracket") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '[')])),Func ("Pretty","rbracket") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  ']')])),Func ("Pretty","squote") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '\'')])),Func ("Pretty","dquote") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '"')])),Func ("Pretty","bquote") 0 Private (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '`')])),Func ("Pretty","semi") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  ';')])),Func ("Pretty","colon") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  ':')])),Func ("Pretty","comma") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  ',')])),Func ("Pretty","space") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  ' ')])),Func ("Pretty","dot") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '.')])),Func ("Pretty","backslash") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '\\')])),Func ("Pretty","equals") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Comb FuncCall ("Pretty","char") [Lit (Charc  '=')])),Func ("Pretty","normalise") 0 Private (FuncType (TCons ("Pretty","Tokens") []) (TCons ("Pretty","Tokens") [])) (Rule [] (Comb (FuncPartCall 1) ("Pretty","normalise.go.173") [Comb (FuncPartCall 1) ("Prelude","id") []])),Func ("Pretty","normalise.open.173") 1 Private (FuncType (TCons ("Pretty","Tokens") []) (TCons ("Pretty","Tokens") [])) (Rule [1] (Case  Rigid (Var 1) [Branch (Pattern ("Pretty","Close") [2]) (Var 2),Branch (Pattern ("Pretty","Text") [3,4]) (Comb ConsCall ("Pretty","Open") [Var 1]),Branch (Pattern ("Pretty","Line") [5,6]) (Comb ConsCall ("Pretty","Open") [Var 1]),Branch (Pattern ("Pretty","Open") [7]) (Comb ConsCall ("Pretty","Open") [Var 1]),Branch (Pattern ("Pretty","Empty") []) (Comb ConsCall ("Pretty","Open") [Var 1]),Branch (Pattern ("Pretty","OpenNest") [8,9]) (Comb ConsCall ("Pretty","Open") [Var 1]),Branch (Pattern ("Pretty","CloseNest") [10]) (Comb ConsCall ("Pretty","Open") [Var 1])])),Func ("Pretty","normalise.go.173") 2 Private (FuncType (FuncType (TCons ("Pretty","Tokens") []) (TCons ("Pretty","Tokens") [])) (FuncType (TCons ("Pretty","Tokens") []) (TCons ("Pretty","Tokens") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Pretty","Empty") []) (Comb FuncCall ("Prelude","apply") [Var 1,Comb ConsCall ("Pretty","Empty") []]),Branch (Pattern ("Pretty","Open") [3]) (Comb FuncCall ("Pretty","normalise.go.173") [Comb FuncCall ("Prelude",".") [Var 1,Comb (FuncPartCall 1) ("Pretty","normalise.open.173") []],Var 3]),Branch (Pattern ("Pretty","Close") [4]) (Comb FuncCall ("Pretty","normalise.go.173") [Comb FuncCall ("Prelude",".") [Var 1,Comb (ConsPartCall 1) ("Pretty","Close") []],Var 4]),Branch (Pattern ("Pretty","Line") [5,6]) (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude",".") [Var 1,Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Pretty","Line") [Var 5],Comb (FuncPartCall 1) ("Pretty","normalise.go.173") [Comb (FuncPartCall 1) ("Prelude","id") []]]],Var 6]),Branch (Pattern ("Pretty","Text") [7,8]) (Comb ConsCall ("Pretty","Text") [Var 7,Comb FuncCall ("Pretty","normalise.go.173") [Var 1,Var 8]]),Branch (Pattern ("Pretty","OpenNest") [9,10]) (Comb ConsCall ("Pretty","OpenNest") [Var 9,Comb FuncCall ("Pretty","normalise.go.173") [Var 1,Var 10]]),Branch (Pattern ("Pretty","CloseNest") [11]) (Comb ConsCall ("Pretty","CloseNest") [Comb FuncCall ("Pretty","normalise.go.173") [Var 1,Var 11]])])),Func ("Pretty","doc2Tokens") 1 Private (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Tokens") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Pretty","Doc") [2]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","normalise") [],Comb FuncCall ("Prelude","apply") [Var 2,Comb ConsCall ("Pretty","Empty") []]])])),Func ("Pretty","pretty") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Comb FuncCall ("Pretty","noGroup") [Comb FuncCall ("Pretty","doc2Tokens") [Var 2],Var 1,Lit (Intc  1),Var 1,Comb ConsCall ("Prelude",":") [Lit (Intc  0),Comb ConsCall ("Prelude","[]") []]])),Func ("Pretty","length") 0 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","length") [],Comb (FuncPartCall 1) ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 1) ("Prelude","elem") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Intc  5),Comb ConsCall ("Prelude",":") [Lit (Intc  6),Comb ConsCall ("Prelude",":") [Lit (Intc  7),Comb ConsCall ("Prelude","[]") []]]],Comb FuncCall ("Prelude","enumFromTo") [Lit (Intc  16),Lit (Intc  31)]]],Comb (FuncPartCall 1) ("Prelude","ord") []]]]])),Func ("Pretty","noGroup") 5 Private (FuncType (TCons ("Pretty","Tokens") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 1) [Branch (Pattern ("Pretty","Empty") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Pretty","Text") [6,7]) (Let [(8,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","length") [],Var 6])] (Comb FuncCall ("Prelude","++") [Var 6,Comb FuncCall ("Pretty","noGroup") [Var 7,Var 2,Comb FuncCall ("Prelude","+") [Var 3,Var 8],Comb FuncCall ("Prelude","-") [Var 4,Var 8],Var 5]])),Branch (Pattern ("Pretty","Line") [9,10]) (Case  Flex (Var 5) [Branch (Pattern ("Prelude",":") [11,12]) (Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","replicate") [Var 11,Lit (Charc  ' ')],Comb FuncCall ("Pretty","noGroup") [Var 10,Var 2,Comb FuncCall ("Prelude","+") [Var 3,Lit (Intc  1)],Comb FuncCall ("Prelude","-") [Var 2,Var 11],Var 5]]])]),Branch (Pattern ("Pretty","Open") [13]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","oneGroup") [Var 13,Var 2,Var 3,Comb FuncCall ("Prelude","+") [Var 3,Var 4],Comb (FuncPartCall 2) ("Pretty","noGroup._#lambda6") []],Var 4],Var 5]),Branch (Pattern ("Pretty","Close") [14]) (Comb FuncCall ("Pretty","noGroup") [Var 14,Var 2,Var 3,Var 4,Var 5]),Branch (Pattern ("Pretty","OpenNest") [15,16]) (Comb FuncCall ("Pretty","noGroup") [Var 16,Var 2,Var 3,Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 15,Var 5],Var 4],Var 2]]),Branch (Pattern ("Pretty","CloseNest") [17]) (Comb FuncCall ("Pretty","noGroup") [Var 17,Var 2,Var 3,Var 4,Comb FuncCall ("Prelude","tail") [Var 5]])])),Func ("Pretty","noGroup._#lambda6") 2 Private (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (Rule [1,2] (Var 2)),Func ("Pretty","oneGroup") 5 Private (FuncType (TCons ("Pretty","Tokens") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))))) (Rule [1,2,3,4,5] (Case  Flex (Var 1) [Branch (Pattern ("Pretty","Text") [6,7]) (Let [(8,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","length") [],Var 6])] (Comb FuncCall ("Pretty","pruneOne") [Var 7,Var 2,Comb FuncCall ("Prelude","+") [Var 3,Var 8],Var 4,Comb (FuncPartCall 2) ("Pretty","oneGroup._#lambda7") [Var 8,Var 5,Var 6]])),Branch (Pattern ("Pretty","Line") [9,10]) (Let [(11,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","length") [],Var 9])] (Comb FuncCall ("Pretty","pruneOne") [Var 10,Var 2,Comb FuncCall ("Prelude","+") [Var 3,Var 11],Var 4,Comb (FuncPartCall 2) ("Pretty","oneGroup._#lambda8") [Var 11,Var 5,Var 9,Var 2]])),Branch (Pattern ("Pretty","Open") [12]) (Comb FuncCall ("Pretty","multiGroup") [Var 12,Var 2,Var 3,Var 4,Var 5,Comb FuncCall ("Dequeue","empty") [],Var 3,Comb (FuncPartCall 2) ("Pretty","oneGroup._#lambda9") []]),Branch (Pattern ("Pretty","Close") [13]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 5,Comb FuncCall ("Prelude","<=") [Var 3,Var 4]],Comb (FuncPartCall 2) ("Pretty","noGroup") [Var 13,Var 2,Var 3]]),Branch (Pattern ("Pretty","OpenNest") [14,15]) (Comb FuncCall ("Pretty","oneGroup") [Var 15,Var 2,Var 3,Var 4,Comb (FuncPartCall 2) ("Pretty","oneGroup._#lambda10") [Var 14,Var 5,Var 2]]),Branch (Pattern ("Pretty","CloseNest") [16]) (Comb FuncCall ("Pretty","oneGroup") [Var 16,Var 2,Var 3,Var 4,Comb (FuncPartCall 2) ("Pretty","oneGroup._#lambda12") [Var 5]])])),Func ("Pretty","oneGroup.outText.234") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Prelude","-") [Var 4,Var 1]],Var 5]])),Func ("Pretty","oneGroup._#lambda7") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 4],Comb (FuncPartCall 2) ("Pretty","oneGroup.outText.234") [Var 1,Var 3,Var 5]])),Func ("Pretty","oneGroup.outLine.240") 7 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))))) (Rule [1,2,3,4,5,6,7] (Case  Flex (Var 7) [Branch (Pattern ("Prelude",":") [8,9]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 5,Comb FuncCall ("Prelude","-") [Var 6,Var 1]],Var 7]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","replicate") [Var 8,Lit (Charc  ' ')],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 5,Comb FuncCall ("Prelude","-") [Var 3,Var 8]],Var 7]]])])])),Func ("Pretty","oneGroup._#lambda8") 6 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 5],Comb (FuncPartCall 2) ("Pretty","oneGroup.outLine.240") [Var 1,Var 3,Var 4,Var 5,Var 6]])),Func ("Pretty","oneGroup._#lambda9") 2 Private (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (Rule [1,2] (Var 2)),Func ("Pretty","oneGroup._#lambda10") 5 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 4],Comb (FuncPartCall 2) ("Pretty","oneGroup._#lambda10._#lambda11") [Var 5,Var 1,Var 3]])),Func ("Pretty","oneGroup._#lambda10._#lambda11") 5 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 5],Var 4],Var 3]])),Func ("Pretty","oneGroup._#lambda12") 3 Private (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb (FuncPartCall 2) ("Pretty","oneGroup._#lambda12._#lambda13") [Var 3]])),Func ("Pretty","oneGroup._#lambda12._#lambda13") 3 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb FuncCall ("Prelude","tail") [Var 3]])),Func ("Pretty","multiGroup") 8 Private (FuncType (TCons ("Pretty","Tokens") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Dequeue","Queue") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))]]) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))))))) (Rule [1,2,3,4,5,6,7,8] (Case  Flex (Var 1) [Branch (Pattern ("Pretty","Text") [9,10]) (Let [(11,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","length") [],Var 9])] (Comb FuncCall ("Pretty","pruneMulti") [Var 10,Var 2,Comb FuncCall ("Prelude","+") [Var 3,Var 11],Var 4,Var 5,Var 6,Var 7,Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda14") [Var 11,Var 8,Var 9]])),Branch (Pattern ("Pretty","Line") [12,13]) (Let [(14,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","length") [],Var 12])] (Comb FuncCall ("Pretty","pruneMulti") [Var 13,Var 2,Comb FuncCall ("Prelude","+") [Var 3,Var 14],Var 4,Var 5,Var 6,Var 7,Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda15") [Var 14,Var 8,Var 12,Var 2]])),Branch (Pattern ("Pretty","Open") [15]) (Comb FuncCall ("Pretty","multiGroup") [Var 15,Var 2,Var 3,Var 4,Var 5,Comb FuncCall ("Dequeue","cons") [Comb ConsCall ("Prelude","(,)") [Var 7,Var 8],Var 6],Var 3,Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda16") []]),Branch (Pattern ("Pretty","Close") [16]) (Case  Rigid (Comb FuncCall ("Dequeue","matchHead") [Var 6]) [Branch (Pattern ("Prelude","Nothing") []) (Comb FuncCall ("Pretty","oneGroup") [Var 16,Var 2,Var 3,Var 4,Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda18") [Var 8,Var 5,Var 3,Var 7]]),Branch (Pattern ("Prelude","Just") [17]) (Case  Rigid (Var 17) [Branch (Pattern ("Prelude","(,)") [18,19]) (Case  Rigid (Var 18) [Branch (Pattern ("Prelude","(,)") [20,21]) (Comb FuncCall ("Pretty","multiGroup") [Var 16,Var 2,Var 3,Var 4,Var 5,Var 19,Var 20,Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda20") [Var 21,Var 8,Var 3,Var 7]])])])]),Branch (Pattern ("Pretty","OpenNest") [22,23]) (Comb FuncCall ("Pretty","multiGroup") [Var 23,Var 2,Var 3,Var 4,Var 5,Var 6,Var 7,Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda22") [Var 22,Var 8,Var 2]]),Branch (Pattern ("Pretty","CloseNest") [24]) (Comb FuncCall ("Pretty","multiGroup") [Var 24,Var 2,Var 3,Var 4,Var 5,Var 6,Var 7,Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda24") [Var 8]])])),Func ("Pretty","multiGroup.outText.261") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Prelude","-") [Var 4,Var 1]],Var 5]])),Func ("Pretty","multiGroup._#lambda14") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 4],Comb (FuncPartCall 2) ("Pretty","multiGroup.outText.261") [Var 1,Var 3,Var 5]])),Func ("Pretty","multiGroup.outLine.267") 7 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))))) (Rule [1,2,3,4,5,6,7] (Case  Flex (Var 7) [Branch (Pattern ("Prelude",":") [8,9]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 5,Comb FuncCall ("Prelude","-") [Var 6,Var 1]],Var 7]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","replicate") [Var 8,Lit (Charc  ' ')],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 5,Comb FuncCall ("Prelude","-") [Var 3,Var 8]],Var 7]]])])])),Func ("Pretty","multiGroup._#lambda15") 6 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 5],Comb (FuncPartCall 2) ("Pretty","multiGroup.outLine.267") [Var 1,Var 3,Var 4,Var 5,Var 6]])),Func ("Pretty","multiGroup._#lambda16") 2 Private (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (Rule [1,2] (Var 2)),Func ("Pretty","multiGroup._#lambda18") 6 Private (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 5],Comb (FuncPartCall 1) ("Pretty","multiGroup._#lambda18._#lambda19") [Var 6,Var 1,Var 3,Var 4]])),Func ("Pretty","multiGroup._#lambda18._#lambda19") 5 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Comb FuncCall ("Prelude","<=") [Var 3,Comb FuncCall ("Prelude","+") [Var 4,Var 5]]],Var 1],Var 5])),Func ("Pretty","multiGroup._#lambda20") 6 Private (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 5],Comb (FuncPartCall 1) ("Pretty","multiGroup._#lambda20._#lambda21") [Var 6,Var 2,Var 3,Var 4]])),Func ("Pretty","multiGroup._#lambda20._#lambda21") 5 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Comb FuncCall ("Prelude","<=") [Var 3,Comb FuncCall ("Prelude","+") [Var 4,Var 5]]],Var 1],Var 5])),Func ("Pretty","multiGroup._#lambda22") 5 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 4],Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda22._#lambda23") [Var 5,Var 1,Var 3]])),Func ("Pretty","multiGroup._#lambda22._#lambda23") 5 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 5],Var 4],Var 3]])),Func ("Pretty","multiGroup._#lambda24") 3 Private (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb (FuncPartCall 2) ("Pretty","multiGroup._#lambda24._#lambda25") [Var 3]])),Func ("Pretty","multiGroup._#lambda24._#lambda25") 3 Private (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb FuncCall ("Prelude","tail") [Var 3]])),Func ("Pretty","pruneOne") 5 Private (FuncType (TCons ("Pretty","Tokens") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))))))) (Rule [1,2,3,4,5] (Case  Rigid (Comb FuncCall ("Prelude","<=") [Var 3,Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Pretty","oneGroup") [Var 1,Var 2,Var 3,Var 4,Var 5]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 5,Comb ConsCall ("Prelude","False") []],Comb (FuncPartCall 2) ("Pretty","noGroup") [Var 1,Var 2,Var 3]])])),Func ("Pretty","pruneMulti") 8 Private (FuncType (TCons ("Pretty","Tokens") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Dequeue","Queue") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))]]) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))))))) (Rule [1,2,3,4,5,6,7,8] (Case  Rigid (Comb FuncCall ("Prelude","<=") [Var 3,Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Pretty","multiGroup") [Var 1,Var 2,Var 3,Var 4,Var 5,Var 6,Var 7,Var 8]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 5,Comb ConsCall ("Prelude","False") []],Comb (FuncPartCall 1) ("Pretty","pruneMulti._#lambda26") [Var 8,Var 3,Var 6,Var 7,Var 1,Var 2]])])),Func ("Pretty","pruneMulti._#lambda26") 7 Private (FuncType (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Dequeue","Queue") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))]]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Pretty","Tokens") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))))))) (Rule [1,2,3,4,5,6,7] (Case  Rigid (Comb FuncCall ("Dequeue","matchLast") [Var 3]) [Branch (Pattern ("Prelude","Nothing") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","pruneOne") [Var 5,Var 6,Var 2,Comb FuncCall ("Prelude","+") [Var 4,Var 7],Var 1],Var 7]),Branch (Pattern ("Prelude","Just") [8]) (Case  Rigid (Var 8) [Branch (Pattern ("Prelude","(,)") [9,10]) (Case  Rigid (Var 9) [Branch (Pattern ("Prelude","(,)") [11,12]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Pretty","pruneMulti") [Var 5,Var 6,Var 2,Comb FuncCall ("Prelude","+") [Var 11,Var 7],Var 12,Var 10,Var 4,Var 1],Var 7])])])]))] [Op ("Pretty","<>") InfixlOp 1,Op ("Pretty","<+>") InfixlOp 1,Op ("Pretty","<$>") InfixlOp 1,Op ("Pretty","</>") InfixlOp 1,Op ("Pretty","<$$>") InfixlOp 1,Op ("Pretty","<//>") InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Pretty.fint b/src/lib/Curry/Module/.curry/Pretty.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Pretty.fint
@@ -0,0 +1,1 @@
+Prog "Pretty" ["Dequeue","Prelude"] [TypeSyn ("Pretty","Layout") Private [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),TypeSyn ("Pretty","Horizontal") Private [] (TCons ("Prelude","Bool") []),TypeSyn ("Pretty","Remaining") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","Width") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","Position") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","StartPosition") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","EndPosition") Private [] (TCons ("Prelude","Int") []),TypeSyn ("Pretty","Out") Private [] (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))),TypeSyn ("Pretty","OutGroupPrefix") Private [] (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))))),TypeSyn ("Pretty","Margins") Private [] (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),Type ("Pretty","Doc") Public [] []] [Func ("Pretty","empty") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","text") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","linesep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","line") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","linebreak") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","softline") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","softbreak") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","group") 1 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","nest") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","hang") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","align") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","combine") 3 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])))) (Rule [] (Var 0)),Func ("Pretty","<>") 2 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","<+>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","<$>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","</>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","<$$>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","<//>") 0 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","compose") 2 Public (FuncType (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") []))) (Rule [] (Var 0)),Func ("Pretty","hsep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","vsep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","fillSep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","sep") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","hcat") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","vcat") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","fillCat") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","cat") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","punctuate") 2 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]))) (Rule [] (Var 0)),Func ("Pretty","encloseSep") 4 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") []))))) (Rule [] (Var 0)),Func ("Pretty","hEncloseSep") 4 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") []))))) (Rule [] (Var 0)),Func ("Pretty","fillEncloseSep") 4 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") []))))) (Rule [] (Var 0)),Func ("Pretty","list") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","tupled") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","semiBraces") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Pretty","Doc") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","enclose") 3 Public (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])))) (Rule [] (Var 0)),Func ("Pretty","squotes") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","dquotes") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","bquotes") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","parens") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","angles") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","braces") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","brackets") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","char") 1 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","string") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","int") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","float") 1 Public (FuncType (TCons ("Prelude","Float") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("Pretty","lparen") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","rparen") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","langle") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","rangle") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","lbrace") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","rbrace") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","lbracket") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","rbracket") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","squote") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","dquote") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","semi") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","colon") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","comma") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","space") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","dot") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","backslash") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","equals") 0 Public (TCons ("Pretty","Doc") []) (Rule [] (Var 0)),Func ("Pretty","pretty") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0))] [Op ("Pretty","<>") InfixlOp 1,Op ("Pretty","<+>") InfixlOp 1,Op ("Pretty","<$>") InfixlOp 1,Op ("Pretty","</>") InfixlOp 1,Op ("Pretty","<$$>") InfixlOp 1,Op ("Pretty","<//>") InfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/Pretty.uacy b/src/lib/Curry/Module/.curry/Pretty.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Pretty.uacy
@@ -0,0 +1,89 @@
+CurryProg "Pretty"
+ ["Prelude","Dequeue"]
+ [CType ("Pretty","Doc") Public [] [CCons ("Pretty","Doc") 1 Public [CFuncType (CTCons ("Pretty","Tokens") []) (CTCons ("Pretty","Tokens") [])]],
+  CTypeSyn ("Pretty","Layout") Private [] (CTCons ("Prelude","String") []),
+  CTypeSyn ("Pretty","Horizontal") Private [] (CTCons ("Prelude","Bool") []),
+  CTypeSyn ("Pretty","Remaining") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","Width") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","Position") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","StartPosition") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","EndPosition") Private [] (CTCons ("Prelude","Int") []),
+  CTypeSyn ("Pretty","Out") Private [] (CFuncType (CTCons ("Pretty","Remaining") []) (CFuncType (CTCons ("Pretty","Margins") []) (CTCons ("Prelude","String") []))),
+  CTypeSyn ("Pretty","OutGroupPrefix") Private [] (CFuncType (CTCons ("Pretty","Horizontal") []) (CFuncType (CTCons ("Pretty","Out") []) (CTCons ("Pretty","Out") []))),
+  CTypeSyn ("Pretty","Margins") Private [] (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]),
+  CType ("Pretty","Tokens") Private [] [CCons ("Pretty","Text") 2 Private [CTCons ("Prelude","String") [],CTCons ("Pretty","Tokens") []],CCons ("Pretty","Line") 2 Private [CTCons ("Prelude","String") [],CTCons ("Pretty","Tokens") []],CCons ("Pretty","Open") 1 Private [CTCons ("Pretty","Tokens") []],CCons ("Pretty","Close") 1 Private [CTCons ("Pretty","Tokens") []],CCons ("Pretty","Empty") 0 Private [],CCons ("Pretty","OpenNest") 2 Private [CFuncType (CTCons ("Pretty","Margins") []) (CFuncType (CTCons ("Pretty","Remaining") []) (CFuncType (CTCons ("Pretty","Width") []) (CTCons ("Pretty","Margins") []))),CTCons ("Pretty","Tokens") []],CCons ("Pretty","CloseNest") 1 Private [CTCons ("Pretty","Tokens") []]]]
+ [CFunc ("Pretty","<$$>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","linebreak")))] []]),
+  CFunc ("Pretty","<$>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","line")))] []]),
+  CFunc ("Pretty","<+>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","space")))] []]),
+  CFunc ("Pretty","<//>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","softbreak")))] []]),
+  CFunc ("Pretty","</>") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","combine")) (CSymbol ("Pretty","softline")))] []]),
+  CFunc ("Pretty","<>") 2 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"d1"),CPVar (1,"d2")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","deDoc")) (CVar (0,"d1")))) (CApply (CSymbol ("Pretty","deDoc")) (CVar (1,"d2")))))] []]),
+  CFunc ("Pretty","align") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","hang")) (CLit (CIntc 0)))] []]),
+  CFunc ("Pretty","angles") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","langle"))) (CSymbol ("Pretty","rangle")))] []]),
+  CFunc ("Pretty","backslash") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '\\')))] []]),
+  CFunc ("Pretty","bquote") 0 Private (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '`')))] []]),
+  CFunc ("Pretty","bquotes") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","bquote"))) (CSymbol ("Pretty","bquote")))] []]),
+  CFunc ("Pretty","braces") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","lbrace"))) (CSymbol ("Pretty","rbrace")))] []]),
+  CFunc ("Pretty","brackets") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","lbracket"))) (CSymbol ("Pretty","rbracket")))] []]),
+  CFunc ("Pretty","cat") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","group"))) (CSymbol ("Pretty","vcat")))] []]),
+  CFunc ("Pretty","char") 1 Public (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","text")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"c"))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("Pretty","colon") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ':')))] []]),
+  CFunc ("Pretty","combine") 3 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"d1"),CPVar (2,"d2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Pretty","enclose")) (CVar (1,"d1"))) (CVar (2,"d2"))) (CVar (0,"s")))] []]),
+  CFunc ("Pretty","comma") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ',')))] []]),
+  CFunc ("Pretty","compose") 2 Public (CFuncType (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Dequeue","empty"))] [],CRule [CPVar (1,"op"),CPAs (4,"ds") (CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","foldr1")) (CVar (1,"op"))) (CVar (4,"ds")))] []]),
+  CFunc ("Pretty","deDoc") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Pretty","Doc") [CPVar (0,"d")]] [(CSymbol ("Prelude","success"),CVar (0,"d"))] []]),
+  CFunc ("Pretty","doc2Tokens") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Pretty","Doc") [CPVar (0,"d")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","normalise")) (CApply (CVar (0,"d")) (CSymbol ("Pretty","Empty"))))] []]),
+  CFunc ("Pretty","dot") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '.')))] []]),
+  CFunc ("Pretty","dquote") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '"')))] []]),
+  CFunc ("Pretty","dquotes") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","dquote"))) (CSymbol ("Pretty","dquote")))] []]),
+  CFunc ("Pretty","empty") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","text")) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Pretty","enclose") 3 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])))) (CRules CFlex [CRule [CPVar (0,"l"),CPVar (1,"r"),CPVar (2,"d")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","<>")) (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (0,"l"))) (CVar (2,"d")))) (CVar (1,"r")))] []]),
+  CFunc ("Pretty","encloseSep") 4 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") []))))) (CRules CFlex [CRule [CPVar (0,"l"),CPVar (1,"r"),CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","<>")) (CVar (0,"l"))) (CVar (1,"r")))] [],CRule [CPVar (3,"l"),CPVar (4,"r"),CPVar (5,"s"),CPComb ("Prelude",":") [CPVar (6,"d"),CPVar (7,"ds")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","align")) (CApply (CApply (CApply (CSymbol ("Pretty","enclose")) (CVar (3,"l"))) (CVar (4,"r"))) (CApply (CSymbol ("Pretty","cat")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"d"))) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (8,"x0")] (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (5,"s"))) (CVar (8,"x0"))))) (CVar (7,"ds")))))))] []]),
+  CFunc ("Pretty","equals") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '=')))] []]),
+  CFunc ("Pretty","fillCat") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<//>")))] []]),
+  CFunc ("Pretty","fillEncloseSep") 4 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") []))))) (CRules CFlex [CRule [CPVar (0,"l"),CPVar (1,"r"),CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","<>")) (CVar (0,"l"))) (CVar (1,"r")))] [],CRule [CPVar (3,"l"),CPVar (4,"r"),CPVar (5,"s"),CPComb ("Prelude",":") [CPVar (6,"d"),CPVar (7,"ds")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","align")) (CApply (CApply (CApply (CSymbol ("Pretty","enclose")) (CVar (3,"l"))) (CVar (4,"r"))) (CApply (CSymbol ("Pretty","hcat")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"d"))) (CApply (CSymbol ("Pretty","withSoftBreaks")) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (8,"x0")] (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (5,"s"))) (CVar (8,"x0"))))) (CVar (7,"ds"))))))))] [CLocalFunc (CFunc ("Pretty","withSoftBreaks") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (8,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("Pretty","group")) (CApply (CApply (CSymbol ("Pretty","<>")) (CSymbol ("Pretty","linebreak"))) (CVar (8,"x"))))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (9,"x"),CPAs (12,"xs") (CPComb ("Prelude",":") [CPVar (10,"_"),CPVar (11,"_")])]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("Pretty","group")) (CApply (CApply (CSymbol ("Pretty","<>")) (CSymbol ("Pretty","linebreak"))) (CApply (CSymbol ("Pretty","group")) (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (9,"x"))) (CSymbol ("Pretty","linebreak"))))))) (CApply (CSymbol ("Pretty","withSoftBreaks")) (CVar (12,"xs"))))] []]))]]),
+  CFunc ("Pretty","fillSep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","</>")))] []]),
+  CFunc ("Pretty","float") 1 Public (CFuncType (CTCons ("Prelude","Float") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","text")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"x"))))] []]),
+  CFunc ("Pretty","group") 1 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"d")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","Open"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","deDoc")) (CVar (0,"d")))) (CSymbol ("Pretty","Close")))))] []]),
+  CFunc ("Pretty","hEncloseSep") 4 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") []))))) (CRules CFlex [CRule [CPVar (0,"l"),CPVar (1,"r"),CPVar (2,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","<>")) (CVar (0,"l"))) (CVar (1,"r")))] [],CRule [CPVar (3,"l"),CPVar (4,"r"),CPVar (5,"s"),CPComb ("Prelude",":") [CPVar (6,"d"),CPVar (7,"ds")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","align")) (CApply (CApply (CApply (CSymbol ("Pretty","enclose")) (CVar (3,"l"))) (CVar (4,"r"))) (CApply (CSymbol ("Pretty","hcat")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"d"))) (CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (8,"x0")] (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (5,"s"))) (CVar (8,"x0"))))) (CVar (7,"ds")))))))] []]),
+  CFunc ("Pretty","hang") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"i"),CPVar (1,"d")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","OpenNest")) (CLambda [CPVar (2,"ms"),CPVar (3,"r"),CPVar (4,"w")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (4,"w"))) (CVar (3,"r")))) (CVar (0,"i")))) (CVar (2,"ms")))))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","deDoc")) (CVar (1,"d")))) (CSymbol ("Pretty","CloseNest")))))] []]),
+  CFunc ("Pretty","hcat") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<>")))] []]),
+  CFunc ("Pretty","hsep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<+>")))] []]),
+  CFunc ("Pretty","int") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","text")) (CApply (CSymbol ("Prelude","show")) (CVar (0,"n"))))] []]),
+  CFunc ("Pretty","langle") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '<')))] []]),
+  CFunc ("Pretty","lbrace") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '{')))] []]),
+  CFunc ("Pretty","lbracket") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '[')))] []]),
+  CFunc ("Pretty","length") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","length"))) (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (0,"x0")] (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (0,"x0"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 5))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 6))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 7))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude","enumFromTo")) (CLit (CIntc 16))) (CLit (CIntc 31))))))) (CSymbol ("Prelude","ord"))))))] []]),
+  CFunc ("Pretty","line") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","linesep")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("Pretty","linebreak") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","linesep")) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Pretty","linesep") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","Doc"))) (CSymbol ("Pretty","Line")))] []]),
+  CFunc ("Pretty","list") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Pretty","fillEncloseSep")) (CSymbol ("Pretty","lbracket"))) (CSymbol ("Pretty","rbracket"))) (CSymbol ("Pretty","comma")))] []]),
+  CFunc ("Pretty","lparen") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '(')))] []]),
+  CFunc ("Pretty","multiGroup") 8 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Pretty","Width") []) (CFuncType (CTCons ("Pretty","Position") []) (CFuncType (CTCons ("Pretty","EndPosition") []) (CFuncType (CTCons ("Pretty","OutGroupPrefix") []) (CFuncType (CTCons ("Dequeue","Queue") [CTCons ("Prelude","(,)") [CTCons ("Pretty","StartPosition") [],CTCons ("Pretty","OutGroupPrefix") []]]) (CFuncType (CTCons ("Pretty","StartPosition") []) (CFuncType (CTCons ("Pretty","OutGroupPrefix") []) (CTCons ("Pretty","Out") []))))))))) (CRules CFlex [CRule [CPComb ("Pretty","Text") [CPVar (0,"t"),CPVar (1,"ts")],CPVar (2,"w"),CPVar (3,"p"),CPVar (4,"e"),CPVar (5,"outGrpPreOuter"),CPVar (6,"qs"),CPVar (7,"s"),CPVar (8,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneMulti")) (CVar (1,"ts"))) (CVar (2,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"p"))) (CVar (9,"l")))) (CVar (4,"e"))) (CVar (5,"outGrpPreOuter"))) (CVar (6,"qs"))) (CVar (7,"s"))) (CLambda [CPVar (10,"h"),CPVar (11,"c")] (CApply (CApply (CVar (8,"outGrpPreInner")) (CVar (10,"h"))) (CApply (CSymbol ("Pretty","outText")) (CVar (11,"c"))))))] [CLocalPat (CPVar (9,"l")) (CApply (CSymbol ("Prelude","length")) (CVar (0,"t"))) [],CLocalFunc (CFunc ("Pretty","outText") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (10,"c"),CPVar (11,"r"),CPVar (12,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"t"))) (CApply (CApply (CVar (10,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (11,"r"))) (CVar (9,"l")))) (CVar (12,"ms"))))] []]))],CRule [CPComb ("Pretty","Line") [CPVar (12,"s"),CPVar (13,"ts")],CPVar (14,"w"),CPVar (15,"p"),CPVar (16,"e"),CPVar (17,"outGrpPreOuter"),CPVar (18,"qs"),CPVar (19,"si"),CPVar (20,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneMulti")) (CVar (13,"ts"))) (CVar (14,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (15,"p"))) (CVar (21,"lens")))) (CVar (16,"e"))) (CVar (17,"outGrpPreOuter"))) (CVar (18,"qs"))) (CVar (19,"si"))) (CLambda [CPVar (22,"h"),CPVar (23,"c")] (CApply (CApply (CVar (20,"outGrpPreInner")) (CVar (22,"h"))) (CApply (CApply (CSymbol ("Pretty","outLine")) (CVar (22,"h"))) (CVar (23,"c"))))))] [CLocalPat (CPVar (21,"lens")) (CApply (CSymbol ("Prelude","length")) (CVar (12,"s"))) [],CLocalFunc (CFunc ("Pretty","outLine") 4 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (22,"h"),CPVar (23,"c"),CPVar (24,"r"),CPAs (27,"ms") (CPComb ("Prelude",":") [CPVar (25,"m"),CPVar (26,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (22,"h"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (12,"s"))) (CApply (CApply (CVar (23,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (24,"r"))) (CVar (21,"lens")))) (CVar (27,"ms"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","replicate")) (CVar (25,"m"))) (CLit (CCharc ' ')))) (CApply (CApply (CVar (23,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (14,"w"))) (CVar (25,"m")))) (CVar (27,"ms"))))))] []]))],CRule [CPComb ("Pretty","Open") [CPVar (24,"ts")],CPVar (25,"w"),CPVar (26,"p"),CPVar (27,"e"),CPVar (28,"outGrpPreOuter"),CPVar (29,"qs"),CPVar (30,"si"),CPVar (31,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (24,"ts"))) (CVar (25,"w"))) (CVar (26,"p"))) (CVar (27,"e"))) (CVar (28,"outGrpPreOuter"))) (CApply (CApply (CSymbol ("Dequeue","cons")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (30,"si"))) (CVar (31,"outGrpPreInner")))) (CVar (29,"qs")))) (CVar (26,"p"))) (CLambda [CPVar (32,"_"),CPVar (33,"c")] (CVar (33,"c"))))] [],CRule [CPComb ("Pretty","Close") [CPVar (34,"ts")],CPVar (35,"w"),CPVar (36,"p"),CPVar (37,"e"),CPVar (38,"outGrpPreOuter"),CPVar (39,"qs"),CPVar (40,"si"),CPVar (41,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CCase (CApply (CSymbol ("Dequeue","matchHead")) (CVar (39,"qs"))) [CBranch (CPComb ("Prelude","Nothing") []) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (34,"ts"))) (CVar (35,"w"))) (CVar (36,"p"))) (CVar (37,"e"))) (CLambda [CPVar (42,"h"),CPVar (43,"c")] (CApply (CApply (CVar (38,"outGrpPreOuter")) (CVar (42,"h"))) (CLambda [CPVar (44,"ri")] (CApply (CApply (CApply (CVar (41,"outGrpPreInner")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (36,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (40,"si"))) (CVar (44,"ri"))))) (CVar (43,"c"))) (CVar (44,"ri"))))))),CBranch (CPComb ("Prelude","Just") [CPComb ("Prelude","(,)") [CPComb ("Prelude","(,)") [CPVar (45,"s"),CPVar (46,"outGrpPre")],CPVar (47,"qs'")]]) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (34,"ts"))) (CVar (35,"w"))) (CVar (36,"p"))) (CVar (37,"e"))) (CVar (38,"outGrpPreOuter"))) (CVar (47,"qs'"))) (CVar (45,"s"))) (CLambda [CPVar (48,"h"),CPVar (49,"c")] (CApply (CApply (CVar (46,"outGrpPre")) (CVar (48,"h"))) (CLambda [CPVar (50,"ri")] (CApply (CApply (CApply (CVar (41,"outGrpPreInner")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (36,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (40,"si"))) (CVar (50,"ri"))))) (CVar (49,"c"))) (CVar (50,"ri")))))))])] [],CRule [CPComb ("Pretty","OpenNest") [CPVar (51,"f"),CPVar (52,"ts")],CPVar (53,"w"),CPVar (54,"p"),CPVar (55,"e"),CPVar (56,"outGrpPreOuter"),CPVar (57,"qs"),CPVar (58,"si"),CPVar (59,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (52,"ts"))) (CVar (53,"w"))) (CVar (54,"p"))) (CVar (55,"e"))) (CVar (56,"outGrpPreOuter"))) (CVar (57,"qs"))) (CVar (58,"si"))) (CLambda [CPVar (60,"h"),CPVar (61,"c")] (CApply (CApply (CVar (59,"outGrpPreInner")) (CVar (60,"h"))) (CLambda [CPVar (62,"r"),CPVar (63,"ms")] (CApply (CApply (CVar (61,"c")) (CVar (62,"r"))) (CApply (CApply (CApply (CVar (51,"f")) (CVar (63,"ms"))) (CVar (62,"r"))) (CVar (53,"w"))))))))] [],CRule [CPComb ("Pretty","CloseNest") [CPVar (64,"ts")],CPVar (65,"w"),CPVar (66,"p"),CPVar (67,"e"),CPVar (68,"outGrpPreOuter"),CPVar (69,"qs"),CPVar (70,"si"),CPVar (71,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (64,"ts"))) (CVar (65,"w"))) (CVar (66,"p"))) (CVar (67,"e"))) (CVar (68,"outGrpPreOuter"))) (CVar (69,"qs"))) (CVar (70,"si"))) (CLambda [CPVar (72,"h"),CPVar (73,"c")] (CApply (CApply (CVar (71,"outGrpPreInner")) (CVar (72,"h"))) (CLambda [CPVar (74,"r"),CPVar (75,"ms")] (CApply (CApply (CVar (73,"c")) (CVar (74,"r"))) (CApply (CSymbol ("Prelude","tail")) (CVar (75,"ms"))))))))] []]),
+  CFunc ("Pretty","nest") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"i"),CPVar (1,"d")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","OpenNest")) (CLambda [CPAs (4,"ms") (CPComb ("Prelude",":") [CPVar (2,"m"),CPVar (3,"_")]),CPVar (5,"_"),CPVar (6,"_")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"m"))) (CVar (0,"i")))) (CVar (4,"ms")))))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","deDoc")) (CVar (1,"d")))) (CSymbol ("Pretty","CloseNest")))))] []]),
+  CFunc ("Pretty","noGroup") 5 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Pretty","Width") []) (CFuncType (CTCons ("Pretty","Position") []) (CTCons ("Pretty","Out") [])))) (CRules CFlex [CRule [CPComb ("Pretty","Empty") [],CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Pretty","Text") [CPVar (4,"t"),CPVar (5,"ts")],CPVar (6,"w"),CPVar (7,"p"),CPVar (8,"r"),CPVar (9,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"t"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (5,"ts"))) (CVar (6,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (7,"p"))) (CVar (10,"l")))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (8,"r"))) (CVar (10,"l")))) (CVar (9,"ms"))))] [CLocalPat (CPVar (10,"l")) (CApply (CSymbol ("Prelude","length")) (CVar (4,"t"))) []],CRule [CPComb ("Pretty","Line") [CPVar (11,"_"),CPVar (12,"ts")],CPVar (13,"w"),CPVar (14,"p"),CPVar (15,"_"),CPAs (18,"ms") (CPComb ("Prelude",":") [CPVar (16,"m"),CPVar (17,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","replicate")) (CVar (16,"m"))) (CLit (CCharc ' ')))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (12,"ts"))) (CVar (13,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (14,"p"))) (CLit (CIntc 1)))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (13,"w"))) (CVar (16,"m")))) (CVar (18,"ms")))))] [],CRule [CPComb ("Pretty","Open") [CPVar (19,"ts")],CPVar (20,"w"),CPVar (21,"p"),CPVar (22,"r"),CPVar (23,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (19,"ts"))) (CVar (20,"w"))) (CVar (21,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (21,"p"))) (CVar (22,"r")))) (CLambda [CPVar (24,"_"),CPVar (25,"c")] (CVar (25,"c")))) (CVar (22,"r"))) (CVar (23,"ms")))] [],CRule [CPComb ("Pretty","Close") [CPVar (26,"ts")],CPVar (27,"w"),CPVar (28,"p"),CPVar (29,"r"),CPVar (30,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (26,"ts"))) (CVar (27,"w"))) (CVar (28,"p"))) (CVar (29,"r"))) (CVar (30,"ms")))] [],CRule [CPComb ("Pretty","OpenNest") [CPVar (31,"f"),CPVar (32,"ts")],CPVar (33,"w"),CPVar (34,"p"),CPVar (35,"r"),CPVar (36,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (32,"ts"))) (CVar (33,"w"))) (CVar (34,"p"))) (CVar (35,"r"))) (CApply (CApply (CApply (CVar (31,"f")) (CVar (36,"ms"))) (CVar (35,"r"))) (CVar (33,"w"))))] [],CRule [CPComb ("Pretty","CloseNest") [CPVar (37,"ts")],CPVar (38,"w"),CPVar (39,"p"),CPVar (40,"r"),CPVar (41,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (37,"ts"))) (CVar (38,"w"))) (CVar (39,"p"))) (CVar (40,"r"))) (CApply (CSymbol ("Prelude","tail")) (CVar (41,"ms"))))] []]),
+  CFunc ("Pretty","normalise") 0 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CTCons ("Pretty","Tokens") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","go")) (CSymbol ("Prelude","id")))] [CLocalFunc (CFunc ("Pretty","go") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"co"),CPComb ("Pretty","Empty") []] [(CSymbol ("Prelude","success"),CApply (CVar (0,"co")) (CSymbol ("Pretty","Empty")))] [],CRule [CPVar (1,"co"),CPComb ("Pretty","Open") [CPVar (2,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","go")) (CApply (CApply (CSymbol ("Prelude",".")) (CVar (1,"co"))) (CSymbol ("Pretty","open")))) (CVar (2,"ts")))] [],CRule [CPVar (3,"co"),CPComb ("Pretty","Close") [CPVar (4,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","go")) (CApply (CApply (CSymbol ("Prelude",".")) (CVar (3,"co"))) (CSymbol ("Pretty","Close")))) (CVar (4,"ts")))] [],CRule [CPVar (5,"co"),CPComb ("Pretty","Line") [CPVar (6,"s"),CPVar (7,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CApply (CSymbol ("Prelude",".")) (CVar (5,"co"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Pretty","Line")) (CVar (6,"s")))) (CApply (CSymbol ("Pretty","go")) (CSymbol ("Prelude","id")))))) (CVar (7,"ts")))] [],CRule [CPVar (8,"co"),CPComb ("Pretty","Text") [CPVar (9,"s"),CPVar (10,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","Text")) (CVar (9,"s"))) (CApply (CApply (CSymbol ("Pretty","go")) (CVar (8,"co"))) (CVar (10,"ts"))))] [],CRule [CPVar (11,"co"),CPComb ("Pretty","OpenNest") [CPVar (12,"f"),CPVar (13,"ts")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","OpenNest")) (CVar (12,"f"))) (CApply (CApply (CSymbol ("Pretty","go")) (CVar (11,"co"))) (CVar (13,"ts"))))] [],CRule [CPVar (14,"co"),CPComb ("Pretty","CloseNest") [CPVar (15,"ts")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","CloseNest")) (CApply (CApply (CSymbol ("Pretty","go")) (CVar (14,"co"))) (CVar (15,"ts"))))] []])),CLocalFunc (CFunc ("Pretty","open") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"t")] [(CSymbol ("Prelude","success"),CCase (CVar (0,"t")) [CBranch (CPComb ("Pretty","Close") [CPVar (1,"ts")]) (CVar (1,"ts")),CBranch (CPVar (2,"_")) (CApply (CSymbol ("Pretty","Open")) (CVar (0,"t")))])] []]))]]),
+  CFunc ("Pretty","oneGroup") 5 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Pretty","Width") []) (CFuncType (CTCons ("Pretty","Position") []) (CFuncType (CTCons ("Pretty","EndPosition") []) (CFuncType (CTCons ("Pretty","OutGroupPrefix") []) (CTCons ("Pretty","Out") [])))))) (CRules CFlex [CRule [CPComb ("Pretty","Text") [CPVar (0,"t"),CPVar (1,"ts")],CPVar (2,"w"),CPVar (3,"p"),CPVar (4,"e"),CPVar (5,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneOne")) (CVar (1,"ts"))) (CVar (2,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (3,"p"))) (CVar (6,"l")))) (CVar (4,"e"))) (CLambda [CPVar (7,"h"),CPVar (8,"c")] (CApply (CApply (CVar (5,"outGrpPre")) (CVar (7,"h"))) (CApply (CSymbol ("Pretty","outText")) (CVar (8,"c"))))))] [CLocalPat (CPVar (6,"l")) (CApply (CSymbol ("Prelude","length")) (CVar (0,"t"))) [],CLocalFunc (CFunc ("Pretty","outText") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (7,"c"),CPVar (8,"r"),CPVar (9,"ms")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"t"))) (CApply (CApply (CVar (7,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (8,"r"))) (CVar (6,"l")))) (CVar (9,"ms"))))] []]))],CRule [CPComb ("Pretty","Line") [CPVar (9,"s"),CPVar (10,"ts")],CPVar (11,"w"),CPVar (12,"p"),CPVar (13,"e"),CPVar (14,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneOne")) (CVar (10,"ts"))) (CVar (11,"w"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (12,"p"))) (CVar (15,"lens")))) (CVar (13,"e"))) (CLambda [CPVar (16,"h"),CPVar (17,"c")] (CApply (CApply (CVar (14,"outGrpPre")) (CVar (16,"h"))) (CApply (CApply (CSymbol ("Pretty","outLine")) (CVar (16,"h"))) (CVar (17,"c"))))))] [CLocalPat (CPVar (15,"lens")) (CApply (CSymbol ("Prelude","length")) (CVar (9,"s"))) [],CLocalFunc (CFunc ("Pretty","outLine") 4 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (16,"h"),CPVar (17,"c"),CPVar (18,"r"),CPAs (21,"ms") (CPComb ("Prelude",":") [CPVar (19,"m"),CPVar (20,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (16,"h"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (9,"s"))) (CApply (CApply (CVar (17,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (18,"r"))) (CVar (15,"lens")))) (CVar (21,"ms"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","replicate")) (CVar (19,"m"))) (CLit (CCharc ' ')))) (CApply (CApply (CVar (17,"c")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (11,"w"))) (CVar (19,"m")))) (CVar (21,"ms"))))))] []]))],CRule [CPComb ("Pretty","Open") [CPVar (18,"ts")],CPVar (19,"w"),CPVar (20,"p"),CPVar (21,"e"),CPVar (22,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (18,"ts"))) (CVar (19,"w"))) (CVar (20,"p"))) (CVar (21,"e"))) (CVar (22,"outGrpPre"))) (CSymbol ("Dequeue","empty"))) (CVar (20,"p"))) (CLambda [CPVar (23,"_"),CPVar (24,"c")] (CVar (24,"c"))))] [],CRule [CPComb ("Pretty","Close") [CPVar (25,"ts")],CPVar (26,"w"),CPVar (27,"p"),CPVar (28,"e"),CPVar (29,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (29,"outGrpPre")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (27,"p"))) (CVar (28,"e")))) (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (25,"ts"))) (CVar (26,"w"))) (CVar (27,"p"))))] [],CRule [CPComb ("Pretty","OpenNest") [CPVar (30,"f"),CPVar (31,"ts")],CPVar (32,"w"),CPVar (33,"p"),CPVar (34,"e"),CPVar (35,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (31,"ts"))) (CVar (32,"w"))) (CVar (33,"p"))) (CVar (34,"e"))) (CLambda [CPVar (36,"h"),CPVar (37,"c")] (CApply (CApply (CVar (35,"outGrpPre")) (CVar (36,"h"))) (CLambda [CPVar (38,"r"),CPVar (39,"ms")] (CApply (CApply (CVar (37,"c")) (CVar (38,"r"))) (CApply (CApply (CApply (CVar (30,"f")) (CVar (39,"ms"))) (CVar (38,"r"))) (CVar (32,"w"))))))))] [],CRule [CPComb ("Pretty","CloseNest") [CPVar (40,"ts")],CPVar (41,"w"),CPVar (42,"p"),CPVar (43,"e"),CPVar (44,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (40,"ts"))) (CVar (41,"w"))) (CVar (42,"p"))) (CVar (43,"e"))) (CLambda [CPVar (45,"h"),CPVar (46,"c")] (CApply (CApply (CVar (44,"outGrpPre")) (CVar (45,"h"))) (CLambda [CPVar (47,"r"),CPVar (48,"ms")] (CApply (CApply (CVar (46,"c")) (CVar (47,"r"))) (CApply (CSymbol ("Prelude","tail")) (CVar (48,"ms"))))))))] []]),
+  CFunc ("Pretty","parens") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","lparen"))) (CSymbol ("Pretty","rparen")))] []]),
+  CFunc ("Pretty","pretty") 2 Public (CFuncType (CTCons ("Pretty","Width") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Prelude","String") []))) (CRules CFlex [CRule [CPVar (0,"w"),CPVar (1,"d")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CApply (CSymbol ("Pretty","doc2Tokens")) (CVar (1,"d")))) (CVar (0,"w"))) (CLit (CIntc 1))) (CVar (0,"w"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 0))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("Pretty","pruneMulti") 8 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Pretty","Width") []) (CFuncType (CTCons ("Pretty","Position") []) (CFuncType (CTCons ("Pretty","EndPosition") []) (CFuncType (CTCons ("Pretty","OutGroupPrefix") []) (CFuncType (CTCons ("Dequeue","Queue") [CTCons ("Prelude","(,)") [CTCons ("Pretty","StartPosition") [],CTCons ("Pretty","OutGroupPrefix") []]]) (CFuncType (CTCons ("Pretty","StartPosition") []) (CFuncType (CTCons ("Pretty","OutGroupPrefix") []) (CTCons ("Pretty","Out") []))))))))) (CRules CFlex [CRule [CPVar (0,"ts"),CPVar (1,"w"),CPVar (2,"p"),CPVar (3,"e"),CPVar (4,"outGrpPreOuter"),CPVar (5,"qs"),CPVar (6,"si"),CPVar (7,"outGrpPreInner")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (2,"p"))) (CVar (3,"e")))) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","multiGroup")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p"))) (CVar (3,"e"))) (CVar (4,"outGrpPreOuter"))) (CVar (5,"qs"))) (CVar (6,"si"))) (CVar (7,"outGrpPreInner")))) (CApply (CApply (CVar (4,"outGrpPreOuter")) (CSymbol ("Prelude","False"))) (CLambda [CPVar (8,"r")] (CApply (CCase (CApply (CSymbol ("Dequeue","matchLast")) (CVar (5,"qs"))) [CBranch (CPComb ("Prelude","Nothing") []) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneOne")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (6,"si"))) (CVar (8,"r")))) (CVar (7,"outGrpPreInner"))),CBranch (CPComb ("Prelude","Just") [CPComb ("Prelude","(,)") [CPComb ("Prelude","(,)") [CPVar (9,"s"),CPVar (10,"outGrpPre")],CPVar (11,"qs'")]]) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","pruneMulti")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (9,"s"))) (CVar (8,"r")))) (CVar (10,"outGrpPre"))) (CVar (11,"qs'"))) (CVar (6,"si"))) (CVar (7,"outGrpPreInner")))]) (CVar (8,"r"))))))] []]),
+  CFunc ("Pretty","pruneOne") 5 Private (CFuncType (CTCons ("Pretty","Tokens") []) (CFuncType (CTCons ("Pretty","Width") []) (CFuncType (CTCons ("Pretty","Position") []) (CFuncType (CTCons ("Pretty","EndPosition") []) (CFuncType (CTCons ("Pretty","OutGroupPrefix") []) (CTCons ("Pretty","Out") [])))))) (CRules CFlex [CRule [CPVar (0,"ts"),CPVar (1,"w"),CPVar (2,"p"),CPVar (3,"e"),CPVar (4,"outGrpPre")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (2,"p"))) (CVar (3,"e")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Pretty","oneGroup")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p"))) (CVar (3,"e"))) (CVar (4,"outGrpPre")))) (CApply (CApply (CVar (4,"outGrpPre")) (CSymbol ("Prelude","False"))) (CApply (CApply (CApply (CSymbol ("Pretty","noGroup")) (CVar (0,"ts"))) (CVar (1,"w"))) (CVar (2,"p")))))] []]),
+  CFunc ("Pretty","punctuate") 2 Public (CFuncType (CTCons ("Pretty","Doc") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"d"),CPAs (4,"ds") (CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")])] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","go")) (CVar (4,"ds")))] [CLocalFunc (CFunc ("Pretty","go") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude",":") [CPVar (5,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (5,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (6,"x"),CPAs (9,"xs") (CPComb ("Prelude",":") [CPVar (7,"_"),CPVar (8,"_")])]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Pretty","<>")) (CVar (6,"x"))) (CVar (1,"d")))) (CApply (CSymbol ("Pretty","go")) (CVar (9,"xs"))))] []]))]]),
+  CFunc ("Pretty","rangle") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '>')))] []]),
+  CFunc ("Pretty","rbrace") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '}')))] []]),
+  CFunc ("Pretty","rbracket") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ']')))] []]),
+  CFunc ("Pretty","rparen") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ')')))] []]),
+  CFunc ("Pretty","semi") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ';')))] []]),
+  CFunc ("Pretty","semiBraces") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Pretty","fillEncloseSep")) (CSymbol ("Pretty","lbrace"))) (CSymbol ("Pretty","rbrace"))) (CSymbol ("Pretty","semi")))] []]),
+  CFunc ("Pretty","sep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","group"))) (CSymbol ("Pretty","vsep")))] []]),
+  CFunc ("Pretty","softbreak") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","group")) (CSymbol ("Pretty","linebreak")))] []]),
+  CFunc ("Pretty","softline") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","group")) (CSymbol ("Pretty","line")))] []]),
+  CFunc ("Pretty","space") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc ' ')))] []]),
+  CFunc ("Pretty","squote") 0 Public (CTCons ("Pretty","Doc") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","char")) (CLit (CCharc '\'')))] []]),
+  CFunc ("Pretty","squotes") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CSymbol ("Pretty","squote"))) (CSymbol ("Pretty","squote")))] []]),
+  CFunc ("Pretty","string") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Pretty","hcat"))) (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (0,"c")] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","elem")) (CVar (0,"c"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\r'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Pretty","line"))) (CApply (CSymbol ("Pretty","char")) (CVar (0,"c")))))))] []]),
+  CFunc ("Pretty","text") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","Doc")) (CApply (CSymbol ("Pretty","Text")) (CVar (0,"s"))))] []]),
+  CFunc ("Pretty","tupled") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Pretty","fillEncloseSep")) (CSymbol ("Pretty","lparen"))) (CSymbol ("Pretty","rparen"))) (CSymbol ("Pretty","comma")))] []]),
+  CFunc ("Pretty","vcat") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<$$>")))] []]),
+  CFunc ("Pretty","vsep") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Pretty","Doc") []]) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Pretty","compose")) (CSymbol ("Pretty","<$>")))] []])]
+ [COp ("Pretty","<//>") CInfixlOp 1,COp ("Pretty","<$$>") CInfixlOp 1,COp ("Pretty","</>") CInfixlOp 1,COp ("Pretty","<$>") CInfixlOp 1,COp ("Pretty","<+>") CInfixlOp 1,COp ("Pretty","<>") CInfixlOp 1]
diff --git a/src/lib/Curry/Module/.curry/PropertyFile.acy b/src/lib/Curry/Module/.curry/PropertyFile.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/PropertyFile.acy
@@ -0,0 +1,7 @@
+CurryProg "PropertyFile"
+ ["Prelude","Directory","IOExts","Char"]
+ []
+ [CFunc ("PropertyFile","changePropertyInFile") 3 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"pname"),CPVar (2,"pval")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CApply (CSymbol ("IOExts","updateFile")) (CLambda [CPVar (3,"rcs")] (CApply (CApply (CSymbol ("Prelude","$")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","unlines"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("PropertyFile","changeProp")))) (CSymbol ("Prelude","lines"))))) (CVar (3,"rcs"))))) (CVar (0,"file")))])] [CLocalFunc (CFunc ("PropertyFile","changeProp") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (3,"l")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"s1"),CPVar (5,"s2")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (6,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x0"))) (CLit (CCharc '='))))) (CVar (3,"l"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Prelude","null")) (CVar (3,"l")))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Char","isAlpha")) (CApply (CSymbol ("Prelude","head")) (CVar (3,"l")))))) (CApply (CSymbol ("Prelude","null")) (CVar (5,"s2")))))) (CVar (3,"l"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"s1"))) (CVar (1,"pname")))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"s1"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '='))) (CSymbol ("Prelude","[]")))) (CVar (2,"pval"))))) (CVar (3,"l")))))] []]))]]),
+  CFunc ("PropertyFile","readPropertyFile") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"pfexists")) (CApply (CSymbol ("Directory","doesFileExist")) (CVar (0,"file"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (1,"pfexists"))) (CDoExpr [CSPat (CPVar (2,"rcs")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file"))),CSExpr (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","return"))) (CApply (CApply (CSymbol ("Prelude","$")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("PropertyFile","splitEqs"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","filter")) (CLambda [CPVar (3,"l")] (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Prelude","null")) (CVar (3,"l"))))) (CApply (CSymbol ("Char","isAlpha")) (CApply (CSymbol ("Prelude","head")) (CVar (3,"l")))))))) (CSymbol ("Prelude","lines"))))) (CVar (2,"rcs"))))])) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]"))))])] [CLocalFunc (CFunc ("PropertyFile","splitEqs") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"eq"),CPVar (2,"eqs")]] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x0"))) (CLit (CCharc '='))))) (CVar (1,"eq"))) [CBranch (CPComb ("Prelude","(,)") [CPVar (4,"prop"),CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"val")]]) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (4,"prop"))) (CVar (6,"val")))) (CApply (CSymbol ("PropertyFile","splitEqs")) (CVar (2,"eqs")))),CBranch (CPVar (7,"_")) (CApply (CSymbol ("PropertyFile","splitEqs")) (CVar (2,"eqs")))])] []]))]]),
+  CFunc ("PropertyFile","updatePropertyFile") 3 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"pname"),CPVar (2,"pval")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"props")) (CApply (CSymbol ("PropertyFile","readPropertyFile")) (CVar (0,"file"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","lookup")) (CVar (1,"pname"))) (CVar (3,"props")))) (CSymbol ("Prelude","Nothing")))) (CApply (CApply (CSymbol ("Prelude","appendFile")) (CVar (0,"file"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"pname"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '='))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"pval"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CApply (CSymbol ("PropertyFile","changePropertyInFile")) (CVar (0,"file"))) (CVar (1,"pname"))) (CVar (2,"pval"))))])] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/PropertyFile.cy b/src/lib/Curry/Module/.curry/PropertyFile.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/PropertyFile.cy
@@ -0,0 +1,13 @@
+Module "PropertyFile"
+(Just (Exporting (12,20) [(Export (QualIdent Nothing (Ident "readPropertyFile" 0))),(Export (QualIdent Nothing (Ident "updatePropertyFile" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (14,1) "Directory" False Nothing Nothing)
+,(ImportDecl (15,1) "IOExts" False Nothing Nothing)
+,(ImportDecl (16,1) "Char" False Nothing Nothing)
+,(TypeSig (20,1) [(Ident "readPropertyFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))])))
+,(FunctionDecl (21,1) (Ident "readPropertyFile" 0) [(Equation (21,1) (FunLhs (Ident "readPropertyFile" 0) [(VariablePattern (Ident "file" 2))]) (SimpleRhs (21,25) (Do [(StmtBind (VariablePattern (Ident "pfexists" 14)) (Apply (Variable (QualIdent (Just "Directory") (Ident "doesFileExist" 0))) (Variable (QualIdent Nothing (Ident "file" 2)))))] (IfThenElse (Variable (QualIdent Nothing (Ident "pfexists" 14))) (Do [(StmtBind (VariablePattern (Ident "rcs" 15)) (Apply (Variable (QualIdent (Just "Prelude") (Ident "readFile" 0))) (Variable (QualIdent Nothing (Ident "file" 2)))))] (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "splitEqs" 3))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (Lambda [(VariablePattern (Ident "l" 16))] (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "l" 16)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "Char") (Ident "isAlpha" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "head" 0))) (Variable (QualIdent Nothing (Ident "l" 16)))))))))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "lines" 0))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Variable (QualIdent Nothing (Ident "rcs" 15)))))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (List [])))) [(FunctionDecl (29,3) (Ident "splitEqs" 3) [(Equation (29,3) (FunLhs (Ident "splitEqs" 3) [(ListPattern [])]) (SimpleRhs (29,17) (List []) [])),(Equation (30,3) (FunLhs (Ident "splitEqs" 3) [(ParenPattern (InfixPattern (VariablePattern (Ident "eq" 6)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "eqs" 6))))]) (SimpleRhs (30,23) (Case (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "break" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '=')))) (Variable (QualIdent Nothing (Ident "eq" 6)))) [(Alt (31,6) (TuplePattern [(VariablePattern (Ident "prop" 8)),(InfixPattern (VariablePattern (Ident "_" 9)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "val" 8)))]) (SimpleRhs (31,22) (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "prop" 8))),(Variable (QualIdent Nothing (Ident "val" 8)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "splitEqs" 3))) (Variable (QualIdent Nothing (Ident "eqs" 6))))) [])),(Alt (32,6) (VariablePattern (Ident "_" 12)) (SimpleRhs (32,22) (Apply (Variable (QualIdent Nothing (Ident "splitEqs" 3))) (Variable (QualIdent Nothing (Ident "eqs" 6)))) []))]) []))])]))])
+,(TypeSig (40,1) [(Ident "updatePropertyFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))))
+,(FunctionDecl (41,1) (Ident "updatePropertyFile" 0) [(Equation (41,1) (FunLhs (Ident "updatePropertyFile" 0) [(VariablePattern (Ident "file" 17)),(VariablePattern (Ident "pname" 17)),(VariablePattern (Ident "pval" 17))]) (SimpleRhs (41,38) (Do [(StmtBind (VariablePattern (Ident "props" 19)) (Apply (Variable (QualIdent (Just "PropertyFile") (Ident "readPropertyFile" 0))) (Variable (QualIdent Nothing (Ident "file" 17)))))] (IfThenElse (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "lookup" 0))) (Variable (QualIdent Nothing (Ident "pname" 17)))) (Variable (QualIdent Nothing (Ident "props" 19)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "appendFile" 0))) (Variable (QualIdent Nothing (Ident "file" 17)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "pname" 17))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "=")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "pval" 17))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n"))))))) (Apply (Apply (Apply (Variable (QualIdent (Just "PropertyFile") (Ident "changePropertyInFile" 0))) (Variable (QualIdent Nothing (Ident "file" 17)))) (Variable (QualIdent Nothing (Ident "pname" 17)))) (Variable (QualIdent Nothing (Ident "pval" 17)))))) []))])
+,(TypeSig (48,1) [(Ident "changePropertyInFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))))
+,(FunctionDecl (49,1) (Ident "changePropertyInFile" 0) [(Equation (49,1) (FunLhs (Ident "changePropertyInFile" 0) [(VariablePattern (Ident "file" 20)),(VariablePattern (Ident "pname" 20)),(VariablePattern (Ident "pval" 20))]) (SimpleRhs (49,40) (Do [] (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "updateFile" 0))) (Paren (Lambda [(VariablePattern (Ident "rcs" 26))] (InfixApply (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "changeProp" 21)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "lines" 0))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Variable (QualIdent Nothing (Ident "rcs" 26))))))) (Variable (QualIdent Nothing (Ident "file" 20))))) [(FunctionDecl (52,3) (Ident "changeProp" 21) [(Equation (52,3) (FunLhs (Ident "changeProp" 21) [(VariablePattern (Ident "l" 22))]) (SimpleRhs (52,18) (Let [(PatternDecl (52,22) (TuplePattern [(VariablePattern (Ident "s1" 24)),(VariablePattern (Ident "s2" 24))]) (SimpleRhs (52,32) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "break" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '=')))) (Variable (QualIdent Nothing (Ident "l" 22)))) []))] (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "l" 22)))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (Paren (Apply (Variable (QualIdent (Just "Char") (Ident "isAlpha" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "head" 0))) (Variable (QualIdent Nothing (Ident "l" 22)))))))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "s2" 24)))))) (Variable (QualIdent Nothing (Ident "l" 22))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "s1" 24))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "pname" 20)))) (InfixApply (Variable (QualIdent Nothing (Ident "s1" 24))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "=")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "pval" 20))))) (Variable (QualIdent Nothing (Ident "l" 22)))))) []))])]))])
+]
diff --git a/src/lib/Curry/Module/.curry/PropertyFile.efc b/src/lib/Curry/Module/.curry/PropertyFile.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/PropertyFile.efc
@@ -0,0 +1,1 @@
+Prog "PropertyFile" ["Char","Directory","IOExts","Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"PropertyFile","readPropertyFile")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Directory","doesFileExist")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"PropertyFile","readPropertyFile._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"PropertyFile","readPropertyFile.splitEqs.3")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","break")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Lit (Charc  '=')]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]) [Branch (Pattern ((Nothing,Just (FuncType (TVar 8) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 8),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]),5)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 10) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]))),"Prelude",":")) [(Just (TVar 10),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]),7)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 8) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Var ((Just (TVar 8),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]),7))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"PropertyFile","readPropertyFile.splitEqs.3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 10]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"PropertyFile","readPropertyFile.splitEqs.3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"PropertyFile","readPropertyFile._#lambda3")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Bool")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","readFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"PropertyFile","readPropertyFile._#lambda3._#lambda4")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"PropertyFile","readPropertyFile._#lambda3._#lambda4")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"Prelude","$")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"Prelude","return")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"PropertyFile","readPropertyFile.splitEqs.3")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","filter")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"PropertyFile","readPropertyFile._#lambda3._#lambda4._#lambda5")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines")) []]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"PropertyFile","readPropertyFile._#lambda3._#lambda4._#lambda5")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isAlpha")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","head")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"PropertyFile","updatePropertyFile")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"PropertyFile","readPropertyFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))),"PropertyFile","updatePropertyFile._#lambda6")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))),"PropertyFile","updatePropertyFile._#lambda6")) 4 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","lookup")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","Nothing")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","appendFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '='),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '\n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"PropertyFile","changePropertyInFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"PropertyFile","changePropertyInFile")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","updateFile")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"PropertyFile","changePropertyInFile._#lambda7")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"PropertyFile","changePropertyInFile.changeProp.21")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)] (Let [((Just (TVar 3),4),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 10) (TVar 11)) (FuncType (TVar 10) (TVar 11))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 9) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 9]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 9],TCons (Nothing,Nothing,"Prelude","[]") [TVar 9]]))),"Prelude","break")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 6) (FuncType (TVar 7) (TVar 8))) (FuncType (TVar 7) (FuncType (TVar 6) (TVar 8)))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 5) (FuncType (TVar 5) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Lit (Charc  '=')]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"PropertyFile","changePropertyInFile.changeProp.21._#selFP3#s1")) [Var ((Just (TVar 3),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"PropertyFile","changePropertyInFile.changeProp.21._#selFP4#s2")) [Var ((Just (TVar 3),4))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isAlpha")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","head")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '='),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])]))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"PropertyFile","changePropertyInFile.changeProp.21._#selFP3#s1")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"PropertyFile","changePropertyInFile.changeProp.21._#selFP4#s2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"PropertyFile","changePropertyInFile._#lambda7")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"PropertyFile","changePropertyInFile.changeProp.21")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines")) []]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]))] []
diff --git a/src/lib/Curry/Module/.curry/PropertyFile.fcy b/src/lib/Curry/Module/.curry/PropertyFile.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/PropertyFile.fcy
@@ -0,0 +1,1 @@
+Prog "PropertyFile" ["Char","Directory","IOExts","Prelude"] [] [Func ("PropertyFile","readPropertyFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Directory","doesFileExist") [Var 1],Comb (FuncPartCall 1) ("PropertyFile","readPropertyFile._#lambda3") [Var 1]])),Func ("PropertyFile","readPropertyFile.splitEqs.3") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],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","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Lit (Charc  '=')]],Var 2]) [Branch (Pattern ("Prelude","(,)") [4,5]) (Case  Rigid (Var 5) [Branch (Pattern ("Prelude",":") [6,7]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Var 4,Var 7],Comb FuncCall ("PropertyFile","readPropertyFile.splitEqs.3") [Var 3]]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("PropertyFile","readPropertyFile.splitEqs.3") [Var 3])])])])),Func ("PropertyFile","readPropertyFile._#lambda3") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]]))) (Rule [1,2] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","readFile") [Var 1],Comb (FuncPartCall 1) ("PropertyFile","readPropertyFile._#lambda3._#lambda4") []]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []])])),Func ("PropertyFile","readPropertyFile._#lambda3._#lambda4") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]])) (Rule [1] (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("PropertyFile","readPropertyFile.splitEqs.3") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","filter") [Comb (FuncPartCall 1) ("PropertyFile","readPropertyFile._#lambda3._#lambda4._#lambda5") []],Comb (FuncPartCall 1) ("Prelude","lines") []]],Var 1]])),Func ("PropertyFile","readPropertyFile._#lambda3._#lambda4._#lambda5") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","null") [Var 1]],Comb FuncCall ("Char","isAlpha") [Comb FuncCall ("Prelude","head") [Var 1]]])),Func ("PropertyFile","updatePropertyFile") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("PropertyFile","readPropertyFile") [Var 1],Comb (FuncPartCall 1) ("PropertyFile","updatePropertyFile._#lambda6") [Var 1,Var 2,Var 3]])),Func ("PropertyFile","updatePropertyFile._#lambda6") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [1,2,3,4] (Case  Rigid (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","lookup") [Var 2,Var 4],Comb ConsCall ("Prelude","Nothing") []]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","appendFile") [Var 1,Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '='),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Var 3,Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("PropertyFile","changePropertyInFile") [Var 1,Var 2,Var 3])])),Func ("PropertyFile","changePropertyInFile") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("IOExts","updateFile") [Comb (FuncPartCall 1) ("PropertyFile","changePropertyInFile._#lambda7") [Var 2,Var 3],Var 1])),Func ("PropertyFile","changePropertyInFile.changeProp.21") 3 Private (FuncType (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,3] (Let [(4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Lit (Charc  '=')]],Var 3])] (Let [(5,Comb FuncCall ("PropertyFile","changePropertyInFile.changeProp.21._#selFP3#s1") [Var 4])] (Let [(6,Comb FuncCall ("PropertyFile","changePropertyInFile.changeProp.21._#selFP4#s2") [Var 4])] (Case  Rigid (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","null") [Var 3],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","not") [Comb FuncCall ("Char","isAlpha") [Comb FuncCall ("Prelude","head") [Var 3]]],Comb FuncCall ("Prelude","null") [Var 6]]]) [Branch (Pattern ("Prelude","True") []) (Var 3),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 5,Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","++") [Var 5,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '='),Comb ConsCall ("Prelude","[]") []],Var 2]]),Branch (Pattern ("Prelude","False") []) (Var 3)])]))))),Func ("PropertyFile","changePropertyInFile.changeProp.21._#selFP3#s1") 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 ("PropertyFile","changePropertyInFile.changeProp.21._#selFP4#s2") 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 ("PropertyFile","changePropertyInFile._#lambda7") 3 Private (FuncType (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,3] (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","unlines") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("PropertyFile","changePropertyInFile.changeProp.21") [Var 1,Var 2]],Comb (FuncPartCall 1) ("Prelude","lines") []]],Var 3]))] []
diff --git a/src/lib/Curry/Module/.curry/PropertyFile.fint b/src/lib/Curry/Module/.curry/PropertyFile.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/PropertyFile.fint
@@ -0,0 +1,1 @@
+Prog "PropertyFile" ["Char","Directory","IOExts","Prelude"] [] [Func ("PropertyFile","readPropertyFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]])) (Rule [] (Var 0)),Func ("PropertyFile","updatePropertyFile") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/PropertyFile.uacy b/src/lib/Curry/Module/.curry/PropertyFile.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/PropertyFile.uacy
@@ -0,0 +1,7 @@
+CurryProg "PropertyFile"
+ ["Prelude","Directory","IOExts","Char"]
+ []
+ [CFunc ("PropertyFile","changePropertyInFile") 3 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"pname"),CPVar (2,"pval")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CApply (CSymbol ("IOExts","updateFile")) (CLambda [CPVar (3,"rcs")] (CApply (CApply (CSymbol ("Prelude","$")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","unlines"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("PropertyFile","changeProp")))) (CSymbol ("Prelude","lines"))))) (CVar (3,"rcs"))))) (CVar (0,"file")))])] [CLocalFunc (CFunc ("PropertyFile","changeProp") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (3,"l")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"s1"),CPVar (5,"s2")]) (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (6,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x0"))) (CLit (CCharc '='))))) (CVar (3,"l"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Prelude","null")) (CVar (3,"l")))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Char","isAlpha")) (CApply (CSymbol ("Prelude","head")) (CVar (3,"l")))))) (CApply (CSymbol ("Prelude","null")) (CVar (5,"s2")))))) (CVar (3,"l"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"s1"))) (CVar (1,"pname")))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (4,"s1"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '='))) (CSymbol ("Prelude","[]")))) (CVar (2,"pval"))))) (CVar (3,"l")))))] []]))]]),
+  CFunc ("PropertyFile","readPropertyFile") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","String") []]]])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"pfexists")) (CApply (CSymbol ("Directory","doesFileExist")) (CVar (0,"file"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CVar (1,"pfexists"))) (CDoExpr [CSPat (CPVar (2,"rcs")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file"))),CSExpr (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","return"))) (CApply (CApply (CSymbol ("Prelude","$")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("PropertyFile","splitEqs"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","filter")) (CLambda [CPVar (3,"l")] (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","not")) (CApply (CSymbol ("Prelude","null")) (CVar (3,"l"))))) (CApply (CSymbol ("Char","isAlpha")) (CApply (CSymbol ("Prelude","head")) (CVar (3,"l")))))))) (CSymbol ("Prelude","lines"))))) (CVar (2,"rcs"))))])) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]"))))])] [CLocalFunc (CFunc ("PropertyFile","splitEqs") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"eq"),CPVar (2,"eqs")]] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("Prelude","break")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"x0"))) (CLit (CCharc '='))))) (CVar (1,"eq"))) [CBranch (CPComb ("Prelude","(,)") [CPVar (4,"prop"),CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"val")]]) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (4,"prop"))) (CVar (6,"val")))) (CApply (CSymbol ("PropertyFile","splitEqs")) (CVar (2,"eqs")))),CBranch (CPVar (7,"_")) (CApply (CSymbol ("PropertyFile","splitEqs")) (CVar (2,"eqs")))])] []]))]]),
+  CFunc ("PropertyFile","updatePropertyFile") 3 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"file"),CPVar (1,"pname"),CPVar (2,"pval")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (3,"props")) (CApply (CSymbol ("PropertyFile","readPropertyFile")) (CVar (0,"file"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","lookup")) (CVar (1,"pname"))) (CVar (3,"props")))) (CSymbol ("Prelude","Nothing")))) (CApply (CApply (CSymbol ("Prelude","appendFile")) (CVar (0,"file"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"pname"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '='))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"pval"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CApply (CSymbol ("PropertyFile","changePropertyInFile")) (CVar (0,"file"))) (CVar (1,"pname"))) (CVar (2,"pval"))))])] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Random.acy b/src/lib/Curry/Module/.curry/Random.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Random.acy
@@ -0,0 +1,20 @@
+CurryProg "Random"
+ ["Prelude","Time","System"]
+ []
+ [CFunc ("Random","addend") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 11))] []]),
+  CFunc ("Random","getRandomSeed") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CSymbol ("Time","getClockTime"))) (CLambda [CPVar (0,"time")] (CApply (CApply (CSymbol ("Prelude",">>=")) (CSymbol ("System","getCPUTime"))) (CLambda [CPVar (1,"msecs")] (CLetDecl [CLocalPat (CPComb ("Time","CalendarTime") [CPVar (2,"y"),CPVar (3,"mo"),CPVar (4,"d"),CPVar (5,"h"),CPVar (6,"m"),CPVar (7,"s"),CPVar (8,"_")]) (CApply (CSymbol ("Time","toUTCTime")) (CVar (0,"time"))) []] (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"y"))) (CVar (3,"mo")))) (CVar (4,"d")))) (CVar (5,"h")))) (CApply (CApply (CSymbol ("Prelude","*")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (6,"m"))) (CVar (7,"s")))) (CVar (1,"msecs"))))) (CSymbol ("Random","mask")))))))))] []]),
+  CFunc ("Random","intlimit") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 2147483648))] []]),
+  CFunc ("Random","intsize") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 32))] []]),
+  CFunc ("Random","intspan") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 4294967296))] []]),
+  CFunc ("Random","mask") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 281474976710656))] []]),
+  CFunc ("Random","multiplier") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 25214903917))] []]),
+  CFunc ("Random","nextBoolean") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (1,"x0"))) (CLit (CIntc 0))))) (CApply (CApply (CSymbol ("Random","nextIntBits")) (CVar (0,"seed"))) (CLit (CIntc 1))))] []]),
+  CFunc ("Random","nextInt") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Random","nextIntBits")) (CVar (0,"seed"))) (CSymbol ("Random","intsize")))] []]),
+  CFunc ("Random","nextIntBits") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"seed"),CPVar (1,"bits")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Random","adjust"))) (CVar (3,"list")))] [CLocalPat (CPVar (2,"init")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Random","xor")) (CVar (0,"seed"))) (CSymbol ("Random","multiplier")))) (CSymbol ("Random","mask"))) [],CLocalPat (CPVar (3,"list")) (CApply (CSymbol ("Random","sequence")) (CVar (2,"init"))) [],CLocalPat (CPVar (4,"shift")) (CApply (CApply (CSymbol ("Random","power")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Prelude","-")) (CSymbol ("Random","powermask"))) (CVar (1,"bits")))) [],CLocalFunc (CFunc ("Random","adjust") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (5,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (6,"arg"))) (CSymbol ("Random","intlimit")))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (6,"arg"))) (CSymbol ("Random","intspan")))) (CVar (6,"arg")))] [CLocalPat (CPVar (6,"arg")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (5,"x"))) (CVar (4,"shift")))) (CSymbol ("Random","intspan"))) []]]))]]),
+  CFunc ("Random","nextIntRange") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"seed"),CPVar (1,"n")] [(CApply (CApply (CSymbol ("Prelude",">")) (CVar (1,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Random","power_of_2")) (CVar (1,"n")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Random","adjust_a"))) (CVar (2,"seq")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Random","adjust_b"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CSymbol ("Random","adjust_c"))) (CVar (2,"seq")))))] [CLocalPat (CPVar (2,"seq")) (CApply (CApply (CSymbol ("Random","nextIntBits")) (CVar (0,"seed"))) (CApply (CApply (CSymbol ("Prelude","-")) (CSymbol ("Random","intsize"))) (CLit (CIntc 1)))) [],CLocalFunc (CFunc ("Random","adjust_a") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (3,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (1,"n"))) (CVar (3,"x")))) (CSymbol ("Random","intlimit")))] []])),CLocalFunc (CFunc ("Random","adjust_b") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (3,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","mod")) (CVar (3,"x"))) (CVar (1,"n")))] []])),CLocalFunc (CFunc ("Random","adjust_c") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (3,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"x"))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (3,"x"))) (CVar (1,"n"))))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"n"))) (CLit (CIntc 1))))) (CLit (CIntc 0)))] []])),CLocalFunc (CFunc ("Random","power_of_2") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (3,"k")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"k"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (3,"k"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (3,"k"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))) (CApply (CSymbol ("Random","power_of_2")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (3,"k"))) (CLit (CIntc 2)))))))] []]))]]),
+  CFunc ("Random","nextseed") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"seed"))) (CSymbol ("Random","multiplier")))) (CSymbol ("Random","addend")))) (CSymbol ("Random","mask")))] []]),
+  CFunc ("Random","power") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"base"),CPVar (1,"exp")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Random","binary")) (CLit (CIntc 1))) (CVar (0,"base"))) (CVar (1,"exp")))] [CLocalFunc (CFunc ("Random","binary") 3 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])))) (CRules CFlex [CRule [CPVar (2,"x"),CPVar (3,"b"),CPVar (4,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"e"))) (CLit (CIntc 0)))) (CVar (2,"x"))) (CApply (CApply (CApply (CSymbol ("Random","binary")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (2,"x"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (4,"e"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (3,"b"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"b"))) (CVar (3,"b")))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (4,"e"))) (CLit (CIntc 2)))))] []]))]]),
+  CFunc ("Random","powermask") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 48))] []]),
+  CFunc ("Random","sequence") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"next"))) (CApply (CSymbol ("Random","sequence")) (CVar (1,"next"))))] [CLocalPat (CPVar (1,"next")) (CApply (CSymbol ("Random","nextseed")) (CVar (0,"seed"))) []]]),
+  CFunc ("Random","xor") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"y"))) (CLit (CIntc 0))))) (CLit (CIntc 0))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"lastBit"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (3,"restBits")))))] [CLocalPat (CPVar (2,"lastBit")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"x"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"y"))) (CLit (CIntc 2))))) (CLit (CIntc 0))) (CLit (CIntc 1))) [],CLocalPat (CPVar (3,"restBits")) (CApply (CApply (CSymbol ("Random","xor")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"x"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"y"))) (CLit (CIntc 2)))) []]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Random.cy b/src/lib/Curry/Module/.curry/Random.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Random.cy
@@ -0,0 +1,26 @@
+Module "Random"
+(Just (Exporting (19,14) [(Export (QualIdent Nothing (Ident "nextInt" 0))),(Export (QualIdent Nothing (Ident "nextIntRange" 0))),(Export (QualIdent Nothing (Ident "nextBoolean" 0))),(Export (QualIdent Nothing (Ident "getRandomSeed" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (21,1) "Time" False Nothing Nothing)
+,(ImportDecl (22,1) "System" False Nothing (Just (Importing (22,14) [(Import (Ident "getCPUTime" 0))])))
+,(FunctionDecl (30,1) (Ident "multiplier" 0) [(Equation (30,1) (FunLhs (Ident "multiplier" 0) []) (SimpleRhs (30,14) (Literal (Int (Ident "_" 4) 25214903917)) []))])
+,(FunctionDecl (31,1) (Ident "addend" 0) [(Equation (31,1) (FunLhs (Ident "addend" 0) []) (SimpleRhs (31,14) (Literal (Int (Ident "_" 7) 11)) []))])
+,(FunctionDecl (32,1) (Ident "powermask" 0) [(Equation (32,1) (FunLhs (Ident "powermask" 0) []) (SimpleRhs (32,14) (Literal (Int (Ident "_" 10) 48)) []))])
+,(FunctionDecl (33,1) (Ident "mask" 0) [(Equation (33,1) (FunLhs (Ident "mask" 0) []) (SimpleRhs (33,14) (Literal (Int (Ident "_" 13) 281474976710656)) []))])
+,(FunctionDecl (34,1) (Ident "intsize" 0) [(Equation (34,1) (FunLhs (Ident "intsize" 0) []) (SimpleRhs (34,14) (Literal (Int (Ident "_" 16) 32)) []))])
+,(FunctionDecl (35,1) (Ident "intspan" 0) [(Equation (35,1) (FunLhs (Ident "intspan" 0) []) (SimpleRhs (35,14) (Literal (Int (Ident "_" 19) 4294967296)) []))])
+,(FunctionDecl (36,1) (Ident "intlimit" 0) [(Equation (36,1) (FunLhs (Ident "intlimit" 0) []) (SimpleRhs (36,14) (Literal (Int (Ident "_" 22) 2147483648)) []))])
+,(FunctionDecl (40,1) (Ident "sequence" 0) [(Equation (40,1) (FunLhs (Ident "sequence" 0) [(VariablePattern (Ident "seed" 23))]) (SimpleRhs (40,17) (InfixApply (Variable (QualIdent Nothing (Ident "next" 24))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "Random") (Ident "sequence" 0))) (Variable (QualIdent Nothing (Ident "next" 24))))) [(PatternDecl (41,11) (VariablePattern (Ident "next" 24)) (SimpleRhs (41,18) (Apply (Variable (QualIdent (Just "Random") (Ident "nextseed" 0))) (Variable (QualIdent Nothing (Ident "seed" 23)))) []))]))])
+,(FunctionDecl (45,1) (Ident "nextseed" 0) [(Equation (45,1) (FunLhs (Ident "nextseed" 0) [(VariablePattern (Ident "seed" 26))]) (SimpleRhs (45,17) (InfixApply (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "seed" 26))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent (Just "Random") (Ident "multiplier" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent (Just "Random") (Ident "addend" 0))))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Variable (QualIdent (Just "Random") (Ident "mask" 0)))) []))])
+,(FunctionDecl (47,1) (Ident "xor" 0) [(Equation (47,1) (FunLhs (Ident "xor" 0) [(VariablePattern (Ident "x" 28)),(VariablePattern (Ident "y" 28))]) (SimpleRhs (47,11) (IfThenElse (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 38) 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 39) 0))))) (Literal (Int (Ident "_" 40) 0)) (InfixApply (Variable (QualIdent Nothing (Ident "lastBit" 29))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (InfixApply (Literal (Int (Ident "_" 41) 2)) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "restBits" 29)))))) [(PatternDecl (48,11) (VariablePattern (Ident "lastBit" 29)) (SimpleRhs (48,22) (IfThenElse (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 31) 2)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 32) 2))))) (Literal (Int (Ident "_" 33) 0)) (Literal (Int (Ident "_" 34) 1))) [])),(PatternDecl (49,11) (VariablePattern (Ident "restBits" 29)) (SimpleRhs (49,22) (Apply (Apply (Variable (QualIdent (Just "Random") (Ident "xor" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 36) 2))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 28))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 37) 2))))) []))]))])
+,(FunctionDecl (51,1) (Ident "power" 0) [(Equation (51,1) (FunLhs (Ident "power" 0) [(VariablePattern (Ident "base" 42)),(VariablePattern (Ident "exp" 42))]) (SimpleRhs (51,18) (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "binary" 43))) (Literal (Int (Ident "_" 51) 1))) (Variable (QualIdent Nothing (Ident "base" 42)))) (Variable (QualIdent Nothing (Ident "exp" 42)))) [(FunctionDecl (52,11) (Ident "binary" 43) [(Equation (52,11) (FunLhs (Ident "binary" 43) [(VariablePattern (Ident "x" 44)),(VariablePattern (Ident "b" 44)),(VariablePattern (Ident "e" 44))]) (SimpleRhs (53,17) (IfThenElse (Paren (InfixApply (Variable (QualIdent Nothing (Ident "e" 44))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 46) 0)))) (Variable (QualIdent Nothing (Ident "x" 44))) (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "binary" 43))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 44))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (IfThenElse (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "e" 44))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 47) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 48) 1)))) (Variable (QualIdent Nothing (Ident "b" 44))) (Literal (Int (Ident "_" 49) 1)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "b" 44))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "b" 44)))))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "e" 44))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 50) 2)))))) []))])]))])
+,(FunctionDecl (58,1) (Ident "nextIntBits" 0) [(Equation (58,1) (FunLhs (Ident "nextIntBits" 0) [(VariablePattern (Ident "seed" 52)),(VariablePattern (Ident "bits" 52))]) (SimpleRhs (58,25) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "adjust" 53)))) (Variable (QualIdent Nothing (Ident "list" 53)))) [(PatternDecl (59,11) (VariablePattern (Ident "init" 53)) (SimpleRhs (59,18) (InfixApply (Paren (Apply (Apply (Variable (QualIdent (Just "Random") (Ident "xor" 0))) (Variable (QualIdent Nothing (Ident "seed" 52)))) (Variable (QualIdent (Just "Random") (Ident "multiplier" 0))))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Variable (QualIdent (Just "Random") (Ident "mask" 0)))) [])),(PatternDecl (60,11) (VariablePattern (Ident "list" 53)) (SimpleRhs (60,18) (Apply (Variable (QualIdent (Just "Random") (Ident "sequence" 0))) (Variable (QualIdent Nothing (Ident "init" 53)))) [])),(PatternDecl (61,11) (VariablePattern (Ident "shift" 53)) (SimpleRhs (61,19) (Apply (Apply (Variable (QualIdent (Just "Random") (Ident "power" 0))) (Literal (Int (Ident "_" 57) 2))) (Paren (InfixApply (Variable (QualIdent (Just "Random") (Ident "powermask" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent Nothing (Ident "bits" 52)))))) [])),(FunctionDecl (62,11) (Ident "adjust" 53) [(Equation (62,11) (FunLhs (Ident "adjust" 53) [(VariablePattern (Ident "x" 58))]) (SimpleRhs (62,22) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "arg" 59))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Variable (QualIdent (Just "Random") (Ident "intlimit" 0)))) (InfixApply (Variable (QualIdent Nothing (Ident "arg" 59))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Variable (QualIdent (Just "Random") (Ident "intspan" 0)))) (Variable (QualIdent Nothing (Ident "arg" 59)))) [(PatternDecl (64,21) (VariablePattern (Ident "arg" 59)) (SimpleRhs (64,27) (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 58))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Variable (QualIdent Nothing (Ident "shift" 53))))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Variable (QualIdent (Just "Random") (Ident "intspan" 0)))) []))]))])]))])
+,(TypeSig (77,1) [(Ident "nextInt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (78,1) (Ident "nextInt" 0) [(Equation (78,1) (FunLhs (Ident "nextInt" 0) [(VariablePattern (Ident "seed" 61))]) (SimpleRhs (78,16) (Apply (Apply (Variable (QualIdent (Just "Random") (Ident "nextIntBits" 0))) (Variable (QualIdent Nothing (Ident "seed" 61)))) (Variable (QualIdent (Just "Random") (Ident "intsize" 0)))) []))])
+,(TypeSig (89,1) [(Ident "nextIntRange" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))))
+,(FunctionDecl (90,1) (Ident "nextIntRange" 0) [(Equation (90,1) (FunLhs (Ident "nextIntRange" 0) [(VariablePattern (Ident "seed" 63)),(VariablePattern (Ident "n" 63))]) (GuardedRhs [(CondExpr (90,21) (InfixApply (Variable (QualIdent Nothing (Ident "n" 63))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Literal (Int (Ident "_" 82) 0))) (IfThenElse (Apply (Variable (QualIdent Nothing (Ident "power_of_2" 64))) (Variable (QualIdent Nothing (Ident "n" 63)))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "adjust_a" 64)))) (Variable (QualIdent Nothing (Ident "seq" 64)))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "adjust_b" 64)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Variable (QualIdent Nothing (Ident "adjust_c" 64)))) (Variable (QualIdent Nothing (Ident "seq" 64))))))))] [(PatternDecl (93,11) (VariablePattern (Ident "seq" 64)) (SimpleRhs (93,17) (Apply (Apply (Variable (QualIdent (Just "Random") (Ident "nextIntBits" 0))) (Variable (QualIdent Nothing (Ident "seed" 63)))) (Paren (InfixApply (Variable (QualIdent (Just "Random") (Ident "intsize" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 66) 1))))) [])),(FunctionDecl (94,11) (Ident "adjust_a" 64) [(Equation (94,11) (FunLhs (Ident "adjust_a" 64) [(VariablePattern (Ident "x" 67))]) (SimpleRhs (94,24) (InfixApply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 63))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "x" 67))))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Variable (QualIdent (Just "Random") (Ident "intlimit" 0)))) []))]),(FunctionDecl (95,11) (Ident "adjust_b" 64) [(Equation (95,11) (FunLhs (Ident "adjust_b" 64) [(VariablePattern (Ident "x" 69))]) (SimpleRhs (95,24) (InfixApply (Variable (QualIdent Nothing (Ident "x" 69))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Variable (QualIdent Nothing (Ident "n" 63)))) []))]),(FunctionDecl (96,11) (Ident "adjust_c" 64) [(Equation (96,11) (FunLhs (Ident "adjust_c" 64) [(VariablePattern (Ident "x" 71))]) (SimpleRhs (96,24) (InfixApply (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "x" 71))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 71))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Variable (QualIdent Nothing (Ident "n" 63)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 63))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 73) 1))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Literal (Int (Ident "_" 74) 0))) []))]),(FunctionDecl (97,11) (Ident "power_of_2" 64) [(Equation (97,11) (FunLhs (Ident "power_of_2" 64) [(VariablePattern (Ident "k" 75))]) (SimpleRhs (97,26) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "k" 75))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 77) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "k" 75))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Literal (Int (Ident "_" 78) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "k" 75))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 79) 2))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 80) 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent Nothing (Ident "power_of_2" 64))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "k" 75))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 81) 2)))))))) []))])]))])
+,(TypeSig (106,1) [(Ident "nextBoolean" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (107,1) (Ident "nextBoolean" 0) [(Equation (107,1) (FunLhs (Ident "nextBoolean" 0) [(VariablePattern (Ident "seed" 83))]) (SimpleRhs (107,20) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Literal (Int (Ident "_" 85) 0)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Random") (Ident "nextIntBits" 0))) (Variable (QualIdent Nothing (Ident "seed" 83)))) (Literal (Int (Ident "_" 86) 1))))) []))])
+,(TypeSig (114,1) [(Ident "getRandomSeed" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))
+,(FunctionDecl (115,1) (Ident "getRandomSeed" 0) [(Equation (115,1) (FunLhs (Ident "getRandomSeed" 0) []) (SimpleRhs (116,3) (InfixApply (Variable (QualIdent (Just "Time") (Ident "getClockTime" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "time" 89))] (InfixApply (Variable (QualIdent (Just "System") (Ident "getCPUTime" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(VariablePattern (Ident "msecs" 90))] (Let [(PatternDecl (118,7) (ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "y" 91)),(VariablePattern (Ident "mo" 91)),(VariablePattern (Ident "d" 91)),(VariablePattern (Ident "h" 91)),(VariablePattern (Ident "m" 91)),(VariablePattern (Ident "s" 91)),(VariablePattern (Ident "_" 92))])) (SimpleRhs (118,39) (Apply (Variable (QualIdent (Just "Time") (Ident "toUTCTime" 0))) (Variable (QualIdent Nothing (Ident "time" 89)))) []))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (InfixApply (Paren (InfixApply (InfixApply (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "y" 91))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "mo" 91)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "d" 91)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "h" 91)))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "m" 91))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "s" 91)))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Variable (QualIdent Nothing (Ident "msecs" 90)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Variable (QualIdent (Just "Random") (Ident "mask" 0))))))))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Random.efc b/src/lib/Curry/Module/.curry/Random.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Random.efc
@@ -0,0 +1,1 @@
+Prog "Random" ["Prelude","System","Time"] [] [Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","multiplier")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Int")) []) (Rule [] (Lit (Intc  25214903917))),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","addend")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Int")) []) (Rule [] (Lit (Intc  11))),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","powermask")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Int")) []) (Rule [] (Lit (Intc  48))),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","mask")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Int")) []) (Rule [] (Lit (Intc  281474976710656))),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intsize")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Int")) []) (Rule [] (Lit (Intc  32))),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intspan")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Int")) []) (Rule [] (Lit (Intc  4294967296))),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intlimit")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Int")) []) (Rule [] (Lit (Intc  2147483648))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Random","sequence")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","nextseed")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Random","sequence")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","nextseed")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","multiplier")) []],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","addend")) []],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","mask")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","xor")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 1) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Lit (Intc  1))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","xor")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  2)]])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc  2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]])])))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","power")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Random","power.binary.43")) [Lit (Intc  1),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Random","power.binary.43")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Random","power.binary.43")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)],Lit (Intc  1)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Lit (Intc  1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  2)]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Random","nextIntBits")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","xor")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","multiplier")) []],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","mask")) []])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Random","sequence")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","power")) [Lit (Intc  2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","powermask")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]])] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","nextIntBits.adjust.53")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),4))]))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","nextIntBits.adjust.53")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intspan")) []])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intlimit")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intspan")) []]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Random","nextInt")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Random","nextIntBits")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intsize")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Random","nextIntRange")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Random","nextIntBits")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intsize")) [],Lit (Intc  1)]])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Random","nextIntRange.power_of_2.64")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","nextIntRange.adjust_a.64")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","nextIntRange.adjust_b.64")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","filter")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Random","nextIntRange.adjust_c.64")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","failed")) [])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","nextIntRange.adjust_a.64")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","intlimit")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Random","nextIntRange.adjust_b.64")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Random","nextIntRange.adjust_c.64")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)]],Lit (Intc  0)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Random","nextIntRange.power_of_2.64")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)],Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Random","nextIntRange.power_of_2.64")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)]]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Random","nextBoolean")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [],Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Random","nextIntBits")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Random","getRandomSeed")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []]),"Time","getClockTime")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Random","getRandomSeed._#lambda2")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Random","getRandomSeed._#lambda2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]),"System","getCPUTime")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Random","getRandomSeed._#lambda2._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Random","getRandomSeed._#lambda2._#lambda3")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Let [((Just (TVar 1),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])),"Time","toUTCTime")) [Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP3#y")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP4#mo")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP5#d")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP6#h")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP7#m")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP8#s")) [Var ((Just (TVar 1),3))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"Prelude","return")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]],Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Random","mask")) []]]))))))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP3#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP4#mo")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP5#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP6#h")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP7#m")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Random","getRandomSeed._#lambda2._#lambda3._#selFP8#s")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)))]))] []
diff --git a/src/lib/Curry/Module/.curry/Random.fcy b/src/lib/Curry/Module/.curry/Random.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Random.fcy
@@ -0,0 +1,1 @@
+Prog "Random" ["Prelude","System","Time"] [] [Func ("Random","multiplier") 0 Private (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  25214903917))),Func ("Random","addend") 0 Private (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  11))),Func ("Random","powermask") 0 Private (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  48))),Func ("Random","mask") 0 Private (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  281474976710656))),Func ("Random","intsize") 0 Private (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  32))),Func ("Random","intspan") 0 Private (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  4294967296))),Func ("Random","intlimit") 0 Private (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  2147483648))),Func ("Random","sequence") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Let [(2,Comb FuncCall ("Random","nextseed") [Var 1])] (Comb ConsCall ("Prelude",":") [Var 2,Comb FuncCall ("Random","sequence") [Var 2]]))),Func ("Random","nextseed") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Prelude","mod") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","*") [Var 1,Comb FuncCall ("Random","multiplier") []],Comb FuncCall ("Random","addend") []],Comb FuncCall ("Random","mask") []])),Func ("Random","xor") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Let [(3,Case  Rigid (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 1,Lit (Intc  2)],Comb FuncCall ("Prelude","mod") [Var 2,Lit (Intc  2)]]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  0)),Branch (Pattern ("Prelude","False") []) (Lit (Intc  1))])] (Let [(4,Comb FuncCall ("Random","xor") [Comb FuncCall ("Prelude","div") [Var 1,Lit (Intc  2)],Comb FuncCall ("Prelude","div") [Var 2,Lit (Intc  2)]])] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  0)],Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc  0)]]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  0)),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","+") [Var 3,Comb FuncCall ("Prelude","*") [Lit (Intc  2),Var 4]])])))),Func ("Random","power") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Comb FuncCall ("Random","power.binary.43") [Lit (Intc  1),Var 1,Var 2])),Func ("Random","power.binary.43") 3 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 3,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Random","power.binary.43") [Comb FuncCall ("Prelude","*") [Var 1,Case  Rigid (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 3,Lit (Intc  2)],Lit (Intc  1)]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Lit (Intc  1))]],Comb FuncCall ("Prelude","*") [Var 2,Var 2],Comb FuncCall ("Prelude","div") [Var 3,Lit (Intc  2)]])])),Func ("Random","nextIntBits") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","mod") [Comb FuncCall ("Random","xor") [Var 1,Comb FuncCall ("Random","multiplier") []],Comb FuncCall ("Random","mask") []])] (Let [(4,Comb FuncCall ("Random","sequence") [Var 3])] (Let [(5,Comb FuncCall ("Random","power") [Lit (Intc  2),Comb FuncCall ("Prelude","-") [Comb FuncCall ("Random","powermask") [],Var 2]])] (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Random","nextIntBits.adjust.53") [Var 5],Var 4]))))),Func ("Random","nextIntBits.adjust.53") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","mod") [Comb FuncCall ("Prelude","div") [Var 2,Var 1],Comb FuncCall ("Random","intspan") []])] (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 3,Comb FuncCall ("Random","intlimit") []]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","-") [Var 3,Comb FuncCall ("Random","intspan") []]),Branch (Pattern ("Prelude","False") []) (Var 3)]))),Func ("Random","nextInt") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Comb FuncCall ("Random","nextIntBits") [Var 1,Comb FuncCall ("Random","intsize") []])),Func ("Random","nextIntRange") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Random","nextIntBits") [Var 1,Comb FuncCall ("Prelude","-") [Comb FuncCall ("Random","intsize") [],Lit (Intc  1)]])] (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 2,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Random","nextIntRange.power_of_2.64") [Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Random","nextIntRange.adjust_a.64") [Var 2],Var 3]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Random","nextIntRange.adjust_b.64") [Var 2],Comb FuncCall ("Prelude","filter") [Comb (FuncPartCall 1) ("Random","nextIntRange.adjust_c.64") [Var 2],Var 3]])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])]))),Func ("Random","nextIntRange.adjust_a.64") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Comb FuncCall ("Prelude","div") [Comb FuncCall ("Prelude","*") [Var 1,Var 2],Comb FuncCall ("Random","intlimit") []])),Func ("Random","nextIntRange.adjust_b.64") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Comb FuncCall ("Prelude","mod") [Var 2,Var 1])),Func ("Random","nextIntRange.adjust_c.64") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Var 2,Comb FuncCall ("Prelude","mod") [Var 2,Var 1]],Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)]],Lit (Intc  0)])),Func ("Random","nextIntRange.power_of_2.64") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  2)],Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">") [Var 1,Lit (Intc  2)],Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 1,Lit (Intc  2)],Lit (Intc  0)],Comb FuncCall ("Random","nextIntRange.power_of_2.64") [Comb FuncCall ("Prelude","div") [Var 1,Lit (Intc  2)]]]]])),Func ("Random","nextBoolean") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Lit (Intc  0)],Comb FuncCall ("Random","nextIntBits") [Var 1,Lit (Intc  1)]])),Func ("Random","getRandomSeed") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (Rule [] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Time","getClockTime") [],Comb (FuncPartCall 1) ("Random","getRandomSeed._#lambda2") []])),Func ("Random","getRandomSeed._#lambda2") 1 Private (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("System","getCPUTime") [],Comb (FuncPartCall 1) ("Random","getRandomSeed._#lambda2._#lambda3") [Var 1]])),Func ("Random","getRandomSeed._#lambda2._#lambda3") 2 Private (FuncType (TCons ("Time","ClockTime") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Time","toUTCTime") [Var 1])] (Let [(4,Comb FuncCall ("Random","getRandomSeed._#lambda2._#lambda3._#selFP3#y") [Var 3])] (Let [(5,Comb FuncCall ("Random","getRandomSeed._#lambda2._#lambda3._#selFP4#mo") [Var 3])] (Let [(6,Comb FuncCall ("Random","getRandomSeed._#lambda2._#lambda3._#selFP5#d") [Var 3])] (Let [(7,Comb FuncCall ("Random","getRandomSeed._#lambda2._#lambda3._#selFP6#h") [Var 3])] (Let [(8,Comb FuncCall ("Random","getRandomSeed._#lambda2._#lambda3._#selFP7#m") [Var 3])] (Let [(9,Comb FuncCall ("Random","getRandomSeed._#lambda2._#lambda3._#selFP8#s") [Var 3])] (Comb FuncCall ("Prelude","return") [Comb FuncCall ("Prelude","mod") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","+") [Var 4,Var 5],Var 6],Var 7],Comb FuncCall ("Prelude","*") [Comb FuncCall ("Prelude","*") [Var 8,Var 9],Var 2]],Comb FuncCall ("Random","mask") []]]))))))))),Func ("Random","getRandomSeed._#lambda2._#lambda3._#selFP3#y") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 2)])),Func ("Random","getRandomSeed._#lambda2._#lambda3._#selFP4#mo") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 3)])),Func ("Random","getRandomSeed._#lambda2._#lambda3._#selFP5#d") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 4)])),Func ("Random","getRandomSeed._#lambda2._#lambda3._#selFP6#h") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 5)])),Func ("Random","getRandomSeed._#lambda2._#lambda3._#selFP7#m") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 6)])),Func ("Random","getRandomSeed._#lambda2._#lambda3._#selFP8#s") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 7)]))] []
diff --git a/src/lib/Curry/Module/.curry/Random.fint b/src/lib/Curry/Module/.curry/Random.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Random.fint
@@ -0,0 +1,1 @@
+Prog "Random" ["Prelude","System","Time"] [] [Func ("Random","nextInt") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("Random","nextIntRange") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("Random","nextBoolean") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []])) (Rule [] (Var 0)),Func ("Random","getRandomSeed") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Random.uacy b/src/lib/Curry/Module/.curry/Random.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Random.uacy
@@ -0,0 +1,20 @@
+CurryProg "Random"
+ ["Prelude","Time","System"]
+ []
+ [CFunc ("Random","addend") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 11))] []]),
+  CFunc ("Random","getRandomSeed") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CSymbol ("Time","getClockTime"))) (CLambda [CPVar (0,"time")] (CApply (CApply (CSymbol ("Prelude",">>=")) (CSymbol ("System","getCPUTime"))) (CLambda [CPVar (1,"msecs")] (CLetDecl [CLocalPat (CPComb ("Time","CalendarTime") [CPVar (2,"y"),CPVar (3,"mo"),CPVar (4,"d"),CPVar (5,"h"),CPVar (6,"m"),CPVar (7,"s"),CPVar (8,"_")]) (CApply (CSymbol ("Time","toUTCTime")) (CVar (0,"time"))) []] (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"y"))) (CVar (3,"mo")))) (CVar (4,"d")))) (CVar (5,"h")))) (CApply (CApply (CSymbol ("Prelude","*")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (6,"m"))) (CVar (7,"s")))) (CVar (1,"msecs"))))) (CSymbol ("Random","mask")))))))))] []]),
+  CFunc ("Random","intlimit") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 2147483648))] []]),
+  CFunc ("Random","intsize") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 32))] []]),
+  CFunc ("Random","intspan") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 4294967296))] []]),
+  CFunc ("Random","mask") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 281474976710656))] []]),
+  CFunc ("Random","multiplier") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 25214903917))] []]),
+  CFunc ("Random","nextBoolean") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (1,"x0"))) (CLit (CIntc 0))))) (CApply (CApply (CSymbol ("Random","nextIntBits")) (CVar (0,"seed"))) (CLit (CIntc 1))))] []]),
+  CFunc ("Random","nextInt") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Random","nextIntBits")) (CVar (0,"seed"))) (CSymbol ("Random","intsize")))] []]),
+  CFunc ("Random","nextIntBits") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"seed"),CPVar (1,"bits")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Random","adjust"))) (CVar (3,"list")))] [CLocalPat (CPVar (2,"init")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Random","xor")) (CVar (0,"seed"))) (CSymbol ("Random","multiplier")))) (CSymbol ("Random","mask"))) [],CLocalPat (CPVar (3,"list")) (CApply (CSymbol ("Random","sequence")) (CVar (2,"init"))) [],CLocalPat (CPVar (4,"shift")) (CApply (CApply (CSymbol ("Random","power")) (CLit (CIntc 2))) (CApply (CApply (CSymbol ("Prelude","-")) (CSymbol ("Random","powermask"))) (CVar (1,"bits")))) [],CLocalFunc (CFunc ("Random","adjust") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (5,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (6,"arg"))) (CSymbol ("Random","intlimit")))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (6,"arg"))) (CSymbol ("Random","intspan")))) (CVar (6,"arg")))] [CLocalPat (CPVar (6,"arg")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (5,"x"))) (CVar (4,"shift")))) (CSymbol ("Random","intspan"))) []]]))]]),
+  CFunc ("Random","nextIntRange") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"seed"),CPVar (1,"n")] [(CApply (CApply (CSymbol ("Prelude",">")) (CVar (1,"n"))) (CLit (CIntc 0)),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Random","power_of_2")) (CVar (1,"n")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Random","adjust_a"))) (CVar (2,"seq")))) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("Random","adjust_b"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CSymbol ("Random","adjust_c"))) (CVar (2,"seq")))))] [CLocalPat (CPVar (2,"seq")) (CApply (CApply (CSymbol ("Random","nextIntBits")) (CVar (0,"seed"))) (CApply (CApply (CSymbol ("Prelude","-")) (CSymbol ("Random","intsize"))) (CLit (CIntc 1)))) [],CLocalFunc (CFunc ("Random","adjust_a") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (3,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (1,"n"))) (CVar (3,"x")))) (CSymbol ("Random","intlimit")))] []])),CLocalFunc (CFunc ("Random","adjust_b") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (3,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","mod")) (CVar (3,"x"))) (CVar (1,"n")))] []])),CLocalFunc (CFunc ("Random","adjust_c") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (3,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"x"))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (3,"x"))) (CVar (1,"n"))))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"n"))) (CLit (CIntc 1))))) (CLit (CIntc 0)))] []])),CLocalFunc (CFunc ("Random","power_of_2") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (3,"k")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"k"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (3,"k"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (3,"k"))) (CLit (CIntc 2)))) (CLit (CIntc 0)))) (CApply (CSymbol ("Random","power_of_2")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (3,"k"))) (CLit (CIntc 2)))))))] []]))]]),
+  CFunc ("Random","nextseed") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"seed"))) (CSymbol ("Random","multiplier")))) (CSymbol ("Random","addend")))) (CSymbol ("Random","mask")))] []]),
+  CFunc ("Random","power") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"base"),CPVar (1,"exp")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Random","binary")) (CLit (CIntc 1))) (CVar (0,"base"))) (CVar (1,"exp")))] [CLocalFunc (CFunc ("Random","binary") 3 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"x"),CPVar (3,"b"),CPVar (4,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"e"))) (CLit (CIntc 0)))) (CVar (2,"x"))) (CApply (CApply (CApply (CSymbol ("Random","binary")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (2,"x"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (4,"e"))) (CLit (CIntc 2)))) (CLit (CIntc 1)))) (CVar (3,"b"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (3,"b"))) (CVar (3,"b")))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (4,"e"))) (CLit (CIntc 2)))))] []]))]]),
+  CFunc ("Random","powermask") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 48))] []]),
+  CFunc ("Random","sequence") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"next"))) (CApply (CSymbol ("Random","sequence")) (CVar (1,"next"))))] [CLocalPat (CPVar (1,"next")) (CApply (CSymbol ("Random","nextseed")) (CVar (0,"seed"))) []]]),
+  CFunc ("Random","xor") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"x"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"y"))) (CLit (CIntc 0))))) (CLit (CIntc 0))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"lastBit"))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CVar (3,"restBits")))))] [CLocalPat (CPVar (2,"lastBit")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (0,"x"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"y"))) (CLit (CIntc 2))))) (CLit (CIntc 0))) (CLit (CIntc 1))) [],CLocalPat (CPVar (3,"restBits")) (CApply (CApply (CSymbol ("Random","xor")) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (0,"x"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","div")) (CVar (1,"y"))) (CLit (CIntc 2)))) []]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/RandomExternal.acy b/src/lib/Curry/Module/.curry/RandomExternal.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RandomExternal.acy
@@ -0,0 +1,12 @@
+CurryProg "RandomExternal"
+ ["Prelude"]
+ []
+ [CFunc ("RandomExternal","getRandomSeed") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "getRandomSeed"),
+  CFunc ("RandomExternal","nextBoolean") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CLit (CIntc 0))) (CVar (1,"x0"))))) (CApply (CApply (CSymbol ("RandomExternal","nextIntRange")) (CVar (0,"seed"))) (CLit (CIntc 1))))] []]),
+  CFunc ("RandomExternal","nextInt") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("RandomExternal","prim_nextInt"))) (CVar (0,"seed")))] []]),
+  CFunc ("RandomExternal","nextIntRange") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"seed"),CPVar (1,"bound")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("RandomExternal","prim_nextIntRange"))) (CVar (0,"seed")))) (CVar (1,"bound")))] []]),
+  CFunc ("RandomExternal","prim_nextInt") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CExternal "prim_nextInt"),
+  CFunc ("RandomExternal","prim_nextIntRange") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CExternal "prim_nextIntRange"),
+  CFunc ("RandomExternal","prim_split") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []])) (CExternal "prim_split"),
+  CFunc ("RandomExternal","split") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"s1"))) (CApply (CSymbol ("RandomExternal","split")) (CVar (2,"s2"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (1,"s1"),CPVar (2,"s2")]) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("RandomExternal","prim_split"))) (CVar (0,"seed"))) []]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/RandomExternal.cy b/src/lib/Curry/Module/.curry/RandomExternal.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RandomExternal.cy
@@ -0,0 +1,20 @@
+Module "RandomExternal"
+(Just (Exporting (6,23) [(Export (QualIdent Nothing (Ident "split" 0))),(Export (QualIdent Nothing (Ident "nextInt" 0))),(Export (QualIdent Nothing (Ident "nextIntRange" 0))),(Export (QualIdent Nothing (Ident "nextBoolean" 0))),(Export (QualIdent Nothing (Ident "getRandomSeed" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(TypeSig (16,1) [(Ident "split" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (17,1) (Ident "split" 0) [(Equation (17,1) (FunLhs (Ident "split" 0) [(VariablePattern (Ident "seed" 2))]) (SimpleRhs (17,14) (InfixApply (Variable (QualIdent Nothing (Ident "s1" 3))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent (Just "RandomExternal") (Ident "split" 0))) (Variable (QualIdent Nothing (Ident "s2" 3))))) [(PatternDecl (18,8) (TuplePattern [(VariablePattern (Ident "s1" 3)),(VariablePattern (Ident "s2" 3))]) (SimpleRhs (18,18) (InfixApply (Variable (QualIdent (Just "RandomExternal") (Ident "prim_split" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "seed" 2)))) []))]))])
+,(TypeSig (20,1) [(Ident "prim_split" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (TupleType [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])))
+,(FlatExternalDecl (21,1) [(Ident "prim_split" 0)])
+,(TypeSig (25,1) [(Ident "nextInt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (26,1) (Ident "nextInt" 0) [(Equation (26,1) (FunLhs (Ident "nextInt" 0) [(VariablePattern (Ident "seed" 5))]) (SimpleRhs (26,16) (InfixApply (Variable (QualIdent (Just "RandomExternal") (Ident "prim_nextInt" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "seed" 5)))) []))])
+,(TypeSig (28,1) [(Ident "prim_nextInt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FlatExternalDecl (29,1) [(Ident "prim_nextInt" 0)])
+,(TypeSig (34,1) [(Ident "nextIntRange" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))))
+,(FunctionDecl (35,1) (Ident "nextIntRange" 0) [(Equation (35,1) (FunLhs (Ident "nextIntRange" 0) [(VariablePattern (Ident "seed" 7)),(VariablePattern (Ident "bound" 7))]) (SimpleRhs (35,27) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "RandomExternal") (Ident "prim_nextIntRange" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "seed" 7))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "bound" 7)))) []))])
+,(TypeSig (37,1) [(Ident "prim_nextIntRange" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))))
+,(FlatExternalDecl (38,1) [(Ident "prim_nextIntRange" 0)])
+,(TypeSig (42,1) [(Ident "nextBoolean" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ListType (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (43,1) (Ident "nextBoolean" 0) [(Equation (43,1) (FunLhs (Ident "nextBoolean" 0) [(VariablePattern (Ident "seed" 9))]) (SimpleRhs (43,20) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (LeftSection (Literal (Int (Ident "_" 11) 0)) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))))) (Paren (Apply (Apply (Variable (QualIdent (Just "RandomExternal") (Ident "nextIntRange" 0))) (Variable (QualIdent Nothing (Ident "seed" 9)))) (Literal (Int (Ident "_" 12) 1))))) []))])
+,(TypeSig (47,1) [(Ident "getRandomSeed" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))
+,(FlatExternalDecl (48,1) [(Ident "getRandomSeed" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/RandomExternal.efc b/src/lib/Curry/Module/.curry/RandomExternal.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RandomExternal.efc
@@ -0,0 +1,1 @@
+Prog "RandomExternal" ["Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","split")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Let [((Just (TVar 2),2),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 3) (TVar 4)) (FuncType (TVar 3) (TVar 4))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","prim_split")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"RandomExternal","split._#selFP3#s1")) [Var ((Just (TVar 2),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"RandomExternal","split._#selFP4#s2")) [Var ((Just (TVar 2),2))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","split")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]]))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"RandomExternal","split._#selFP3#s1")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"RandomExternal","split._#selFP4#s2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","prim_split")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []])) (External "RandomExternal.prim_split"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","nextInt")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","prim_nextInt")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])),"RandomExternal","prim_nextInt")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (External "RandomExternal.prim_nextInt"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"RandomExternal","nextIntRange")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"RandomExternal","prim_nextIntRange")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"RandomExternal","prim_nextIntRange")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (External "RandomExternal.prim_nextIntRange"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"RandomExternal","nextBoolean")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Bool")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"RandomExternal","nextIntRange")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]),"RandomExternal","getRandomSeed")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (External "RandomExternal.getRandomSeed")] []
diff --git a/src/lib/Curry/Module/.curry/RandomExternal.fcy b/src/lib/Curry/Module/.curry/RandomExternal.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RandomExternal.fcy
@@ -0,0 +1,1 @@
+Prog "RandomExternal" ["Prelude"] [] [Func ("RandomExternal","split") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Let [(2,Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("RandomExternal","prim_split") [],Var 1])] (Let [(3,Comb FuncCall ("RandomExternal","split._#selFP3#s1") [Var 2])] (Let [(4,Comb FuncCall ("RandomExternal","split._#selFP4#s2") [Var 2])] (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("RandomExternal","split") [Var 4]]))))),Func ("RandomExternal","split._#selFP3#s1") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("RandomExternal","split._#selFP4#s2") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("RandomExternal","prim_split") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []])) (External "RandomExternal.prim_split"),Func ("RandomExternal","nextInt") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("RandomExternal","prim_nextInt") [],Var 1])),Func ("RandomExternal","prim_nextInt") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (External "RandomExternal.prim_nextInt"),Func ("RandomExternal","nextIntRange") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("RandomExternal","prim_nextIntRange") [],Var 1],Var 2])),Func ("RandomExternal","prim_nextIntRange") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (External "RandomExternal.prim_nextIntRange"),Func ("RandomExternal","nextBoolean") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []])) (Rule [1] (Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","==") [Lit (Intc  0)],Comb FuncCall ("RandomExternal","nextIntRange") [Var 1,Lit (Intc  1)]])),Func ("RandomExternal","getRandomSeed") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "RandomExternal.getRandomSeed")] []
diff --git a/src/lib/Curry/Module/.curry/RandomExternal.fint b/src/lib/Curry/Module/.curry/RandomExternal.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RandomExternal.fint
@@ -0,0 +1,1 @@
+Prog "RandomExternal" ["Prelude"] [] [Func ("RandomExternal","split") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("RandomExternal","nextInt") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("RandomExternal","nextIntRange") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [] (Var 0)),Func ("RandomExternal","nextBoolean") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []])) (Rule [] (Var 0)),Func ("RandomExternal","getRandomSeed") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "RandomExternal.getRandomSeed")] []
diff --git a/src/lib/Curry/Module/.curry/RandomExternal.uacy b/src/lib/Curry/Module/.curry/RandomExternal.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RandomExternal.uacy
@@ -0,0 +1,12 @@
+CurryProg "RandomExternal"
+ ["Prelude"]
+ []
+ [CFunc ("RandomExternal","getRandomSeed") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "getRandomSeed"),
+  CFunc ("RandomExternal","nextBoolean") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Bool") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","map")) (CLambda [CPVar (1,"x0")] (CApply (CApply (CSymbol ("Prelude","==")) (CLit (CIntc 0))) (CVar (1,"x0"))))) (CApply (CApply (CSymbol ("RandomExternal","nextIntRange")) (CVar (0,"seed"))) (CLit (CIntc 1))))] []]),
+  CFunc ("RandomExternal","nextInt") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("RandomExternal","prim_nextInt"))) (CVar (0,"seed")))] []]),
+  CFunc ("RandomExternal","nextIntRange") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CRules CFlex [CRule [CPVar (0,"seed"),CPVar (1,"bound")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("RandomExternal","prim_nextIntRange"))) (CVar (0,"seed")))) (CVar (1,"bound")))] []]),
+  CFunc ("RandomExternal","prim_nextInt") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CExternal "prim_nextInt"),
+  CFunc ("RandomExternal","prim_nextIntRange") 2 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]))) (CExternal "prim_nextIntRange"),
+  CFunc ("RandomExternal","prim_split") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []])) (CExternal "prim_split"),
+  CFunc ("RandomExternal","split") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"seed")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"s1"))) (CApply (CSymbol ("RandomExternal","split")) (CVar (2,"s2"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (1,"s1"),CPVar (2,"s2")]) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("RandomExternal","prim_split"))) (CVar (0,"seed"))) []]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Read.acy b/src/lib/Curry/Module/.curry/Read.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Read.acy
@@ -0,0 +1,7 @@
+CurryProg "Read"
+ ["Prelude","Char"]
+ []
+ [CFunc ("Read","readHex") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Read","readHexPrefix")) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CLambda [CPVar (1,"c")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc ' '))))) (CVar (0,"l")))) (CLit (CIntc 0)))] [CLocalFunc (CFunc ("Read","readHexPrefix") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"n")] [(CSymbol ("Prelude","success"),CVar (1,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")],CPVar (4,"n")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (5,"cv")) (CApply (CSymbol ("Read","hex2int")) (CVar (2,"c"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (5,"cv"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Read","readHexPrefix")) (CVar (3,"cs"))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (4,"n"))) (CLit (CIntc 16)))) (CVar (5,"cv"))))) (CVar (4,"n"))))] []])),CLocalFunc (CFunc ("Read","hex2int") 1 Private (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (1,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Char","isDigit")) (CVar (1,"c")))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0'))))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'F')))))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CLit (CIntc 10)))) (CApply (CSymbol ("Prelude","negate")) (CLit (CIntc 1)))))] []]))]]),
+  CFunc ("Read","readInt") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"l")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Read","readIntPrefix")) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CLambda [CPVar (1,"c")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc ' '))))) (CVar (0,"l"))))] [CLocalFunc (CFunc ("Read","readIntPrefix") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"c"),CPVar (2,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '-')))) (CApply (CSymbol ("Prelude","negate")) (CApply (CSymbol ("Read","readNat")) (CVar (2,"cs"))))) (CApply (CSymbol ("Read","readNat")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"c"))) (CVar (2,"cs")))))] []]))]]),
+  CFunc ("Read","readNat") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Read","readNatPrefix")) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CLambda [CPVar (1,"c")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc ' '))))) (CVar (0,"l")))) (CLit (CIntc 0)))] [CLocalFunc (CFunc ("Read","readNatPrefix") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"n")] [(CSymbol ("Prelude","success"),CVar (1,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")],CPVar (4,"n")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (5,"oc")) (CApply (CSymbol ("Prelude","ord")) (CVar (2,"c"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (5,"oc"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (5,"oc"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '9')))))) (CApply (CApply (CSymbol ("Read","readNatPrefix")) (CVar (3,"cs"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (4,"n"))) (CLit (CIntc 10)))) (CVar (5,"oc")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))))) (CVar (4,"n"))))] []]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Read.cy b/src/lib/Curry/Module/.curry/Read.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Read.cy
@@ -0,0 +1,11 @@
+Module "Read"
+(Just (Exporting (8,12) [(Export (QualIdent Nothing (Ident "readNat" 0))),(Export (QualIdent Nothing (Ident "readInt" 0))),(Export (QualIdent Nothing (Ident "readHex" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (10,1) "Char" False Nothing Nothing)
+,(TypeSig (15,1) [(Ident "readNat" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (16,1) (Ident "readNat" 0) [(Equation (16,1) (FunLhs (Ident "readNat" 0) [(VariablePattern (Ident "l" 2))]) (SimpleRhs (16,13) (Apply (Apply (Variable (QualIdent Nothing (Ident "readNatPrefix" 3))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "dropWhile" 0))) (Paren (Lambda [(VariablePattern (Ident "c" 11))] (InfixApply (Variable (QualIdent Nothing (Ident "c" 11))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char ' ')))))) (Variable (QualIdent Nothing (Ident "l" 2)))))) (Literal (Int (Ident "_" 12) 0))) [(FunctionDecl (18,3) (Ident "readNatPrefix" 3) [(Equation (18,3) (FunLhs (Ident "readNatPrefix" 3) [(ListPattern []),(VariablePattern (Ident "n" 4))]) (SimpleRhs (18,24) (Variable (QualIdent Nothing (Ident "n" 4))) [])),(Equation (19,3) (FunLhs (Ident "readNatPrefix" 3) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 6)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 6)))),(VariablePattern (Ident "n" 6))]) (SimpleRhs (20,4) (Let [(PatternDecl (20,8) (VariablePattern (Ident "oc" 8)) (SimpleRhs (20,13) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 6)))) []))] (IfThenElse (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "oc" 8))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '0')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "oc" 8))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '9'))))) (Apply (Apply (Variable (QualIdent Nothing (Ident "readNatPrefix" 3))) (Variable (QualIdent Nothing (Ident "cs" 6)))) (Paren (InfixApply (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 6))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Literal (Int (Ident "_" 10) 10))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "oc" 8)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '0'))))))) (Variable (QualIdent Nothing (Ident "n" 6))))) []))])]))])
+,(TypeSig (28,1) [(Ident "readInt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (29,1) (Ident "readInt" 0) [(Equation (29,1) (FunLhs (Ident "readInt" 0) [(VariablePattern (Ident "l" 13))]) (SimpleRhs (29,13) (Apply (Variable (QualIdent Nothing (Ident "readIntPrefix" 14))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "dropWhile" 0))) (Paren (Lambda [(VariablePattern (Ident "c" 20))] (InfixApply (Variable (QualIdent Nothing (Ident "c" 20))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char ' ')))))) (Variable (QualIdent Nothing (Ident "l" 13)))))) [(FunctionDecl (31,3) (Ident "readIntPrefix" 14) [(Equation (31,3) (FunLhs (Ident "readIntPrefix" 14) [(ListPattern [])]) (SimpleRhs (31,26) (Literal (Int (Ident "_" 17) 0)) [])),(Equation (32,3) (FunLhs (Ident "readIntPrefix" 14) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 18)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 18))))]) (SimpleRhs (32,26) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "c" 18))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char '-'))) (UnaryMinus (Ident "-" 0) (Paren (Apply (Variable (QualIdent (Just "Read") (Ident "readNat" 0))) (Variable (QualIdent Nothing (Ident "cs" 18)))))) (Apply (Variable (QualIdent (Just "Read") (Ident "readNat" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 18))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "cs" 18))))))) []))])]))])
+,(TypeSig (38,1) [(Ident "readHex" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (39,1) (Ident "readHex" 0) [(Equation (39,1) (FunLhs (Ident "readHex" 0) [(VariablePattern (Ident "l" 21))]) (SimpleRhs (39,13) (Apply (Apply (Variable (QualIdent Nothing (Ident "readHexPrefix" 22))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "dropWhile" 0))) (Paren (Lambda [(VariablePattern (Ident "c" 35))] (InfixApply (Variable (QualIdent Nothing (Ident "c" 35))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Char ' ')))))) (Variable (QualIdent Nothing (Ident "l" 21)))))) (Literal (Int (Ident "_" 36) 0))) [(FunctionDecl (41,3) (Ident "readHexPrefix" 22) [(Equation (41,3) (FunLhs (Ident "readHexPrefix" 22) [(ListPattern []),(VariablePattern (Ident "n" 23))]) (SimpleRhs (41,24) (Variable (QualIdent Nothing (Ident "n" 23))) [])),(Equation (42,3) (FunLhs (Ident "readHexPrefix" 22) [(ParenPattern (InfixPattern (VariablePattern (Ident "c" 25)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 25)))),(VariablePattern (Ident "n" 25))]) (SimpleRhs (43,4) (Let [(PatternDecl (43,8) (VariablePattern (Ident "cv" 27)) (SimpleRhs (43,13) (Apply (Variable (QualIdent Nothing (Ident "hex2int" 22))) (Variable (QualIdent Nothing (Ident "c" 25)))) []))] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "cv" 27))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Literal (Int (Ident "_" 29) 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "readHexPrefix" 22))) (Variable (QualIdent Nothing (Ident "cs" 25)))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "n" 25))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Literal (Int (Ident "_" 30) 16))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "cv" 27)))))) (Variable (QualIdent Nothing (Ident "n" 25))))) []))]),(FunctionDecl (47,3) (Ident "hex2int" 22) [(Equation (47,3) (FunLhs (Ident "hex2int" 22) [(VariablePattern (Ident "c" 31))]) (SimpleRhs (47,15) (IfThenElse (Apply (Variable (QualIdent (Just "Char") (Ident "isDigit" 0))) (Variable (QualIdent Nothing (Ident "c" 31)))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 31)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '0')))) (IfThenElse (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 31)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 31)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'F'))))) (InfixApply (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c" 31)))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A')))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 33) 10))) (UnaryMinus (Ident "-" 0) (Literal (Int (Ident "_" 34) 1))))) []))])]))])
+]
diff --git a/src/lib/Curry/Module/.curry/Read.efc b/src/lib/Curry/Module/.curry/Read.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Read.efc
@@ -0,0 +1,1 @@
+Prog "Read" ["Char","Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readNat")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Read","readNat.readNatPrefix.3")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","dropWhile")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Read","readNat._#lambda2")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Lit (Intc  0)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Read","readNat.readNatPrefix.3")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '0')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '9')]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Read","readNat.readNatPrefix.3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  10)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '0')]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Read","readNat._#lambda2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  ' ')])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readInt")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readInt.readIntPrefix.14")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","dropWhile")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Read","readInt._#lambda3")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readInt.readIntPrefix.14")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Lit (Intc  0)),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)),Lit (Charc  '-')]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readNat")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readNat")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Read","readInt._#lambda3")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  ' ')])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readHex")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Read","readHex.readHexPrefix.22")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","dropWhile")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Read","readHex._#lambda4")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Lit (Intc  0)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readHex.hex2int.22")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isDigit")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '0')]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'F')]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]],Lit (Intc  10)]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) [Lit (Intc  1)])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Read","readHex.readHexPrefix.22")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Read","readHex.hex2int.22")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Read","readHex.readHexPrefix.22")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  16)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Read","readHex._#lambda4")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Lit (Charc  ' ')]))] []
diff --git a/src/lib/Curry/Module/.curry/Read.fcy b/src/lib/Curry/Module/.curry/Read.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Read.fcy
@@ -0,0 +1,1 @@
+Prog "Read" ["Char","Prelude"] [] [Func ("Read","readNat") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Read","readNat.readNatPrefix.3") [Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Read","readNat._#lambda2") [],Var 1],Lit (Intc  0)])),Func ("Read","readNat.readNatPrefix.3") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Prelude","ord") [Var 3])] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Var 5,Comb FuncCall ("Prelude","ord") [Lit (Charc  '0')]],Comb FuncCall ("Prelude","<=") [Var 5,Comb FuncCall ("Prelude","ord") [Lit (Charc  '9')]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Read","readNat.readNatPrefix.3") [Var 4,Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","*") [Var 2,Lit (Intc  10)],Var 5],Comb FuncCall ("Prelude","ord") [Lit (Charc  '0')]]]),Branch (Pattern ("Prelude","False") []) (Var 2)]))])),Func ("Read","readNat._#lambda2") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  ' ')])),Func ("Read","readInt") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Read","readInt.readIntPrefix.14") [Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Read","readInt._#lambda3") [],Var 1]])),Func ("Read","readInt.readIntPrefix.14") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Lit (Intc  0)),Branch (Pattern ("Prelude",":") [2,3]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Charc  '-')]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","negate") [Comb FuncCall ("Read","readNat") [Var 3]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Read","readNat") [Comb ConsCall ("Prelude",":") [Var 2,Var 3]])])])),Func ("Read","readInt._#lambda3") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  ' ')])),Func ("Read","readHex") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Read","readHex.readHexPrefix.22") [Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Read","readHex._#lambda4") [],Var 1],Lit (Intc  0)])),Func ("Read","readHex.hex2int.22") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Char","isDigit") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  '0')]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'F')]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]],Lit (Intc  10)]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","negate") [Lit (Intc  1)])])])),Func ("Read","readHex.readHexPrefix.22") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Read","readHex.hex2int.22") [Var 3])] (Case  Rigid (Comb FuncCall ("Prelude",">=") [Var 5,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Read","readHex.readHexPrefix.22") [Var 4,Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","*") [Var 2,Lit (Intc  16)],Var 5]]),Branch (Pattern ("Prelude","False") []) (Var 2)]))])),Func ("Read","readHex._#lambda4") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc  ' ')]))] []
diff --git a/src/lib/Curry/Module/.curry/Read.fint b/src/lib/Curry/Module/.curry/Read.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Read.fint
@@ -0,0 +1,1 @@
+Prog "Read" ["Char","Prelude"] [] [Func ("Read","readNat") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Read","readInt") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Read","readHex") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Read.uacy b/src/lib/Curry/Module/.curry/Read.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Read.uacy
@@ -0,0 +1,7 @@
+CurryProg "Read"
+ ["Prelude","Char"]
+ []
+ [CFunc ("Read","readHex") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Read","readHexPrefix")) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CLambda [CPVar (1,"c")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc ' '))))) (CVar (0,"l")))) (CLit (CIntc 0)))] [CLocalFunc (CFunc ("Read","readHexPrefix") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"n")] [(CSymbol ("Prelude","success"),CVar (1,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")],CPVar (4,"n")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (5,"cv")) (CApply (CSymbol ("Read","hex2int")) (CVar (2,"c"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (5,"cv"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Read","readHexPrefix")) (CVar (3,"cs"))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (4,"n"))) (CLit (CIntc 16)))) (CVar (5,"cv"))))) (CVar (4,"n"))))] []])),CLocalFunc (CFunc ("Read","hex2int") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (1,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("Char","isDigit")) (CVar (1,"c")))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0'))))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'F')))))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CLit (CIntc 10)))) (CApply (CSymbol ("Prelude","negate")) (CLit (CIntc 1)))))] []]))]]),
+  CFunc ("Read","readInt") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"l")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Read","readIntPrefix")) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CLambda [CPVar (1,"c")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc ' '))))) (CVar (0,"l"))))] [CLocalFunc (CFunc ("Read","readIntPrefix") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"c"),CPVar (2,"cs")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc '-')))) (CApply (CSymbol ("Prelude","negate")) (CApply (CSymbol ("Read","readNat")) (CVar (2,"cs"))))) (CApply (CSymbol ("Read","readNat")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"c"))) (CVar (2,"cs")))))] []]))]]),
+  CFunc ("Read","readNat") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (0,"l")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Read","readNatPrefix")) (CApply (CApply (CSymbol ("Prelude","dropWhile")) (CLambda [CPVar (1,"c")] (CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"c"))) (CLit (CCharc ' '))))) (CVar (0,"l")))) (CLit (CIntc 0)))] [CLocalFunc (CFunc ("Read","readNatPrefix") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (1,"n")] [(CSymbol ("Prelude","success"),CVar (1,"n"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"c"),CPVar (3,"cs")],CPVar (4,"n")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (5,"oc")) (CApply (CSymbol ("Prelude","ord")) (CVar (2,"c"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (5,"oc"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (5,"oc"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '9')))))) (CApply (CApply (CSymbol ("Read","readNatPrefix")) (CVar (3,"cs"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (4,"n"))) (CLit (CIntc 10)))) (CVar (5,"oc")))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))))) (CVar (4,"n"))))] []]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/ReadShowTerm.acy b/src/lib/Curry/Module/.curry/ReadShowTerm.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/ReadShowTerm.acy
@@ -0,0 +1,21 @@
+CurryProg "ReadShowTerm"
+ ["Prelude","Char"]
+ []
+ [CFunc ("ReadShowTerm","prim_readsQTerm") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CExternal "prim_readsQTerm"),
+  CFunc ("ReadShowTerm","prim_readsUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]))) (CExternal "prim_readsUnqualifiedTerm"),
+  CFunc ("ReadShowTerm","prim_showQTerm") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CExternal "prim_showQTerm"),
+  CFunc ("ReadShowTerm","prim_showTerm") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CExternal "prim_showTerm"),
+  CFunc ("ReadShowTerm","readQTerm") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CCase (CVar (1,"result")) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"term"),CPVar (3,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (3,"tail")))) (CVar (2,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))),CBranch (CPVar (4,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))])] [CLocalPat (CPVar (1,"result")) (CApply (CSymbol ("ReadShowTerm","readsQTerm")) (CVar (0,"s"))) []]]),
+  CFunc ("ReadShowTerm","readQTermFile") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CSymbol ("ReadShowTerm","readQTerm"))))] []]),
+  CFunc ("ReadShowTerm","readQTermListFile") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (0,"a")]])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("ReadShowTerm","readQTerm")))) (CSymbol ("Prelude","lines")))))] []]),
+  CFunc ("ReadShowTerm","readTerm") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CCase (CVar (1,"result")) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"term"),CPVar (3,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (3,"tail")))) (CVar (2,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CVar (3,"tail"))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","error"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","take")) (CLit (CIntc 20))) (CVar (0,"s"))))),CBranch (CPVar (4,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))])] [CLocalPat (CPVar (1,"result")) (CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CSymbol ("ReadShowTerm","prim_readsUnqualifiedTerm")) (CSymbol ("Prelude","[]")))) (CVar (0,"s"))) []]]),
+  CFunc ("ReadShowTerm","readUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"prefixes"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("ReadShowTerm","readsUnqualifiedTerm")) (CVar (0,"prefixes"))) (CVar (1,"s"))) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"term"),CPVar (3,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (3,"tail")))) (CVar (2,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CVar (3,"tail"))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))),CBranch (CPVar (4,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))])] []]),
+  CFunc ("ReadShowTerm","readsQTerm") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("ReadShowTerm","prim_readsQTerm"))) (CVar (0,"s")))] []]),
+  CFunc ("ReadShowTerm","readsTerm") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CSymbol ("ReadShowTerm","prim_readsUnqualifiedTerm")) (CSymbol ("Prelude","[]")))) (CVar (0,"s")))] []]),
+  CFunc ("ReadShowTerm","readsUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"prefix"),CPVar (2,"prefixes")],CPVar (3,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("ReadShowTerm","readsUnqualifiedTermWithPrefixes")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"prefix"))) (CVar (2,"prefixes")))) (CVar (3,"s")))] []]),
+  CFunc ("ReadShowTerm","readsUnqualifiedTermWithPrefixes") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]))) (CRules CFlex [CRule [CPVar (0,"prefixes"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("ReadShowTerm","prim_readsUnqualifiedTerm"))) (CVar (0,"prefixes")))) (CVar (1,"s")))] []]),
+  CFunc ("ReadShowTerm","showQTerm") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("ReadShowTerm","prim_showQTerm"))) (CVar (0,"x")))] []]),
+  CFunc ("ReadShowTerm","showTerm") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("ReadShowTerm","prim_showTerm"))) (CVar (0,"x")))] []]),
+  CFunc ("ReadShowTerm","writeQTermFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"filename"),CPVar (1,"term")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (0,"filename"))) (CApply (CSymbol ("ReadShowTerm","showQTerm")) (CVar (1,"term"))))] []]),
+  CFunc ("ReadShowTerm","writeQTermListFile") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"filename"),CPVar (1,"terms")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (0,"filename"))) (CApply (CSymbol ("Prelude","unlines")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("ReadShowTerm","showQTerm"))) (CVar (1,"terms")))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/ReadShowTerm.cy b/src/lib/Curry/Module/.curry/ReadShowTerm.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/ReadShowTerm.cy
@@ -0,0 +1,39 @@
+Module "ReadShowTerm"
+Nothing
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (13,1) "Char" False Nothing (Just (Importing (13,12) [(Import (Ident "isSpace" 0))])))
+,(TypeSig (22,1) [(Ident "showTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (23,1) (Ident "showTerm" 0) [(Equation (23,1) (FunLhs (Ident "showTerm" 0) [(VariablePattern (Ident "x" 2))]) (SimpleRhs (23,14) (InfixApply (Variable (QualIdent (Just "ReadShowTerm") (Ident "prim_showTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "x" 2)))) []))])
+,(TypeSig (25,1) [(Ident "prim_showTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FlatExternalDecl (26,1) [(Ident "prim_showTerm" 0)])
+,(TypeSig (34,1) [(Ident "showQTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (35,1) (Ident "showQTerm" 0) [(Equation (35,1) (FunLhs (Ident "showQTerm" 0) [(VariablePattern (Ident "x" 4))]) (SimpleRhs (35,15) (InfixApply (Variable (QualIdent (Just "ReadShowTerm") (Ident "prim_showQTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "x" 4)))) []))])
+,(TypeSig (37,1) [(Ident "prim_showQTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FlatExternalDecl (38,1) [(Ident "prim_showQTerm" 0)])
+,(TypeSig (48,1) [(Ident "readsUnqualifiedTerm" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))))
+,(FunctionDecl (49,1) (Ident "readsUnqualifiedTerm" 0) [(Equation (49,1) (FunLhs (Ident "readsUnqualifiedTerm" 0) [(ListPattern []),(VariablePattern (Ident "_" 7))]) (SimpleRhs (50,3) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "ReadShowTerm.readsUnqualifiedTerm: list of module prefixes is empty"))) [])),(Equation (51,1) (FunLhs (Ident "readsUnqualifiedTerm" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "prefix" 9)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "prefixes" 9)))),(VariablePattern (Ident "s" 9))]) (SimpleRhs (52,3) (Apply (Apply (Variable (QualIdent (Just "ReadShowTerm") (Ident "readsUnqualifiedTermWithPrefixes" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "prefix" 9))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "prefixes" 9)))))) (Variable (QualIdent Nothing (Ident "s" 9)))) []))])
+,(TypeSig (54,1) [(Ident "readsUnqualifiedTermWithPrefixes" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))))
+,(FunctionDecl (55,1) (Ident "readsUnqualifiedTermWithPrefixes" 0) [(Equation (55,1) (FunLhs (Ident "readsUnqualifiedTermWithPrefixes" 0) [(VariablePattern (Ident "prefixes" 11)),(VariablePattern (Ident "s" 11))]) (SimpleRhs (56,3) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "ReadShowTerm") (Ident "prim_readsUnqualifiedTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "prefixes" 11))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 11)))) []))])
+,(TypeSig (58,1) [(Ident "prim_readsUnqualifiedTerm" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))))
+,(FlatExternalDecl (59,1) [(Ident "prim_readsUnqualifiedTerm" 0)])
+,(TypeSig (70,1) [(Ident "readUnqualifiedTerm" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "_" 0)))))
+,(FunctionDecl (71,1) (Ident "readUnqualifiedTerm" 0) [(Equation (71,1) (FunLhs (Ident "readUnqualifiedTerm" 0) [(VariablePattern (Ident "prefixes" 13)),(VariablePattern (Ident "s" 13))]) (SimpleRhs (71,34) (Case (Apply (Apply (Variable (QualIdent (Just "ReadShowTerm") (Ident "readsUnqualifiedTerm" 0))) (Variable (QualIdent Nothing (Ident "prefixes" 13)))) (Variable (QualIdent Nothing (Ident "s" 13)))) [(Alt (72,3) (ListPattern [(TuplePattern [(VariablePattern (Ident "term" 15)),(VariablePattern (Ident "tail" 15))])]) (SimpleRhs (73,9) (IfThenElse (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "all" 0))) (Variable (QualIdent (Just "Char") (Ident "isSpace" 0)))) (Variable (QualIdent Nothing (Ident "tail" 15)))) (Variable (QualIdent Nothing (Ident "term" 15))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Paren (InfixApply (Literal (String "ReadShowTerm.readUnqualifiedTerm: no parse, unmatched string after term: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "tail" 15))))))) [])),(Alt (75,3) (ListPattern []) (SimpleRhs (75,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "ReadShowTerm.readUnqualifiedTerm: no parse"))) [])),(Alt (76,3) (VariablePattern (Ident "_" 20)) (SimpleRhs (76,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "ReadShowTerm.readUnqualifiedTerm: ambiguous parse"))) []))]) []))])
+,(TypeSig (80,1) [(Ident "readsTerm" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))))
+,(FunctionDecl (81,1) (Ident "readsTerm" 0) [(Equation (81,1) (FunLhs (Ident "readsTerm" 0) [(VariablePattern (Ident "s" 22))]) (SimpleRhs (81,15) (InfixApply (Apply (Variable (QualIdent (Just "ReadShowTerm") (Ident "prim_readsUnqualifiedTerm" 0))) (List [])) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 22)))) []))])
+,(TypeSig (85,1) [(Ident "readTerm" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "_" 0))))
+,(FunctionDecl (86,1) (Ident "readTerm" 0) [(Equation (86,1) (FunLhs (Ident "readTerm" 0) [(VariablePattern (Ident "s" 24))]) (SimpleRhs (86,14) (Case (Variable (QualIdent Nothing (Ident "result" 25))) [(Alt (87,3) (ListPattern [(TuplePattern [(VariablePattern (Ident "term" 27)),(VariablePattern (Ident "tail" 27))])]) (SimpleRhs (88,9) (IfThenElse (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "all" 0))) (Variable (QualIdent (Just "Char") (Ident "isSpace" 0)))) (Variable (QualIdent Nothing (Ident "tail" 27)))) (Variable (QualIdent Nothing (Ident "term" 27))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Paren (InfixApply (Literal (String "ReadShowTerm.readTerm: no parse, unmatched string after term: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "tail" 27))))))) [])),(Alt (90,3) (ListPattern []) (SimpleRhs (90,10) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (Literal (String "ReadShowTerm.readTerm: no parse of string beginning with ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "take" 0))) (Literal (Int (Ident "_" 31) 20))) (Variable (QualIdent Nothing (Ident "s" 24)))))) [])),(Alt (92,3) (VariablePattern (Ident "_" 33)) (SimpleRhs (92,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "ReadShowTerm.readTerm: ambiguous parse"))) []))]) [(PatternDecl (93,8) (VariablePattern (Ident "result" 25)) (SimpleRhs (93,17) (InfixApply (Apply (Variable (QualIdent (Just "ReadShowTerm") (Ident "prim_readsUnqualifiedTerm" 0))) (List [])) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 24)))) []))]))])
+,(TypeSig (100,1) [(Ident "readsQTerm" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))))
+,(FunctionDecl (101,1) (Ident "readsQTerm" 0) [(Equation (101,1) (FunLhs (Ident "readsQTerm" 0) [(VariablePattern (Ident "s" 35))]) (SimpleRhs (101,16) (InfixApply (Variable (QualIdent (Just "ReadShowTerm") (Ident "prim_readsQTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 35)))) []))])
+,(TypeSig (103,1) [(Ident "prim_readsQTerm" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))))
+,(FlatExternalDecl (104,1) [(Ident "prim_readsQTerm" 0)])
+,(TypeSig (109,1) [(Ident "readQTerm" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "_" 0))))
+,(FunctionDecl (110,1) (Ident "readQTerm" 0) [(Equation (110,1) (FunLhs (Ident "readQTerm" 0) [(VariablePattern (Ident "s" 37))]) (SimpleRhs (110,15) (Case (Variable (QualIdent Nothing (Ident "result" 38))) [(Alt (111,3) (ListPattern [(TuplePattern [(VariablePattern (Ident "term" 40)),(VariablePattern (Ident "tail" 40))])]) (SimpleRhs (111,20) (IfThenElse (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "all" 0))) (Variable (QualIdent (Just "Char") (Ident "isSpace" 0)))) (Variable (QualIdent Nothing (Ident "tail" 40)))) (Variable (QualIdent Nothing (Ident "term" 40))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "ReadShowTerm.readQTerm: no parse")))) [])),(Alt (113,3) (ListPattern []) (SimpleRhs (113,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "ReadShowTerm.readQTerm: no parse"))) [])),(Alt (114,3) (VariablePattern (Ident "_" 45)) (SimpleRhs (114,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "ReadShowTerm.readQTerm: ambiguous parse"))) []))]) [(PatternDecl (115,8) (VariablePattern (Ident "result" 38)) (SimpleRhs (115,17) (Apply (Variable (QualIdent (Just "ReadShowTerm") (Ident "readsQTerm" 0))) (Variable (QualIdent Nothing (Ident "s" 37)))) []))]))])
+,(TypeSig (121,1) [(Ident "readQTermFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "_" 0))])))
+,(FunctionDecl (122,1) (Ident "readQTermFile" 0) [(Equation (122,1) (FunLhs (Ident "readQTermFile" 0) [(VariablePattern (Ident "file" 47))]) (SimpleRhs (122,22) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "readFile" 0))) (Variable (QualIdent Nothing (Ident "file" 47)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "ReadShowTerm") (Ident "readQTerm" 0))))) []))])
+,(TypeSig (127,1) [(Ident "readQTermListFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (VariableType (Ident "_" 0)))])))
+,(FunctionDecl (128,1) (Ident "readQTermListFile" 0) [(Equation (128,1) (FunLhs (Ident "readQTermListFile" 0) [(VariablePattern (Ident "file" 49))]) (SimpleRhs (128,26) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "readFile" 0))) (Variable (QualIdent Nothing (Ident "file" 49)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "ReadShowTerm") (Ident "readQTerm" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "lines" 0)))))) []))])
+,(TypeSig (134,1) [(Ident "writeQTermFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (135,1) (Ident "writeQTermFile" 0) [(Equation (135,1) (FunLhs (Ident "writeQTermFile" 0) [(VariablePattern (Ident "filename" 51)),(VariablePattern (Ident "term" 51))]) (SimpleRhs (135,32) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "writeFile" 0))) (Variable (QualIdent Nothing (Ident "filename" 51)))) (Paren (Apply (Variable (QualIdent (Just "ReadShowTerm") (Ident "showQTerm" 0))) (Variable (QualIdent Nothing (Ident "term" 51)))))) []))])
+,(TypeSig (143,1) [(Ident "writeQTermListFile" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ListType (VariableType (Ident "_" 0))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (144,1) (Ident "writeQTermListFile" 0) [(Equation (144,1) (FunLhs (Ident "writeQTermListFile" 0) [(VariablePattern (Ident "filename" 53)),(VariablePattern (Ident "terms" 53))]) (SimpleRhs (145,5) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "writeFile" 0))) (Variable (QualIdent Nothing (Ident "filename" 53)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "unlines" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent (Just "ReadShowTerm") (Ident "showQTerm" 0)))) (Variable (QualIdent Nothing (Ident "terms" 53)))))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/ReadShowTerm.efc b/src/lib/Curry/Module/.curry/ReadShowTerm.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/ReadShowTerm.efc
@@ -0,0 +1,1 @@
+Prog "ReadShowTerm" ["Char","Prelude"] [] [Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"ReadShowTerm","showTerm")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"ReadShowTerm","prim_showTerm")) [],Var ((Just (TVar 0),1))])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"ReadShowTerm","prim_showTerm")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (External "ReadShowTerm.prim_showTerm"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"ReadShowTerm","showQTerm")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"ReadShowTerm","prim_showQTerm")) [],Var ((Just (TVar 0),1))])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"ReadShowTerm","prim_showQTerm")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (External "ReadShowTerm.prim_showQTerm"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"ReadShowTerm","readsUnqualifiedTerm")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"ReadShowTerm","readsUnqualifiedTermWithPrefixes")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"ReadShowTerm","readsUnqualifiedTermWithPrefixes")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"ReadShowTerm","prim_readsUnqualifiedTerm")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"ReadShowTerm","prim_readsUnqualifiedTerm")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))) (External "ReadShowTerm.prim_readsUnqualifiedTerm"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0))),"ReadShowTerm","readUnqualifiedTerm")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"ReadShowTerm","readsUnqualifiedTerm")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","all")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isSpace")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),5))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),7),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 14,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"ReadShowTerm","readsTerm")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"ReadShowTerm","prim_readsUnqualifiedTerm")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"ReadShowTerm","readTerm")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 89) (TVar 90)) (FuncType (TVar 89) (TVar 90))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 88,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"ReadShowTerm","prim_readsUnqualifiedTerm")) [Comb ConsCall ((Nothing,Just (TVar 87),"Prelude","[]")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","all")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isSpace")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),5))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),7),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 73,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0))),"Prelude","$")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","take")) [Lit (Intc  20),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]]])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"ReadShowTerm","readsQTerm")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"ReadShowTerm","prim_readsQTerm")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"ReadShowTerm","prim_readsQTerm")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (External "ReadShowTerm.prim_readsQTerm"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"ReadShowTerm","readQTerm")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 105,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"ReadShowTerm","readsQTerm")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","all")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isSpace")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),5))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'Q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),7),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'Q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 92,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'Q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"ReadShowTerm","readQTermFile")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","readFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Prelude","return")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"ReadShowTerm","readQTerm")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"ReadShowTerm","readQTermListFile")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","readFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]])),"Prelude","return")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"ReadShowTerm","readQTerm")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","lines")) []]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"ReadShowTerm","writeQTermFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","writeFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"ReadShowTerm","showQTerm")) [Var ((Just (TVar 0),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"ReadShowTerm","writeQTermListFile")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","writeFile")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","unlines")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","map")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"ReadShowTerm","showQTerm")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]]]))] []
diff --git a/src/lib/Curry/Module/.curry/ReadShowTerm.fcy b/src/lib/Curry/Module/.curry/ReadShowTerm.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/ReadShowTerm.fcy
@@ -0,0 +1,1 @@
+Prog "ReadShowTerm" ["Char","Prelude"] [] [Func ("ReadShowTerm","showTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("ReadShowTerm","prim_showTerm") [],Var 1])),Func ("ReadShowTerm","prim_showTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "ReadShowTerm.prim_showTerm"),Func ("ReadShowTerm","showQTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("ReadShowTerm","prim_showQTerm") [],Var 1])),Func ("ReadShowTerm","prim_showQTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "ReadShowTerm.prim_showQTerm"),Func ("ReadShowTerm","readsUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","error") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("ReadShowTerm","readsUnqualifiedTermWithPrefixes") [Comb ConsCall ("Prelude",":") [Var 3,Var 4],Var 2])])),Func ("ReadShowTerm","readsUnqualifiedTermWithPrefixes") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("ReadShowTerm","prim_readsUnqualifiedTerm") [],Var 1],Var 2])),Func ("ReadShowTerm","prim_readsUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (External "ReadShowTerm.prim_readsUnqualifiedTerm"),Func ("ReadShowTerm","readUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("ReadShowTerm","readsUnqualifiedTerm") [Var 1,Var 2]) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","[]") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","all") [Comb (FuncPartCall 1) ("Char","isSpace") []],Var 6]) [Branch (Pattern ("Prelude","True") []) (Var 5),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","error") [Comb FuncCall ("Prelude","++") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),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  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Var 6]])]),Branch (Pattern ("Prelude",":") [7,8]) (Comb FuncCall ("Prelude","error") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","error") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])),Func ("ReadShowTerm","readsTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("ReadShowTerm","prim_readsUnqualifiedTerm") [Comb ConsCall ("Prelude","[]") []],Var 1])),Func ("ReadShowTerm","readTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (Rule [1] (Let [(2,Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("ReadShowTerm","prim_readsUnqualifiedTerm") [Comb ConsCall ("Prelude","[]") []],Var 1])] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","[]") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","all") [Comb (FuncPartCall 1) ("Char","isSpace") []],Var 6]) [Branch (Pattern ("Prelude","True") []) (Var 5),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","error") [Comb FuncCall ("Prelude","++") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),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  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Var 6]])]),Branch (Pattern ("Prelude",":") [7,8]) (Comb FuncCall ("Prelude","error") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","error") [],Comb FuncCall ("Prelude","++") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),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  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),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  '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","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","take") [Lit (Intc  20),Var 1]]])]))),Func ("ReadShowTerm","readsQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("ReadShowTerm","prim_readsQTerm") [],Var 1])),Func ("ReadShowTerm","prim_readsQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (External "ReadShowTerm.prim_readsQTerm"),Func ("ReadShowTerm","readQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (Rule [1] (Let [(2,Comb FuncCall ("ReadShowTerm","readsQTerm") [Var 1])] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","[]") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","all") [Comb (FuncPartCall 1) ("Char","isSpace") []],Var 6]) [Branch (Pattern ("Prelude","True") []) (Var 5),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","error") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'Q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]),Branch (Pattern ("Prelude",":") [7,8]) (Comb FuncCall ("Prelude","error") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'Q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","error") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  'Q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]))),Func ("ReadShowTerm","readQTermFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","readFile") [Var 1],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (FuncPartCall 1) ("ReadShowTerm","readQTerm") []]])),Func ("ReadShowTerm","readQTermListFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 0]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","readFile") [Var 1],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("ReadShowTerm","readQTerm") []],Comb (FuncPartCall 1) ("Prelude","lines") []]]])),Func ("ReadShowTerm","writeQTermFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","writeFile") [Var 1,Comb FuncCall ("ReadShowTerm","showQTerm") [Var 2]])),Func ("ReadShowTerm","writeQTermListFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","writeFile") [Var 1,Comb FuncCall ("Prelude","unlines") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("ReadShowTerm","showQTerm") [],Var 2]]]))] []
diff --git a/src/lib/Curry/Module/.curry/ReadShowTerm.fint b/src/lib/Curry/Module/.curry/ReadShowTerm.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/ReadShowTerm.fint
@@ -0,0 +1,1 @@
+Prog "ReadShowTerm" ["Char","Prelude"] [] [Func ("ReadShowTerm","showTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("ReadShowTerm","prim_showTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "ReadShowTerm.prim_showTerm"),Func ("ReadShowTerm","showQTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("ReadShowTerm","prim_showQTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "ReadShowTerm.prim_showQTerm"),Func ("ReadShowTerm","readsUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [] (Var 0)),Func ("ReadShowTerm","readsUnqualifiedTermWithPrefixes") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [] (Var 0)),Func ("ReadShowTerm","prim_readsUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (External "ReadShowTerm.prim_readsUnqualifiedTerm"),Func ("ReadShowTerm","readUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0))) (Rule [] (Var 0)),Func ("ReadShowTerm","readsTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [] (Var 0)),Func ("ReadShowTerm","readTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (Rule [] (Var 0)),Func ("ReadShowTerm","readsQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [] (Var 0)),Func ("ReadShowTerm","prim_readsQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (External "ReadShowTerm.prim_readsQTerm"),Func ("ReadShowTerm","readQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (Rule [] (Var 0)),Func ("ReadShowTerm","readQTermFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TVar 0])) (Rule [] (Var 0)),Func ("ReadShowTerm","readQTermListFile") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 0]])) (Rule [] (Var 0)),Func ("ReadShowTerm","writeQTermFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("ReadShowTerm","writeQTermListFile") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/ReadShowTerm.uacy b/src/lib/Curry/Module/.curry/ReadShowTerm.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/ReadShowTerm.uacy
@@ -0,0 +1,21 @@
+CurryProg "ReadShowTerm"
+ ["Prelude","Char"]
+ []
+ [CFunc ("ReadShowTerm","prim_readsQTerm") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]])) (CExternal "prim_readsQTerm"),
+  CFunc ("ReadShowTerm","prim_readsUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]]))) (CExternal "prim_readsUnqualifiedTerm"),
+  CFunc ("ReadShowTerm","prim_showQTerm") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CExternal "prim_showQTerm"),
+  CFunc ("ReadShowTerm","prim_showTerm") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CExternal "prim_showTerm"),
+  CFunc ("ReadShowTerm","readQTerm") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTVar (0,"_"))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CCase (CVar (1,"result")) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"term"),CPVar (3,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (3,"tail")))) (CVar (2,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))),CBranch (CPVar (4,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))])] [CLocalPat (CPVar (1,"result")) (CApply (CSymbol ("ReadShowTerm","readsQTerm")) (CVar (0,"s"))) []]]),
+  CFunc ("ReadShowTerm","readQTermFile") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTVar (0,"_")])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CSymbol ("ReadShowTerm","readQTerm"))))] []]),
+  CFunc ("ReadShowTerm","readQTermListFile") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (0,"_")]])) (CRules CFlex [CRule [CPVar (0,"file")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CSymbol ("Prelude","readFile")) (CVar (0,"file")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Prelude","map")) (CSymbol ("ReadShowTerm","readQTerm")))) (CSymbol ("Prelude","lines")))))] []]),
+  CFunc ("ReadShowTerm","readTerm") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTVar (0,"_"))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CCase (CVar (1,"result")) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"term"),CPVar (3,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (3,"tail")))) (CVar (2,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CVar (3,"tail"))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","error"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CApply (CApply (CSymbol ("Prelude","take")) (CLit (CIntc 20))) (CVar (0,"s"))))),CBranch (CPVar (4,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))])] [CLocalPat (CPVar (1,"result")) (CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CSymbol ("ReadShowTerm","prim_readsUnqualifiedTerm")) (CSymbol ("Prelude","[]")))) (CVar (0,"s"))) []]]),
+  CFunc ("ReadShowTerm","readUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","String") []) (CTVar (0,"_")))) (CRules CFlex [CRule [CPVar (0,"prefixes"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("ReadShowTerm","readsUnqualifiedTerm")) (CVar (0,"prefixes"))) (CVar (1,"s"))) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"term"),CPVar (3,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (3,"tail")))) (CVar (2,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CVar (3,"tail"))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))),CBranch (CPVar (4,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))])] []]),
+  CFunc ("ReadShowTerm","readsQTerm") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("ReadShowTerm","prim_readsQTerm"))) (CVar (0,"s")))] []]),
+  CFunc ("ReadShowTerm","readsTerm") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CSymbol ("ReadShowTerm","prim_readsUnqualifiedTerm")) (CSymbol ("Prelude","[]")))) (CVar (0,"s")))] []]),
+  CFunc ("ReadShowTerm","readsUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"prefix"),CPVar (2,"prefixes")],CPVar (3,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("ReadShowTerm","readsUnqualifiedTermWithPrefixes")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"prefix"))) (CVar (2,"prefixes")))) (CVar (3,"s")))] []]),
+  CFunc ("ReadShowTerm","readsUnqualifiedTermWithPrefixes") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]]))) (CRules CFlex [CRule [CPVar (0,"prefixes"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("ReadShowTerm","prim_readsUnqualifiedTerm"))) (CVar (0,"prefixes")))) (CVar (1,"s")))] []]),
+  CFunc ("ReadShowTerm","showQTerm") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("ReadShowTerm","prim_showQTerm"))) (CVar (0,"x")))] []]),
+  CFunc ("ReadShowTerm","showTerm") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("ReadShowTerm","prim_showTerm"))) (CVar (0,"x")))] []]),
+  CFunc ("ReadShowTerm","writeQTermFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"filename"),CPVar (1,"term")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (0,"filename"))) (CApply (CSymbol ("ReadShowTerm","showQTerm")) (CVar (1,"term"))))] []]),
+  CFunc ("ReadShowTerm","writeQTermListFile") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"_")]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"filename"),CPVar (1,"terms")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (0,"filename"))) (CApply (CSymbol ("Prelude","unlines")) (CApply (CApply (CSymbol ("Prelude","map")) (CSymbol ("ReadShowTerm","showQTerm"))) (CVar (1,"terms")))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/RedBlackTree.acy b/src/lib/Curry/Module/.curry/RedBlackTree.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RedBlackTree.acy
@@ -0,0 +1,33 @@
+CurryProg "RedBlackTree"
+ ["Prelude"]
+ [CType ("RedBlackTree","RedBlackTree") Public [(0,"a")] [CCons ("RedBlackTree","RedBlackTree") 4 Public [CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])),CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])),CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])),CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]]],
+  CType ("RedBlackTree","Color") Private [] [CCons ("RedBlackTree","Red") 0 Private [],CCons ("RedBlackTree","Black") 0 Private [],CCons ("RedBlackTree","DoublyBlack") 0 Private []],
+  CType ("RedBlackTree","Tree") Private [(0,"a")] [CCons ("RedBlackTree","Tree") 4 Private [CTCons ("RedBlackTree","Color") [],CTVar (0,"a"),CTCons ("RedBlackTree","Tree") [CTVar (0,"a")],CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]],CCons ("RedBlackTree","Empty") 0 Private []]]
+ [CFunc ("RedBlackTree","balanceL") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("RedBlackTree","isRed")) (CVar (1,"leftTree")))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (1,"leftTree")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (2,"_"),CPVar (3,"z"),CPComb ("RedBlackTree","Tree") [CPVar (4,"_"),CPVar (5,"y"),CPComb ("RedBlackTree","Tree") [CPVar (6,"_"),CPVar (7,"x"),CPVar (8,"a"),CPVar (9,"b")],CPVar (10,"c")],CPVar (11,"d")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (5,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (7,"x"))) (CVar (8,"a"))) (CVar (9,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (3,"z"))) (CVar (10,"c"))) (CVar (11,"d"))))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("RedBlackTree","isRed")) (CVar (1,"leftTree")))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (1,"leftTree")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (12,"_"),CPVar (13,"z"),CPComb ("RedBlackTree","Tree") [CPVar (14,"_"),CPVar (15,"x"),CPVar (16,"a"),CPComb ("RedBlackTree","Tree") [CPVar (17,"_"),CPVar (18,"y"),CPVar (19,"b"),CPVar (20,"c")]],CPVar (21,"d")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (18,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (15,"x"))) (CVar (16,"a"))) (CVar (19,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (13,"z"))) (CVar (20,"c"))) (CVar (21,"d"))))),(CSymbol ("Prelude","otherwise"),CVar (0,"tree"))] [CLocalPat (CPVar (1,"leftTree")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (0,"tree"))) []]]),
+  CFunc ("RedBlackTree","balanceR") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("RedBlackTree","isRed")) (CVar (1,"rightTree")))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (1,"rightTree")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (2,"_"),CPVar (3,"x"),CPVar (4,"a"),CPComb ("RedBlackTree","Tree") [CPVar (5,"_"),CPVar (6,"y"),CPVar (7,"b"),CPComb ("RedBlackTree","Tree") [CPVar (8,"_"),CPVar (9,"z"),CPVar (10,"c"),CPVar (11,"d")]]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (6,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (3,"x"))) (CVar (4,"a"))) (CVar (7,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (9,"z"))) (CVar (10,"c"))) (CVar (11,"d"))))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("RedBlackTree","isRed")) (CVar (1,"rightTree")))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (1,"rightTree")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (12,"_"),CPVar (13,"x"),CPVar (14,"a"),CPComb ("RedBlackTree","Tree") [CPVar (15,"_"),CPVar (16,"z"),CPComb ("RedBlackTree","Tree") [CPVar (17,"_"),CPVar (18,"y"),CPVar (19,"b"),CPVar (20,"c")],CPVar (21,"d")]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (18,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (13,"x"))) (CVar (14,"a"))) (CVar (19,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (16,"z"))) (CVar (20,"c"))) (CVar (21,"d"))))),(CSymbol ("Prelude","otherwise"),CVar (0,"tree"))] [CLocalPat (CPVar (1,"rightTree")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (0,"tree"))) []]]),
+  CFunc ("RedBlackTree","delBalanceL") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("RedBlackTree","isDoublyBlack")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (0,"tree"))))) (CApply (CSymbol ("RedBlackTree","reviseLeft")) (CVar (0,"tree")))) (CVar (0,"tree")))] []]),
+  CFunc ("RedBlackTree","delBalanceR") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("RedBlackTree","isDoublyBlack")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (0,"tree"))))) (CApply (CSymbol ("RedBlackTree","reviseRight")) (CVar (0,"tree")))) (CVar (0,"tree")))] []]),
+  CFunc ("RedBlackTree","delete") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"e"),CPComb ("RedBlackTree","RedBlackTree") [CPVar (1,"eqIns"),CPVar (2,"eqLk"),CPVar (3,"lt"),CPVar (4,"t")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (1,"eqIns"))) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CApply (CSymbol ("RedBlackTree","blackenRoot")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","deleteTree")) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CVar (0,"e"))) (CVar (4,"t")))))] [CLocalFunc (CFunc ("RedBlackTree","blackenRoot") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","Empty"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (5,"_"),CPVar (6,"x"),CPVar (7,"l"),CPVar (8,"r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (6,"x"))) (CVar (7,"l"))) (CVar (8,"r")))] []]))]]),
+  CFunc ("RedBlackTree","deleteTree") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","Empty"))] [],CRule [CPVar (3,"eq"),CPVar (4,"lt"),CPVar (5,"e"),CPComb ("RedBlackTree","Tree") [CPVar (6,"c"),CPVar (7,"e2"),CPVar (8,"l"),CPVar (9,"r")]] [(CApply (CApply (CVar (3,"eq")) (CVar (5,"e"))) (CVar (7,"e2")),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"l"))) (CSymbol ("RedBlackTree","Empty")))) (CApply (CApply (CSymbol ("RedBlackTree","addColor")) (CVar (6,"c"))) (CVar (9,"r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"r"))) (CSymbol ("RedBlackTree","Empty")))) (CApply (CApply (CSymbol ("RedBlackTree","addColor")) (CVar (6,"c"))) (CVar (8,"l")))) (CLetDecl [CLocalPat (CPVar (10,"el")) (CApply (CSymbol ("RedBlackTree","rightMost")) (CVar (8,"l"))) []] (CApply (CSymbol ("RedBlackTree","delBalanceL")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (6,"c"))) (CVar (10,"el"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","deleteTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (10,"el"))) (CVar (8,"l")))) (CVar (9,"r"))))))),(CApply (CApply (CVar (4,"lt")) (CVar (5,"e"))) (CVar (7,"e2")),CApply (CSymbol ("RedBlackTree","delBalanceL")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (6,"c"))) (CVar (7,"e2"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","deleteTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (5,"e"))) (CVar (8,"l")))) (CVar (9,"r")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("RedBlackTree","delBalanceR")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (6,"c"))) (CVar (7,"e2"))) (CVar (8,"l"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","deleteTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (5,"e"))) (CVar (9,"r")))))] [CLocalFunc (CFunc ("RedBlackTree","addColor") 2 Private (CFuncType (CTCons ("RedBlackTree","Color") []) (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("RedBlackTree","Red") [],CPVar (10,"tree")] [(CSymbol ("Prelude","success"),CVar (10,"tree"))] [],CRule [CPComb ("RedBlackTree","Black") [],CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","Empty"))] [],CRule [CPComb ("RedBlackTree","Black") [],CPComb ("RedBlackTree","Tree") [CPComb ("RedBlackTree","Red") [],CPVar (11,"x"),CPVar (12,"lx"),CPVar (13,"rx")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (11,"x"))) (CVar (12,"lx"))) (CVar (13,"rx")))] [],CRule [CPComb ("RedBlackTree","Black") [],CPComb ("RedBlackTree","Tree") [CPComb ("RedBlackTree","Black") [],CPVar (14,"x"),CPVar (15,"lx"),CPVar (16,"rx")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","DoublyBlack"))) (CVar (14,"x"))) (CVar (15,"lx"))) (CVar (16,"rx")))] []])),CLocalFunc (CFunc ("RedBlackTree","rightMost") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("RedBlackTree","Tree") [CPVar (10,"_"),CPVar (11,"x"),CPVar (12,"_"),CPVar (13,"rx")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (13,"rx"))) (CSymbol ("RedBlackTree","Empty")))) (CVar (11,"x"))) (CApply (CSymbol ("RedBlackTree","rightMost")) (CVar (13,"rx"))))] []]))]]),
+  CFunc ("RedBlackTree","element") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"_"),CPVar (1,"e"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"e"))] []]),
+  CFunc ("RedBlackTree","empty") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"eqInsert"),CPVar (1,"eqLookUp"),CPVar (2,"lessThan")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (0,"eqInsert"))) (CVar (1,"eqLookUp"))) (CVar (2,"lessThan"))) (CSymbol ("RedBlackTree","Empty")))] []]),
+  CFunc ("RedBlackTree","isBlack") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"c"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("RedBlackTree","Black")))] []]),
+  CFunc ("RedBlackTree","isDoublyBlack") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"c"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("RedBlackTree","DoublyBlack")))] []]),
+  CFunc ("RedBlackTree","isEmpty") 1 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("RedBlackTree","Empty") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPComb ("RedBlackTree","Tree") [CPVar (6,"_"),CPVar (7,"_"),CPVar (8,"_"),CPVar (9,"_")]]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("RedBlackTree","isRed") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"c"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("RedBlackTree","Red")))] []]),
+  CFunc ("RedBlackTree","left") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"l"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"l"))] []]),
+  CFunc ("RedBlackTree","lookup") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPComb ("RedBlackTree","RedBlackTree") [CPVar (1,"_"),CPVar (2,"eqLk"),CPVar (3,"lt"),CPVar (4,"t")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","lookupTree")) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CVar (0,"p"))) (CVar (4,"t")))] []]),
+  CFunc ("RedBlackTree","lookupTree") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPVar (3,"eq"),CPVar (4,"lt"),CPVar (5,"p"),CPComb ("RedBlackTree","Tree") [CPVar (6,"_"),CPVar (7,"e"),CPVar (8,"l"),CPVar (9,"r")]] [(CApply (CApply (CVar (3,"eq")) (CVar (5,"p"))) (CVar (7,"e")),CApply (CSymbol ("Prelude","Just")) (CVar (7,"e"))),(CApply (CApply (CVar (4,"lt")) (CVar (5,"p"))) (CVar (7,"e")),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","lookupTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (5,"p"))) (CVar (8,"l"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","lookupTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (5,"p"))) (CVar (9,"r")))] []]),
+  CFunc ("RedBlackTree","newTreeLike") 1 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (0,"eqIns"),CPVar (1,"eqLk"),CPVar (2,"lt"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (0,"eqIns"))) (CVar (1,"eqLk"))) (CVar (2,"lt"))) (CSymbol ("RedBlackTree","Empty")))] []]),
+  CFunc ("RedBlackTree","rbt") 1 Private (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"t")]] [(CSymbol ("Prelude","success"),CVar (3,"t"))] []]),
+  CFunc ("RedBlackTree","reviseLeft") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"r"))) (CSymbol ("RedBlackTree","Empty")),CVar (0,"tree")),(CApply (CApply (CSymbol ("Prelude","&&")) (CVar (2,"blackr"))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (1,"r")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (3,"col"),CPVar (4,"x"),CPVar (5,"a"),CPComb ("RedBlackTree","Tree") [CPVar (6,"_"),CPVar (7,"z"),CPComb ("RedBlackTree","Tree") [CPVar (8,"_"),CPVar (9,"y"),CPVar (10,"b"),CPVar (11,"c")],CPVar (12,"d")]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (3,"col"))) (CVar (9,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (4,"x"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (5,"a")))) (CVar (10,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (7,"z"))) (CVar (11,"c"))) (CVar (12,"d"))))),(CApply (CApply (CSymbol ("Prelude","&&")) (CVar (2,"blackr"))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (1,"r")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (13,"col"),CPVar (14,"x"),CPVar (15,"a"),CPComb ("RedBlackTree","Tree") [CPVar (16,"_"),CPVar (17,"y"),CPVar (18,"b"),CPComb ("RedBlackTree","Tree") [CPVar (19,"_"),CPVar (20,"z"),CPVar (21,"c"),CPVar (22,"d")]]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (13,"col"))) (CVar (17,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (14,"x"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (15,"a")))) (CVar (18,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (20,"z"))) (CVar (21,"c"))) (CVar (22,"d"))))),(CVar (2,"blackr"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (23,"col"),CPVar (24,"x"),CPVar (25,"a"),CPComb ("RedBlackTree","Tree") [CPVar (26,"_"),CPVar (27,"y"),CPVar (28,"b"),CPVar (29,"c")]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (23,"col"))) (CSymbol ("RedBlackTree","Red")))) (CSymbol ("RedBlackTree","Black"))) (CSymbol ("RedBlackTree","DoublyBlack")))) (CVar (24,"x"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (25,"a")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (27,"y"))) (CVar (28,"b"))) (CVar (29,"c"))))),(CSymbol ("Prelude","otherwise"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (30,"_"),CPVar (31,"x"),CPVar (32,"a"),CPComb ("RedBlackTree","Tree") [CPVar (33,"_"),CPVar (34,"y"),CPVar (35,"b"),CPVar (36,"c")]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (34,"y"))) (CApply (CSymbol ("RedBlackTree","reviseLeft")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (31,"x"))) (CVar (32,"a"))) (CVar (35,"b"))))) (CVar (36,"c"))))] [CLocalPat (CPVar (1,"r")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (0,"tree"))) [],CLocalPat (CPVar (2,"blackr")) (CApply (CSymbol ("RedBlackTree","isBlack")) (CVar (1,"r"))) []]]),
+  CFunc ("RedBlackTree","reviseRight") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"l"))) (CSymbol ("RedBlackTree","Empty")),CVar (0,"tree")),(CApply (CApply (CSymbol ("Prelude","&&")) (CVar (2,"blackl"))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (1,"l")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (3,"col"),CPVar (4,"x"),CPComb ("RedBlackTree","Tree") [CPVar (5,"_"),CPVar (6,"y"),CPComb ("RedBlackTree","Tree") [CPVar (7,"_"),CPVar (8,"z"),CPVar (9,"d"),CPVar (10,"c")],CPVar (11,"b")],CPVar (12,"a")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (3,"col"))) (CVar (6,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (8,"z"))) (CVar (9,"d"))) (CVar (10,"c")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (4,"x"))) (CVar (11,"b"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (12,"a")))))),(CApply (CApply (CSymbol ("Prelude","&&")) (CVar (2,"blackl"))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (1,"l")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (13,"col"),CPVar (14,"x"),CPComb ("RedBlackTree","Tree") [CPVar (15,"_"),CPVar (16,"z"),CPVar (17,"d"),CPComb ("RedBlackTree","Tree") [CPVar (18,"_"),CPVar (19,"y"),CPVar (20,"c"),CPVar (21,"b")]],CPVar (22,"a")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (13,"col"))) (CVar (19,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (16,"z"))) (CVar (17,"d"))) (CVar (20,"c")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (14,"x"))) (CVar (21,"b"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (22,"a")))))),(CVar (2,"blackl"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (23,"col"),CPVar (24,"x"),CPComb ("RedBlackTree","Tree") [CPVar (25,"_"),CPVar (26,"y"),CPVar (27,"c"),CPVar (28,"b")],CPVar (29,"a")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (23,"col"))) (CSymbol ("RedBlackTree","Red")))) (CSymbol ("RedBlackTree","Black"))) (CSymbol ("RedBlackTree","DoublyBlack")))) (CVar (24,"x"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (26,"y"))) (CVar (27,"c"))) (CVar (28,"b")))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (29,"a"))))),(CSymbol ("Prelude","otherwise"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (30,"_"),CPVar (31,"x"),CPComb ("RedBlackTree","Tree") [CPVar (32,"_"),CPVar (33,"y"),CPVar (34,"c"),CPVar (35,"b")],CPVar (36,"a")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (33,"y"))) (CVar (34,"c"))) (CApply (CSymbol ("RedBlackTree","reviseRight")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (31,"x"))) (CVar (35,"b"))) (CVar (36,"a"))))))] [CLocalPat (CPVar (1,"l")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (0,"tree"))) [],CLocalPat (CPVar (2,"blackl")) (CApply (CSymbol ("RedBlackTree","isBlack")) (CVar (1,"l"))) []]]),
+  CFunc ("RedBlackTree","right") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"r")]] [(CSymbol ("Prelude","success"),CVar (3,"r"))] []]),
+  CFunc ("RedBlackTree","setInsertEquivalence") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"eqIns"),CPComb ("RedBlackTree","RedBlackTree") [CPVar (1,"_"),CPVar (2,"eqLk"),CPVar (3,"lt"),CPVar (4,"t")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (0,"eqIns"))) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CVar (4,"t")))] []]),
+  CFunc ("RedBlackTree","singleBlack") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","Empty"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPComb ("RedBlackTree","DoublyBlack") [],CPVar (0,"x"),CPVar (1,"l"),CPVar (2,"r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (0,"x"))) (CVar (1,"l"))) (CVar (2,"r")))] []]),
+  CFunc ("RedBlackTree","sort") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"cmp"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","tree2list")) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("RedBlackTree","update"))) (CApply (CApply (CApply (CSymbol ("RedBlackTree","empty")) (CLambda [CPVar (2,"_"),CPVar (3,"_")] (CSymbol ("Prelude","False")))) (CSymbol ("Prelude","=="))) (CVar (0,"cmp")))) (CVar (1,"xs"))))] []]),
+  CFunc ("RedBlackTree","tree2list") 1 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"t")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","tree2listTree")) (CVar (3,"t")))] []]),
+  CFunc ("RedBlackTree","tree2listTree") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("RedBlackTree","t2l")) (CVar (0,"tree"))) (CSymbol ("Prelude","[]")))] [CLocalFunc (CFunc ("RedBlackTree","t2l") 2 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") [],CPVar (1,"es")] [(CSymbol ("Prelude","success"),CVar (1,"es"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (2,"_"),CPVar (3,"e"),CPVar (4,"l"),CPVar (5,"r")],CPVar (6,"es")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("RedBlackTree","t2l")) (CVar (4,"l"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"e"))) (CApply (CApply (CSymbol ("RedBlackTree","t2l")) (CVar (5,"r"))) (CVar (6,"es")))))] []]))]]),
+  CFunc ("RedBlackTree","update") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"e"),CPComb ("RedBlackTree","RedBlackTree") [CPVar (1,"eqIns"),CPVar (2,"eqLk"),CPVar (3,"lt"),CPVar (4,"t")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (1,"eqIns"))) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","updateTree")) (CVar (1,"eqIns"))) (CVar (3,"lt"))) (CVar (0,"e"))) (CVar (4,"t"))))] []]),
+  CFunc ("RedBlackTree","updateTree") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"eq"),CPVar (1,"lt"),CPVar (2,"e"),CPVar (3,"t")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (4,"_"),CPVar (5,"e2"),CPVar (6,"l"),CPVar (7,"r")]) (CApply (CSymbol ("RedBlackTree","upd")) (CVar (3,"t"))) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (5,"e2"))) (CVar (6,"l"))) (CVar (7,"r"))))] [CLocalFunc (CFunc ("RedBlackTree","upd") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (1,"_183")]) (CTCons ("RedBlackTree","Tree") [CTVar (1,"_183")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (2,"e"))) (CSymbol ("RedBlackTree","Empty"))) (CSymbol ("RedBlackTree","Empty")))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (4,"c"),CPVar (5,"e2"),CPVar (6,"l"),CPVar (7,"r")]] [(CApply (CApply (CVar (0,"eq")) (CVar (2,"e"))) (CVar (5,"e2")),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (4,"c"))) (CVar (2,"e"))) (CVar (6,"l"))) (CVar (7,"r"))),(CApply (CApply (CVar (1,"lt")) (CVar (2,"e"))) (CVar (5,"e2")),CApply (CSymbol ("RedBlackTree","balanceL")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (4,"c"))) (CVar (5,"e2"))) (CApply (CSymbol ("RedBlackTree","upd")) (CVar (6,"l")))) (CVar (7,"r")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("RedBlackTree","balanceR")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (4,"c"))) (CVar (5,"e2"))) (CVar (6,"l"))) (CApply (CSymbol ("RedBlackTree","upd")) (CVar (7,"r")))))] []]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/RedBlackTree.cy b/src/lib/Curry/Module/.curry/RedBlackTree.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RedBlackTree.cy
@@ -0,0 +1,53 @@
+Module "RedBlackTree"
+(Just (Exporting (14,3) [(Export (QualIdent Nothing (Ident "RedBlackTree" 0))),(Export (QualIdent Nothing (Ident "empty" 0))),(Export (QualIdent Nothing (Ident "isEmpty" 0))),(Export (QualIdent Nothing (Ident "lookup" 0))),(Export (QualIdent Nothing (Ident "update" 0))),(Export (QualIdent Nothing (Ident "tree2list" 0))),(Export (QualIdent Nothing (Ident "sort" 0))),(Export (QualIdent Nothing (Ident "newTreeLike" 0))),(Export (QualIdent Nothing (Ident "setInsertEquivalence" 0))),(Export (QualIdent Nothing (Ident "delete" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(DataDecl (33,1) (Ident "RedBlackTree" 0) [(Ident "a" 0)] [(ConstrDecl (33,23) [] (Ident "RedBlackTree" 0) [(ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))),(ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))),(ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))),(ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))])])])
+,(DataDecl (128,1) (Ident "Color" 0) [] [(ConstrDecl (128,14) [] (Ident "Red" 0) []),(ConstrDecl (128,20) [] (Ident "Black" 0) []),(ConstrDecl (128,28) [] (Ident "DoublyBlack" 0) [])])
+,(DataDecl (131,1) (Ident "Tree" 0) [(Ident "a" 0)] [(ConstrDecl (131,15) [] (Ident "Tree" 0) [(ConstructorType (QualIdent Nothing (Ident "Color" 0)) []),(VariableType (Ident "a" 0)),(ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]),(ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))])]),(ConstrDecl (132,15) [] (Ident "Empty" 0) [])])
+,(TypeSig (39,1) [(Ident "empty" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (40,1) (Ident "empty" 0) [(Equation (40,1) (FunLhs (Ident "empty" 0) [(VariablePattern (Ident "eqInsert" 2)),(VariablePattern (Ident "eqLookUp" 2)),(VariablePattern (Ident "lessThan" 2))]) (SimpleRhs (40,36) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0))) (Variable (QualIdent Nothing (Ident "eqInsert" 2)))) (Variable (QualIdent Nothing (Ident "eqLookUp" 2)))) (Variable (QualIdent Nothing (Ident "lessThan" 2)))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) []))])
+,(FunctionDecl (43,1) (Ident "isEmpty" 0) [(Equation (43,1) (FunLhs (Ident "isEmpty" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "_" 5)),(VariablePattern (Ident "_" 6)),(VariablePattern (Ident "_" 7)),(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]))]) (SimpleRhs (43,48) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (44,1) (FunLhs (Ident "isEmpty" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "_" 10)),(VariablePattern (Ident "_" 11)),(VariablePattern (Ident "_" 12)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 13)),(VariablePattern (Ident "_" 14)),(VariablePattern (Ident "_" 15)),(VariablePattern (Ident "_" 16))]))]))]) (SimpleRhs (44,48) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) []))])
+,(FunctionDecl (47,1) (Ident "newTreeLike" 0) [(Equation (47,1) (FunLhs (Ident "newTreeLike" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "eqIns" 18)),(VariablePattern (Ident "eqLk" 18)),(VariablePattern (Ident "lt" 18)),(VariablePattern (Ident "_" 19))]))]) (SimpleRhs (47,46) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0))) (Variable (QualIdent Nothing (Ident "eqIns" 18)))) (Variable (QualIdent Nothing (Ident "eqLk" 18)))) (Variable (QualIdent Nothing (Ident "lt" 18)))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) []))])
+,(TypeSig (54,1) [(Ident "lookup" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (55,1) (Ident "lookup" 0) [(Equation (55,1) (FunLhs (Ident "lookup" 0) [(VariablePattern (Ident "p" 21)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "_" 22)),(VariablePattern (Ident "eqLk" 21)),(VariablePattern (Ident "lt" 21)),(VariablePattern (Ident "t" 21))]))]) (SimpleRhs (55,39) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "lookupTree" 0))) (Variable (QualIdent Nothing (Ident "eqLk" 21)))) (Variable (QualIdent Nothing (Ident "lt" 21)))) (Variable (QualIdent Nothing (Ident "p" 21)))) (Variable (QualIdent Nothing (Ident "t" 21)))) []))])
+,(TypeSig (57,1) [(Ident "lookupTree" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]))))))
+,(FunctionDecl (58,1) (Ident "lookupTree" 0) [(Equation (58,1) (FunLhs (Ident "lookupTree" 0) [(VariablePattern (Ident "_" 25)),(VariablePattern (Ident "_" 26)),(VariablePattern (Ident "_" 27)),(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (58,26) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0))) [])),(Equation (59,1) (FunLhs (Ident "lookupTree" 0) [(VariablePattern (Ident "eq" 29)),(VariablePattern (Ident "lt" 29)),(VariablePattern (Ident "p" 29)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 30)),(VariablePattern (Ident "e" 29)),(VariablePattern (Ident "l" 29)),(VariablePattern (Ident "r" 29))]))]) (GuardedRhs [(CondExpr (60,6) (Apply (Apply (Variable (QualIdent Nothing (Ident "eq" 29))) (Variable (QualIdent Nothing (Ident "p" 29)))) (Variable (QualIdent Nothing (Ident "e" 29)))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (Variable (QualIdent Nothing (Ident "e" 29))))),(CondExpr (61,6) (Apply (Apply (Variable (QualIdent Nothing (Ident "lt" 29))) (Variable (QualIdent Nothing (Ident "p" 29)))) (Variable (QualIdent Nothing (Ident "e" 29)))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "lookupTree" 0))) (Variable (QualIdent Nothing (Ident "eq" 29)))) (Variable (QualIdent Nothing (Ident "lt" 29)))) (Variable (QualIdent Nothing (Ident "p" 29)))) (Variable (QualIdent Nothing (Ident "l" 29))))),(CondExpr (62,6) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "lookupTree" 0))) (Variable (QualIdent Nothing (Ident "eq" 29)))) (Variable (QualIdent Nothing (Ident "lt" 29)))) (Variable (QualIdent Nothing (Ident "p" 29)))) (Variable (QualIdent Nothing (Ident "r" 29)))))] []))])
+,(TypeSig (65,1) [(Ident "update" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (66,1) (Ident "update" 0) [(Equation (66,1) (FunLhs (Ident "update" 0) [(VariablePattern (Ident "e" 32)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "eqIns" 32)),(VariablePattern (Ident "eqLk" 32)),(VariablePattern (Ident "lt" 32)),(VariablePattern (Ident "t" 32))]))]) (SimpleRhs (67,11) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0))) (Variable (QualIdent Nothing (Ident "eqIns" 32)))) (Variable (QualIdent Nothing (Ident "eqLk" 32)))) (Variable (QualIdent Nothing (Ident "lt" 32)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "updateTree" 0))) (Variable (QualIdent Nothing (Ident "eqIns" 32)))) (Variable (QualIdent Nothing (Ident "lt" 32)))) (Variable (QualIdent Nothing (Ident "e" 32)))) (Variable (QualIdent Nothing (Ident "t" 32)))))) []))])
+,(TypeSig (69,1) [(Ident "updateTree" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]))))))
+,(FunctionDecl (70,1) (Ident "updateTree" 0) [(Equation (70,1) (FunLhs (Ident "updateTree" 0) [(VariablePattern (Ident "eq" 34)),(VariablePattern (Ident "lt" 34)),(VariablePattern (Ident "e" 34)),(VariablePattern (Ident "t" 34))]) (SimpleRhs (70,24) (Let [(PatternDecl (70,28) (ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 41)),(VariablePattern (Ident "e2" 40)),(VariablePattern (Ident "l" 40)),(VariablePattern (Ident "r" 40))])) (SimpleRhs (70,50) (Apply (Variable (QualIdent Nothing (Ident "upd" 35))) (Variable (QualIdent Nothing (Ident "t" 34)))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "e2" 40)))) (Variable (QualIdent Nothing (Ident "l" 40)))) (Variable (QualIdent Nothing (Ident "r" 40))))) [(FunctionDecl (73,5) (Ident "upd" 35) [(Equation (73,5) (FunLhs (Ident "upd" 35) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (73,17) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "e" 34)))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) [])),(Equation (74,5) (FunLhs (Ident "upd" 35) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "c" 38)),(VariablePattern (Ident "e2" 38)),(VariablePattern (Ident "l" 38)),(VariablePattern (Ident "r" 38))]))]) (GuardedRhs [(CondExpr (74,25) (Apply (Apply (Variable (QualIdent Nothing (Ident "eq" 34))) (Variable (QualIdent Nothing (Ident "e" 34)))) (Variable (QualIdent Nothing (Ident "e2" 38)))) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "c" 38)))) (Variable (QualIdent Nothing (Ident "e" 34)))) (Variable (QualIdent Nothing (Ident "l" 38)))) (Variable (QualIdent Nothing (Ident "r" 38))))),(CondExpr (75,25) (Apply (Apply (Variable (QualIdent Nothing (Ident "lt" 34))) (Variable (QualIdent Nothing (Ident "e" 34)))) (Variable (QualIdent Nothing (Ident "e2" 38)))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "balanceL" 0))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "c" 38)))) (Variable (QualIdent Nothing (Ident "e2" 38)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "upd" 35))) (Variable (QualIdent Nothing (Ident "l" 38)))))) (Variable (QualIdent Nothing (Ident "r" 38))))))),(CondExpr (76,25) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "balanceR" 0))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "c" 38)))) (Variable (QualIdent Nothing (Ident "e2" 38)))) (Variable (QualIdent Nothing (Ident "l" 38)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "upd" 35))) (Variable (QualIdent Nothing (Ident "r" 38)))))))))] []))])]))])
+,(TypeSig (79,1) [(Ident "delete" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (80,1) (Ident "delete" 0) [(Equation (80,1) (FunLhs (Ident "delete" 0) [(VariablePattern (Ident "e" 43)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "eqIns" 43)),(VariablePattern (Ident "eqLk" 43)),(VariablePattern (Ident "lt" 43)),(VariablePattern (Ident "t" 43))]))]) (SimpleRhs (81,11) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0))) (Variable (QualIdent Nothing (Ident "eqIns" 43)))) (Variable (QualIdent Nothing (Ident "eqLk" 43)))) (Variable (QualIdent Nothing (Ident "lt" 43)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "blackenRoot" 44))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "deleteTree" 0))) (Variable (QualIdent Nothing (Ident "eqLk" 43)))) (Variable (QualIdent Nothing (Ident "lt" 43)))) (Variable (QualIdent Nothing (Ident "e" 43)))) (Variable (QualIdent Nothing (Ident "t" 43)))))))) [(FunctionDecl (83,5) (Ident "blackenRoot" 44) [(Equation (83,5) (FunLhs (Ident "blackenRoot" 44) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (83,25) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0))) [])),(Equation (84,5) (FunLhs (Ident "blackenRoot" 44) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 48)),(VariablePattern (Ident "x" 47)),(VariablePattern (Ident "l" 47)),(VariablePattern (Ident "r" 47))]))]) (SimpleRhs (84,34) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 47)))) (Variable (QualIdent Nothing (Ident "l" 47)))) (Variable (QualIdent Nothing (Ident "r" 47)))) []))])]))])
+,(FunctionDecl (86,1) (Ident "deleteTree" 0) [(Equation (86,1) (FunLhs (Ident "deleteTree" 0) [(VariablePattern (Ident "_" 51)),(VariablePattern (Ident "_" 52)),(VariablePattern (Ident "_" 53)),(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (86,26) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0))) [])),(Equation (87,1) (FunLhs (Ident "deleteTree" 0) [(VariablePattern (Ident "eq" 55)),(VariablePattern (Ident "lt" 55)),(VariablePattern (Ident "e" 55)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "c" 55)),(VariablePattern (Ident "e2" 55)),(VariablePattern (Ident "l" 55)),(VariablePattern (Ident "r" 55))]))]) (GuardedRhs [(CondExpr (88,7) (Apply (Apply (Variable (QualIdent Nothing (Ident "eq" 55))) (Variable (QualIdent Nothing (Ident "e" 55)))) (Variable (QualIdent Nothing (Ident "e2" 55)))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "l" 55))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "addColor" 56))) (Variable (QualIdent Nothing (Ident "c" 55)))) (Variable (QualIdent Nothing (Ident "r" 55)))) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "r" 55))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) (Apply (Apply (Variable (QualIdent Nothing (Ident "addColor" 56))) (Variable (QualIdent Nothing (Ident "c" 55)))) (Variable (QualIdent Nothing (Ident "l" 55)))) (Let [(PatternDecl (90,41) (VariablePattern (Ident "el" 69)) (SimpleRhs (90,46) (Apply (Variable (QualIdent Nothing (Ident "rightMost" 56))) (Variable (QualIdent Nothing (Ident "l" 55)))) []))] (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "delBalanceL" 0))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "c" 55)))) (Variable (QualIdent Nothing (Ident "el" 69)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "deleteTree" 0))) (Variable (QualIdent Nothing (Ident "eq" 55)))) (Variable (QualIdent Nothing (Ident "lt" 55)))) (Variable (QualIdent Nothing (Ident "el" 69)))) (Variable (QualIdent Nothing (Ident "l" 55)))))) (Variable (QualIdent Nothing (Ident "r" 55)))))))))),(CondExpr (92,7) (Apply (Apply (Variable (QualIdent Nothing (Ident "lt" 55))) (Variable (QualIdent Nothing (Ident "e" 55)))) (Variable (QualIdent Nothing (Ident "e2" 55)))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "delBalanceL" 0))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "c" 55)))) (Variable (QualIdent Nothing (Ident "e2" 55)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "deleteTree" 0))) (Variable (QualIdent Nothing (Ident "eq" 55)))) (Variable (QualIdent Nothing (Ident "lt" 55)))) (Variable (QualIdent Nothing (Ident "e" 55)))) (Variable (QualIdent Nothing (Ident "l" 55)))))) (Variable (QualIdent Nothing (Ident "r" 55))))))),(CondExpr (93,7) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "delBalanceR" 0))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "c" 55)))) (Variable (QualIdent Nothing (Ident "e2" 55)))) (Variable (QualIdent Nothing (Ident "l" 55)))) (Paren (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "deleteTree" 0))) (Variable (QualIdent Nothing (Ident "eq" 55)))) (Variable (QualIdent Nothing (Ident "lt" 55)))) (Variable (QualIdent Nothing (Ident "e" 55)))) (Variable (QualIdent Nothing (Ident "r" 55)))))))))] [(FunctionDecl (95,5) (Ident "addColor" 56) [(Equation (95,5) (FunLhs (Ident "addColor" 56) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Red" 0)) []),(VariablePattern (Ident "tree" 57))]) (SimpleRhs (95,25) (Variable (QualIdent Nothing (Ident "tree" 57))) [])),(Equation (96,5) (FunLhs (Ident "addColor" 56) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Black" 0)) []),(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (96,28) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0))) [])),(Equation (97,5) (FunLhs (Ident "addColor" 56) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Black" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Red" 0)) []),(VariablePattern (Ident "x" 61)),(VariablePattern (Ident "lx" 61)),(VariablePattern (Ident "rx" 61))]))]) (SimpleRhs (97,43) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 61)))) (Variable (QualIdent Nothing (Ident "lx" 61)))) (Variable (QualIdent Nothing (Ident "rx" 61)))) [])),(Equation (98,5) (FunLhs (Ident "addColor" 56) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Black" 0)) []),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Black" 0)) []),(VariablePattern (Ident "x" 63)),(VariablePattern (Ident "lx" 63)),(VariablePattern (Ident "rx" 63))]))]) (SimpleRhs (98,43) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "DoublyBlack" 0)))) (Variable (QualIdent Nothing (Ident "x" 63)))) (Variable (QualIdent Nothing (Ident "lx" 63)))) (Variable (QualIdent Nothing (Ident "rx" 63)))) []))]),(FunctionDecl (100,5) (Ident "rightMost" 56) [(Equation (100,5) (FunLhs (Ident "rightMost" 56) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 66)),(VariablePattern (Ident "x" 65)),(VariablePattern (Ident "_" 67)),(VariablePattern (Ident "rx" 65))]))]) (SimpleRhs (100,33) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "rx" 65))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) (Variable (QualIdent Nothing (Ident "x" 65))) (Apply (Variable (QualIdent Nothing (Ident "rightMost" 56))) (Variable (QualIdent Nothing (Ident "rx" 65))))) []))])]))])
+,(TypeSig (104,1) [(Ident "tree2list" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (105,1) (Ident "tree2list" 0) [(Equation (105,1) (FunLhs (Ident "tree2list" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "_" 72)),(VariablePattern (Ident "_" 73)),(VariablePattern (Ident "_" 74)),(VariablePattern (Ident "t" 71))]))]) (SimpleRhs (105,36) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "tree2listTree" 0))) (Variable (QualIdent Nothing (Ident "t" 71)))) []))])
+,(FunctionDecl (107,1) (Ident "tree2listTree" 0) [(Equation (107,1) (FunLhs (Ident "tree2listTree" 0) [(VariablePattern (Ident "tree" 76))]) (SimpleRhs (107,22) (Apply (Apply (Variable (QualIdent Nothing (Ident "t2l" 77))) (Variable (QualIdent Nothing (Ident "tree" 76)))) (List [])) [(FunctionDecl (109,6) (Ident "t2l" 77) [(Equation (109,6) (FunLhs (Ident "t2l" 77) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) []),(VariablePattern (Ident "es" 78))]) (SimpleRhs (109,21) (Variable (QualIdent Nothing (Ident "es" 78))) [])),(Equation (110,6) (FunLhs (Ident "t2l" 77) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 81)),(VariablePattern (Ident "e" 80)),(VariablePattern (Ident "l" 80)),(VariablePattern (Ident "r" 80))])),(VariablePattern (Ident "es" 80))]) (SimpleRhs (110,30) (Apply (Apply (Variable (QualIdent Nothing (Ident "t2l" 77))) (Variable (QualIdent Nothing (Ident "l" 80)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "e" 80))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "t2l" 77))) (Variable (QualIdent Nothing (Ident "r" 80)))) (Variable (QualIdent Nothing (Ident "es" 80))))))) []))])]))])
+,(TypeSig (115,1) [(Ident "sort" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (116,1) (Ident "sort" 0) [(Equation (116,1) (FunLhs (Ident "sort" 0) [(VariablePattern (Ident "cmp" 83)),(VariablePattern (Ident "xs" 83))]) (SimpleRhs (116,15) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "tree2list" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "RedBlackTree") (Ident "update" 0)))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "empty" 0))) (Paren (Lambda [(VariablePattern (Ident "_" 86)),(VariablePattern (Ident "_" 87))] (Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))))) (Variable (QualIdent (Just "Prelude") (Ident "==" 0)))) (Variable (QualIdent Nothing (Ident "cmp" 83)))))) (Variable (QualIdent Nothing (Ident "xs" 83)))))) []))])
+,(TypeSig (119,1) [(Ident "setInsertEquivalence" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (120,1) (Ident "setInsertEquivalence" 0) [(Equation (120,1) (FunLhs (Ident "setInsertEquivalence" 0) [(VariablePattern (Ident "eqIns" 88)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "_" 89)),(VariablePattern (Ident "eqLk" 88)),(VariablePattern (Ident "lt" 88)),(VariablePattern (Ident "t" 88))]))]) (SimpleRhs (120,57) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0))) (Variable (QualIdent Nothing (Ident "eqIns" 88)))) (Variable (QualIdent Nothing (Ident "eqLk" 88)))) (Variable (QualIdent Nothing (Ident "lt" 88)))) (Variable (QualIdent Nothing (Ident "t" 88)))) []))])
+,(FunctionDecl (125,1) (Ident "rbt" 0) [(Equation (125,1) (FunLhs (Ident "rbt" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "RedBlackTree" 0)) [(VariablePattern (Ident "_" 92)),(VariablePattern (Ident "_" 93)),(VariablePattern (Ident "_" 94)),(VariablePattern (Ident "t" 91))]))]) (SimpleRhs (125,30) (Variable (QualIdent Nothing (Ident "t" 91))) []))])
+,(TypeSig (134,1) [(Ident "isBlack" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (135,1) (Ident "isBlack" 0) [(Equation (135,1) (FunLhs (Ident "isBlack" 0) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (135,17) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (136,1) (FunLhs (Ident "isBlack" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "c" 98)),(VariablePattern (Ident "_" 99)),(VariablePattern (Ident "_" 100)),(VariablePattern (Ident "_" 101))]))]) (SimpleRhs (136,26) (InfixApply (Variable (QualIdent Nothing (Ident "c" 98))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) []))])
+,(TypeSig (138,1) [(Ident "isRed" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (139,1) (Ident "isRed" 0) [(Equation (139,1) (FunLhs (Ident "isRed" 0) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (139,15) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (140,1) (FunLhs (Ident "isRed" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "c" 105)),(VariablePattern (Ident "_" 106)),(VariablePattern (Ident "_" 107)),(VariablePattern (Ident "_" 108))]))]) (SimpleRhs (140,24) (InfixApply (Variable (QualIdent Nothing (Ident "c" 105))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) []))])
+,(TypeSig (142,1) [(Ident "isDoublyBlack" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (143,1) (Ident "isDoublyBlack" 0) [(Equation (143,1) (FunLhs (Ident "isDoublyBlack" 0) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (143,23) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (144,1) (FunLhs (Ident "isDoublyBlack" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "c" 112)),(VariablePattern (Ident "_" 113)),(VariablePattern (Ident "_" 114)),(VariablePattern (Ident "_" 115))]))]) (SimpleRhs (144,32) (InfixApply (Variable (QualIdent Nothing (Ident "c" 112))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "DoublyBlack" 0)))) []))])
+,(TypeSig (146,1) [(Ident "element" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "a" 0))))
+,(FunctionDecl (147,1) (Ident "element" 0) [(Equation (147,1) (FunLhs (Ident "element" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 118)),(VariablePattern (Ident "e" 117)),(VariablePattern (Ident "_" 119)),(VariablePattern (Ident "_" 120))]))]) (SimpleRhs (147,26) (Variable (QualIdent Nothing (Ident "e" 117))) []))])
+,(TypeSig (149,1) [(Ident "left" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (150,1) (Ident "left" 0) [(Equation (150,1) (FunLhs (Ident "left" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 123)),(VariablePattern (Ident "_" 124)),(VariablePattern (Ident "l" 122)),(VariablePattern (Ident "_" 125))]))]) (SimpleRhs (150,23) (Variable (QualIdent Nothing (Ident "l" 122))) []))])
+,(TypeSig (152,1) [(Ident "right" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (153,1) (Ident "right" 0) [(Equation (153,1) (FunLhs (Ident "right" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 128)),(VariablePattern (Ident "_" 129)),(VariablePattern (Ident "_" 130)),(VariablePattern (Ident "r" 127))]))]) (SimpleRhs (153,24) (Variable (QualIdent Nothing (Ident "r" 127))) []))])
+,(FunctionDecl (155,1) (Ident "singleBlack" 0) [(Equation (155,1) (FunLhs (Ident "singleBlack" 0) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)) [])]) (SimpleRhs (155,21) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0))) [])),(Equation (156,1) (FunLhs (Ident "singleBlack" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "DoublyBlack" 0)) []),(VariablePattern (Ident "x" 134)),(VariablePattern (Ident "l" 134)),(VariablePattern (Ident "r" 134))]))]) (SimpleRhs (156,40) (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 134)))) (Variable (QualIdent Nothing (Ident "l" 134)))) (Variable (QualIdent Nothing (Ident "r" 134)))) []))])
+,(TypeSig (160,1) [(Ident "balanceL" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (161,1) (Ident "balanceL" 0) [(Equation (161,1) (FunLhs (Ident "balanceL" 0) [(VariablePattern (Ident "tree" 136))]) (GuardedRhs [(CondExpr (162,3) (InfixApply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Variable (QualIdent Nothing (Ident "leftTree" 137)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "left" 0))) (Variable (QualIdent Nothing (Ident "leftTree" 137))))))) (Let [(PatternDecl (163,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 140)),(VariablePattern (Ident "z" 139)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 141)),(VariablePattern (Ident "y" 139)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 142)),(VariablePattern (Ident "x" 139)),(VariablePattern (Ident "a" 139)),(VariablePattern (Ident "b" 139))])),(VariablePattern (Ident "c" 139))])),(VariablePattern (Ident "d" 139))]) (SimpleRhs (163,50) (Variable (QualIdent Nothing (Ident "tree" 136))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "y" 139)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 139)))) (Variable (QualIdent Nothing (Ident "a" 139)))) (Variable (QualIdent Nothing (Ident "b" 139)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "z" 139)))) (Variable (QualIdent Nothing (Ident "c" 139)))) (Variable (QualIdent Nothing (Ident "d" 139)))))))),(CondExpr (166,3) (InfixApply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Variable (QualIdent Nothing (Ident "leftTree" 137)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "right" 0))) (Variable (QualIdent Nothing (Ident "leftTree" 137))))))) (Let [(PatternDecl (167,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 145)),(VariablePattern (Ident "z" 144)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 146)),(VariablePattern (Ident "x" 144)),(VariablePattern (Ident "a" 144)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 147)),(VariablePattern (Ident "y" 144)),(VariablePattern (Ident "b" 144)),(VariablePattern (Ident "c" 144))]))])),(VariablePattern (Ident "d" 144))]) (SimpleRhs (167,50) (Variable (QualIdent Nothing (Ident "tree" 136))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "y" 144)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 144)))) (Variable (QualIdent Nothing (Ident "a" 144)))) (Variable (QualIdent Nothing (Ident "b" 144)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "z" 144)))) (Variable (QualIdent Nothing (Ident "c" 144)))) (Variable (QualIdent Nothing (Ident "d" 144)))))))),(CondExpr (170,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Variable (QualIdent Nothing (Ident "tree" 136))))] [(PatternDecl (173,5) (VariablePattern (Ident "leftTree" 137)) (SimpleRhs (173,16) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "left" 0))) (Variable (QualIdent Nothing (Ident "tree" 136)))) []))]))])
+,(TypeSig (175,1) [(Ident "balanceR" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (176,1) (Ident "balanceR" 0) [(Equation (176,1) (FunLhs (Ident "balanceR" 0) [(VariablePattern (Ident "tree" 149))]) (GuardedRhs [(CondExpr (177,3) (InfixApply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Variable (QualIdent Nothing (Ident "rightTree" 150)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "right" 0))) (Variable (QualIdent Nothing (Ident "rightTree" 150))))))) (Let [(PatternDecl (178,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 153)),(VariablePattern (Ident "x" 152)),(VariablePattern (Ident "a" 152)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 154)),(VariablePattern (Ident "y" 152)),(VariablePattern (Ident "b" 152)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 155)),(VariablePattern (Ident "z" 152)),(VariablePattern (Ident "c" 152)),(VariablePattern (Ident "d" 152))]))]))]) (SimpleRhs (178,50) (Variable (QualIdent Nothing (Ident "tree" 149))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "y" 152)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 152)))) (Variable (QualIdent Nothing (Ident "a" 152)))) (Variable (QualIdent Nothing (Ident "b" 152)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "z" 152)))) (Variable (QualIdent Nothing (Ident "c" 152)))) (Variable (QualIdent Nothing (Ident "d" 152)))))))),(CondExpr (181,3) (InfixApply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Variable (QualIdent Nothing (Ident "rightTree" 150)))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "left" 0))) (Variable (QualIdent Nothing (Ident "rightTree" 150))))))) (Let [(PatternDecl (182,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 158)),(VariablePattern (Ident "x" 157)),(VariablePattern (Ident "a" 157)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 159)),(VariablePattern (Ident "z" 157)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 160)),(VariablePattern (Ident "y" 157)),(VariablePattern (Ident "b" 157)),(VariablePattern (Ident "c" 157))])),(VariablePattern (Ident "d" 157))]))]) (SimpleRhs (182,50) (Variable (QualIdent Nothing (Ident "tree" 149))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "y" 157)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 157)))) (Variable (QualIdent Nothing (Ident "a" 157)))) (Variable (QualIdent Nothing (Ident "b" 157)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "z" 157)))) (Variable (QualIdent Nothing (Ident "c" 157)))) (Variable (QualIdent Nothing (Ident "d" 157)))))))),(CondExpr (185,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Variable (QualIdent Nothing (Ident "tree" 149))))] [(PatternDecl (188,5) (VariablePattern (Ident "rightTree" 150)) (SimpleRhs (188,17) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "right" 0))) (Variable (QualIdent Nothing (Ident "tree" 149)))) []))]))])
+,(TypeSig (193,1) [(Ident "delBalanceL" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (194,1) (Ident "delBalanceL" 0) [(Equation (194,1) (FunLhs (Ident "delBalanceL" 0) [(VariablePattern (Ident "tree" 162))]) (SimpleRhs (194,20) (IfThenElse (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isDoublyBlack" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "left" 0))) (Variable (QualIdent Nothing (Ident "tree" 162)))))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "reviseLeft" 0))) (Variable (QualIdent Nothing (Ident "tree" 162)))) (Variable (QualIdent Nothing (Ident "tree" 162)))) []))])
+,(FunctionDecl (196,1) (Ident "reviseLeft" 0) [(Equation (196,1) (FunLhs (Ident "reviseLeft" 0) [(VariablePattern (Ident "tree" 164))]) (GuardedRhs [(CondExpr (197,3) (InfixApply (Variable (QualIdent Nothing (Ident "r" 165))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) (Variable (QualIdent Nothing (Ident "tree" 164)))),(CondExpr (198,3) (InfixApply (Variable (QualIdent Nothing (Ident "blackr" 165))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "left" 0))) (Variable (QualIdent Nothing (Ident "r" 165))))))) (Let [(PatternDecl (199,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "col" 168)),(VariablePattern (Ident "x" 168)),(VariablePattern (Ident "a" 168)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 169)),(VariablePattern (Ident "z" 168)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 170)),(VariablePattern (Ident "y" 168)),(VariablePattern (Ident "b" 168)),(VariablePattern (Ident "c" 168))])),(VariablePattern (Ident "d" 168))]))]) (SimpleRhs (199,52) (Variable (QualIdent Nothing (Ident "tree" 164))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "col" 168)))) (Variable (QualIdent Nothing (Ident "y" 168)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 168)))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "singleBlack" 0))) (Variable (QualIdent Nothing (Ident "a" 168)))))) (Variable (QualIdent Nothing (Ident "b" 168)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "z" 168)))) (Variable (QualIdent Nothing (Ident "c" 168)))) (Variable (QualIdent Nothing (Ident "d" 168)))))))),(CondExpr (201,3) (InfixApply (Variable (QualIdent Nothing (Ident "blackr" 165))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "right" 0))) (Variable (QualIdent Nothing (Ident "r" 165))))))) (Let [(PatternDecl (202,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "col" 172)),(VariablePattern (Ident "x" 172)),(VariablePattern (Ident "a" 172)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 173)),(VariablePattern (Ident "y" 172)),(VariablePattern (Ident "b" 172)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 174)),(VariablePattern (Ident "z" 172)),(VariablePattern (Ident "c" 172)),(VariablePattern (Ident "d" 172))]))]))]) (SimpleRhs (202,52) (Variable (QualIdent Nothing (Ident "tree" 164))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "col" 172)))) (Variable (QualIdent Nothing (Ident "y" 172)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 172)))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "singleBlack" 0))) (Variable (QualIdent Nothing (Ident "a" 172)))))) (Variable (QualIdent Nothing (Ident "b" 172)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "z" 172)))) (Variable (QualIdent Nothing (Ident "c" 172)))) (Variable (QualIdent Nothing (Ident "d" 172)))))))),(CondExpr (204,3) (Variable (QualIdent Nothing (Ident "blackr" 165))) (Let [(PatternDecl (205,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "col" 176)),(VariablePattern (Ident "x" 176)),(VariablePattern (Ident "a" 176)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 177)),(VariablePattern (Ident "y" 176)),(VariablePattern (Ident "b" 176)),(VariablePattern (Ident "c" 176))]))]) (SimpleRhs (205,39) (Variable (QualIdent Nothing (Ident "tree" 164))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Paren (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "col" 176))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "DoublyBlack" 0)))))) (Variable (QualIdent Nothing (Ident "x" 176)))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "singleBlack" 0))) (Variable (QualIdent Nothing (Ident "a" 176)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "y" 176)))) (Variable (QualIdent Nothing (Ident "b" 176)))) (Variable (QualIdent Nothing (Ident "c" 176)))))))),(CondExpr (207,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Let [(PatternDecl (208,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 180)),(VariablePattern (Ident "x" 179)),(VariablePattern (Ident "a" 179)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 181)),(VariablePattern (Ident "y" 179)),(VariablePattern (Ident "b" 179)),(VariablePattern (Ident "c" 179))]))]) (SimpleRhs (208,37) (Variable (QualIdent Nothing (Ident "tree" 164))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "y" 179)))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "reviseLeft" 0))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "x" 179)))) (Variable (QualIdent Nothing (Ident "a" 179)))) (Variable (QualIdent Nothing (Ident "b" 179)))))))) (Variable (QualIdent Nothing (Ident "c" 179))))))] [(PatternDecl (211,5) (VariablePattern (Ident "r" 165)) (SimpleRhs (211,9) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "right" 0))) (Variable (QualIdent Nothing (Ident "tree" 164)))) [])),(PatternDecl (212,5) (VariablePattern (Ident "blackr" 165)) (SimpleRhs (212,14) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isBlack" 0))) (Variable (QualIdent Nothing (Ident "r" 165)))) []))]))])
+,(TypeSig (214,1) [(Ident "delBalanceR" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Tree" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (215,1) (Ident "delBalanceR" 0) [(Equation (215,1) (FunLhs (Ident "delBalanceR" 0) [(VariablePattern (Ident "tree" 183))]) (SimpleRhs (215,20) (IfThenElse (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isDoublyBlack" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "right" 0))) (Variable (QualIdent Nothing (Ident "tree" 183)))))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "reviseRight" 0))) (Variable (QualIdent Nothing (Ident "tree" 183)))) (Variable (QualIdent Nothing (Ident "tree" 183)))) []))])
+,(FunctionDecl (217,1) (Ident "reviseRight" 0) [(Equation (217,1) (FunLhs (Ident "reviseRight" 0) [(VariablePattern (Ident "tree" 185))]) (GuardedRhs [(CondExpr (218,3) (InfixApply (Variable (QualIdent Nothing (Ident "l" 186))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Empty" 0)))) (Variable (QualIdent Nothing (Ident "tree" 185)))),(CondExpr (219,3) (InfixApply (Variable (QualIdent Nothing (Ident "blackl" 186))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "left" 0))) (Variable (QualIdent Nothing (Ident "l" 186))))))) (Let [(PatternDecl (220,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "col" 189)),(VariablePattern (Ident "x" 189)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 190)),(VariablePattern (Ident "y" 189)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 191)),(VariablePattern (Ident "z" 189)),(VariablePattern (Ident "d" 189)),(VariablePattern (Ident "c" 189))])),(VariablePattern (Ident "b" 189))])),(VariablePattern (Ident "a" 189))]) (SimpleRhs (220,52) (Variable (QualIdent Nothing (Ident "tree" 185))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "col" 189)))) (Variable (QualIdent Nothing (Ident "y" 189)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "z" 189)))) (Variable (QualIdent Nothing (Ident "d" 189)))) (Variable (QualIdent Nothing (Ident "c" 189)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 189)))) (Variable (QualIdent Nothing (Ident "b" 189)))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "singleBlack" 0))) (Variable (QualIdent Nothing (Ident "a" 189)))))))))),(CondExpr (222,3) (InfixApply (Variable (QualIdent Nothing (Ident "blackl" 186))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isRed" 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "right" 0))) (Variable (QualIdent Nothing (Ident "l" 186))))))) (Let [(PatternDecl (223,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "col" 193)),(VariablePattern (Ident "x" 193)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 194)),(VariablePattern (Ident "z" 193)),(VariablePattern (Ident "d" 193)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 195)),(VariablePattern (Ident "y" 193)),(VariablePattern (Ident "c" 193)),(VariablePattern (Ident "b" 193))]))])),(VariablePattern (Ident "a" 193))]) (SimpleRhs (223,52) (Variable (QualIdent Nothing (Ident "tree" 185))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Variable (QualIdent Nothing (Ident "col" 193)))) (Variable (QualIdent Nothing (Ident "y" 193)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "z" 193)))) (Variable (QualIdent Nothing (Ident "d" 193)))) (Variable (QualIdent Nothing (Ident "c" 193)))))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "x" 193)))) (Variable (QualIdent Nothing (Ident "b" 193)))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "singleBlack" 0))) (Variable (QualIdent Nothing (Ident "a" 193)))))))))),(CondExpr (225,3) (Variable (QualIdent Nothing (Ident "blackl" 186))) (Let [(PatternDecl (226,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "col" 197)),(VariablePattern (Ident "x" 197)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 198)),(VariablePattern (Ident "y" 197)),(VariablePattern (Ident "c" 197)),(VariablePattern (Ident "b" 197))])),(VariablePattern (Ident "a" 197))]) (SimpleRhs (226,39) (Variable (QualIdent Nothing (Ident "tree" 185))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Paren (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "col" 197))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "DoublyBlack" 0)))))) (Variable (QualIdent Nothing (Ident "x" 197)))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "y" 197)))) (Variable (QualIdent Nothing (Ident "c" 197)))) (Variable (QualIdent Nothing (Ident "b" 197)))))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "singleBlack" 0))) (Variable (QualIdent Nothing (Ident "a" 197)))))))),(CondExpr (228,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Let [(PatternDecl (229,9) (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 201)),(VariablePattern (Ident "x" 200)),(ParenPattern (ConstructorPattern (QualIdent (Just "RedBlackTree") (Ident "Tree" 0)) [(VariablePattern (Ident "_" 202)),(VariablePattern (Ident "y" 200)),(VariablePattern (Ident "c" 200)),(VariablePattern (Ident "b" 200))])),(VariablePattern (Ident "a" 200))]) (SimpleRhs (229,37) (Variable (QualIdent Nothing (Ident "tree" 185))) []))] (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Black" 0)))) (Variable (QualIdent Nothing (Ident "y" 200)))) (Variable (QualIdent Nothing (Ident "c" 200)))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "reviseRight" 0))) (Paren (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "RedBlackTree") (Ident "Tree" 0))) (Constructor (QualIdent (Just "RedBlackTree") (Ident "Red" 0)))) (Variable (QualIdent Nothing (Ident "x" 200)))) (Variable (QualIdent Nothing (Ident "b" 200)))) (Variable (QualIdent Nothing (Ident "a" 200))))))))))] [(PatternDecl (232,5) (VariablePattern (Ident "l" 186)) (SimpleRhs (232,9) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "left" 0))) (Variable (QualIdent Nothing (Ident "tree" 185)))) [])),(PatternDecl (233,5) (VariablePattern (Ident "blackl" 186)) (SimpleRhs (233,14) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "isBlack" 0))) (Variable (QualIdent Nothing (Ident "l" 186)))) []))]))])
+]
diff --git a/src/lib/Curry/Module/.curry/RedBlackTree.efc b/src/lib/Curry/Module/.curry/RedBlackTree.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RedBlackTree.efc
@@ -0,0 +1,1 @@
+Prog "RedBlackTree" ["Prelude"] [Type ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) Public [0] [Cons ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) 4 Private [FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])),FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])),FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])),TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]]],Type ((Nothing,Nothing,"RedBlackTree","Color")) Private [] [Cons ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) 0 Private [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) 0 Private [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","DoublyBlack")) 0 Private []],Type ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) Private [0] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) 4 Private [TCons ((Nothing,Nothing,"RedBlackTree","Color")) [],TVar 0,TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0],TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]],Cons ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) 0 Private []]] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"RedBlackTree","empty")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)] (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isEmpty")) 1 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 0),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),9)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])),"RedBlackTree","newTreeLike")) 1 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))),"RedBlackTree","lookup")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))))),"RedBlackTree","lookupTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5)),Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))))),"RedBlackTree","lookupTree")) 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5),(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3))],Var ((Just (TVar 0),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),"Prelude","Just")) [Var ((Just (TVar 0),6))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 0),3))],Var ((Just (TVar 0),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))))),"RedBlackTree","lookupTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))))),"RedBlackTree","lookupTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","update")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","updateTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5)),Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","updateTree")) 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4)] (Let [((Just (TVar 184),5),Comb FuncCall ((Nothing,Just (FuncType (TVar 185) (FuncType (FuncType (TVar 185) (FuncType (TVar 185) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 185) (FuncType (TVar 185) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 185]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 185]))))),"RedBlackTree","updateTree.upd.35")) [Var ((Just (TVar 0),3)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4))])] (Let [((Just (TVar 0),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 186]) (TVar 186)),"RedBlackTree","updateTree._#selFP3#e2")) [Var ((Just (TVar 184),5))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 187]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 187])),"RedBlackTree","updateTree._#selFP4#l")) [Var ((Just (TVar 184),5))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 188]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 188])),"RedBlackTree","updateTree._#selFP5#r")) [Var ((Just (TVar 184),5))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),6)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8))])))))),Func ((Nothing,Just (FuncType (TVar 183) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","updateTree.upd.35")) 4 Private (FuncType (TVar 183) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 183]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 183]))))) (Rule [(Just (TVar 183),1),(Just (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 183) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 183),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),"RedBlackTree","Empty")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),"RedBlackTree","Empty")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 183) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5),(Just (TVar 183),6),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 183),1))],Var ((Just (TVar 183),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 183) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TVar 183),1)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),7)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TVar 183),1))],Var ((Just (TVar 183),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183])),"RedBlackTree","balanceL")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 183) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TVar 183),6)),Comb FuncCall ((Nothing,Just (FuncType (TVar 183) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","updateTree.upd.35")) [Var ((Just (TVar 183),1)),Var ((Just (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),7))],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),8))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183])),"RedBlackTree","balanceR")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 183) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TVar 183),6)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),7)),Comb FuncCall ((Nothing,Just (FuncType (TVar 183) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","updateTree.upd.35")) [Var ((Just (TVar 183),1)),Var ((Just (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (FuncType (TVar 183) (FuncType (TVar 183) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),8))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TVar 183)),"RedBlackTree","updateTree._#selFP3#e2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 183]) (TVar 183)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 183) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 183),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),5)]) (Var ((Just (TVar 183),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183])),"RedBlackTree","updateTree._#selFP4#l")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 183]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 183])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 183) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 183),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),5)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183])),"RedBlackTree","updateTree._#selFP5#r")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 183]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 183])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 183) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 183),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),5)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 183]),5)))])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","delete")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","delete.blackenRoot.44")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","deleteTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5)),Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6))]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","delete.blackenRoot.44")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5))])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","deleteTree")) 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]))))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5),(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3))],Var ((Just (TVar 0),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))),"RedBlackTree","deleteTree.addColor.56")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))),"RedBlackTree","deleteTree.addColor.56")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TVar 0),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 421]) (TVar 421)),"RedBlackTree","deleteTree.rightMost.56")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","delBalanceL")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TVar 0),9)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","deleteTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 0),9)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7))],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8))]]))])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 0),3))],Var ((Just (TVar 0),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","delBalanceL")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TVar 0),6)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","deleteTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7))],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","delBalanceR")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TVar 0),6)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","deleteTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2)),Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))),"RedBlackTree","deleteTree.addColor.56")) 2 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Color")) []) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) []) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) []) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),3),(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","DoublyBlack")) [],Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6))])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TVar 0)),"RedBlackTree","deleteTree.rightMost.56")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TVar 0)),"RedBlackTree","deleteTree.rightMost.56")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"RedBlackTree","tree2list")) 1 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"RedBlackTree","tree2listTree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"RedBlackTree","tree2listTree")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"RedBlackTree","tree2listTree.t2l.77")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"RedBlackTree","tree2listTree.t2l.77")) 2 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),3),(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"RedBlackTree","tree2listTree.t2l.77")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"RedBlackTree","tree2listTree.t2l.77")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"RedBlackTree","sort")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"RedBlackTree","tree2list")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude","foldr")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","update")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"RedBlackTree","empty")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"RedBlackTree","sort._#lambda2")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]])),Func ((Nothing,Just (FuncType (TVar 520) (FuncType (TVar 520) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"RedBlackTree","sort._#lambda2")) 2 Private (FuncType (TVar 520) (FuncType (TVar 520) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 520),1),(Just (TVar 520),2)] (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","setInsertEquivalence")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),5)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),6))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","rbt")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))))),"RedBlackTree","RedBlackTree")) [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),2),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),3),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isBlack")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isDoublyBlack")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","DoublyBlack")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TVar 0)),"RedBlackTree","element")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Var ((Just (TVar 0),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","left")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","right")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","singleBlack")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","DoublyBlack")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),4)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","balanceL")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 91]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 91])),"RedBlackTree","left")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","left")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 89),3),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TVar 0),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 95]) (TVar 95)),"RedBlackTree","balanceL._#selFP7#z")) [Var ((Just (TVar 89),3))])] (Let [((Just (TVar 0),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 96]) (TVar 96)),"RedBlackTree","balanceL._#selFP8#y")) [Var ((Just (TVar 89),3))])] (Let [((Just (TVar 0),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 97]) (TVar 97)),"RedBlackTree","balanceL._#selFP9#x")) [Var ((Just (TVar 89),3))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 98]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 98])),"RedBlackTree","balanceL._#selFP10#a")) [Var ((Just (TVar 89),3))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 99]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 99])),"RedBlackTree","balanceL._#selFP11#b")) [Var ((Just (TVar 89),3))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 100]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 100])),"RedBlackTree","balanceL._#selFP12#c")) [Var ((Just (TVar 89),3))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 101]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 101])),"RedBlackTree","balanceL._#selFP13#d")) [Var ((Just (TVar 89),3))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 0),5)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),6)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),8))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),9)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),10))]]))))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","right")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 90),11),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TVar 0),12),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 108]) (TVar 108)),"RedBlackTree","balanceL._#selFP15#z")) [Var ((Just (TVar 90),11))])] (Let [((Just (TVar 0),13),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 109]) (TVar 109)),"RedBlackTree","balanceL._#selFP16#x")) [Var ((Just (TVar 90),11))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),14),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 110]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 110])),"RedBlackTree","balanceL._#selFP17#a")) [Var ((Just (TVar 90),11))])] (Let [((Just (TVar 0),15),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 111]) (TVar 111)),"RedBlackTree","balanceL._#selFP18#y")) [Var ((Just (TVar 90),11))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),16),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 112]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 112])),"RedBlackTree","balanceL._#selFP19#b")) [Var ((Just (TVar 90),11))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),17),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 113]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 113])),"RedBlackTree","balanceL._#selFP20#c")) [Var ((Just (TVar 90),11))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),18),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 114]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 114])),"RedBlackTree","balanceL._#selFP21#d")) [Var ((Just (TVar 90),11))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 0),15)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),13)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),14)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),16))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),12)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),17)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),18))]]))))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"Prelude","failed")) [])])])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TVar 88)),"RedBlackTree","balanceL._#selFP7#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TVar 88)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TVar 88),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TVar 88)),"RedBlackTree","balanceL._#selFP8#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TVar 88)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TVar 88),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TVar 88)),"RedBlackTree","balanceL._#selFP9#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TVar 88)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TVar 88),11)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88])),"RedBlackTree","balanceL._#selFP10#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88])),"RedBlackTree","balanceL._#selFP11#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88])),"RedBlackTree","balanceL._#selFP12#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88])),"RedBlackTree","balanceL._#selFP13#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TVar 88)),"RedBlackTree","balanceL._#selFP15#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TVar 88)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TVar 88),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TVar 88)),"RedBlackTree","balanceL._#selFP16#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TVar 88)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TVar 88),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88])),"RedBlackTree","balanceL._#selFP17#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TVar 88)),"RedBlackTree","balanceL._#selFP18#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TVar 88)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TVar 88),11)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88])),"RedBlackTree","balanceL._#selFP19#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88])),"RedBlackTree","balanceL._#selFP20#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88])),"RedBlackTree","balanceL._#selFP21#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 88])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 88),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 88),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 88),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 88]),5)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","balanceR")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 134]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 134])),"RedBlackTree","right")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","right")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 132),3),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TVar 0),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 138]) (TVar 138)),"RedBlackTree","balanceR._#selFP23#x")) [Var ((Just (TVar 132),3))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 139]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 139])),"RedBlackTree","balanceR._#selFP24#a")) [Var ((Just (TVar 132),3))])] (Let [((Just (TVar 0),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 140]) (TVar 140)),"RedBlackTree","balanceR._#selFP25#y")) [Var ((Just (TVar 132),3))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 141]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 141])),"RedBlackTree","balanceR._#selFP26#b")) [Var ((Just (TVar 132),3))])] (Let [((Just (TVar 0),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 142]) (TVar 142)),"RedBlackTree","balanceR._#selFP27#z")) [Var ((Just (TVar 132),3))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 143]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 143])),"RedBlackTree","balanceR._#selFP28#c")) [Var ((Just (TVar 132),3))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 144]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 144])),"RedBlackTree","balanceR._#selFP29#d")) [Var ((Just (TVar 132),3))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 0),6)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),8)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),9)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),10))]]))))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","left")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 133),11),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TVar 0),12),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 151]) (TVar 151)),"RedBlackTree","balanceR._#selFP31#x")) [Var ((Just (TVar 133),11))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),13),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 152]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 152])),"RedBlackTree","balanceR._#selFP32#a")) [Var ((Just (TVar 133),11))])] (Let [((Just (TVar 0),14),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 153]) (TVar 153)),"RedBlackTree","balanceR._#selFP33#z")) [Var ((Just (TVar 133),11))])] (Let [((Just (TVar 0),15),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 154]) (TVar 154)),"RedBlackTree","balanceR._#selFP34#y")) [Var ((Just (TVar 133),11))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),16),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 155]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 155])),"RedBlackTree","balanceR._#selFP35#b")) [Var ((Just (TVar 133),11))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),17),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 156]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 156])),"RedBlackTree","balanceR._#selFP36#c")) [Var ((Just (TVar 133),11))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),18),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 157]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 157])),"RedBlackTree","balanceR._#selFP37#d")) [Var ((Just (TVar 133),11))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 0),15)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),12)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),13)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),16))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),14)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),17)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),18))]]))))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"Prelude","failed")) [])])])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TVar 131)),"RedBlackTree","balanceR._#selFP23#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TVar 131)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TVar 131),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131])),"RedBlackTree","balanceR._#selFP24#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TVar 131)),"RedBlackTree","balanceR._#selFP25#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TVar 131)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TVar 131),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131])),"RedBlackTree","balanceR._#selFP26#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TVar 131)),"RedBlackTree","balanceR._#selFP27#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TVar 131)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TVar 131),11)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131])),"RedBlackTree","balanceR._#selFP28#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131])),"RedBlackTree","balanceR._#selFP29#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TVar 131)),"RedBlackTree","balanceR._#selFP31#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TVar 131)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TVar 131),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131])),"RedBlackTree","balanceR._#selFP32#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TVar 131)),"RedBlackTree","balanceR._#selFP33#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TVar 131)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TVar 131),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TVar 131)),"RedBlackTree","balanceR._#selFP34#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TVar 131)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TVar 131),11)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131])),"RedBlackTree","balanceR._#selFP35#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131])),"RedBlackTree","balanceR._#selFP36#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131])),"RedBlackTree","balanceR._#selFP37#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 131])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 131),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 131),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 131) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 131),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 131]),9)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","delBalanceL")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isDoublyBlack")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","left")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","reviseLeft")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","reviseLeft")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 254]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 254])),"RedBlackTree","right")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 255]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isBlack")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","left")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 250),4),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 260]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseLeft._#selFP39#col")) [Var ((Just (TVar 250),4))])] (Let [((Just (TVar 0),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 261]) (TVar 261)),"RedBlackTree","reviseLeft._#selFP40#x")) [Var ((Just (TVar 250),4))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 262]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 262])),"RedBlackTree","reviseLeft._#selFP41#a")) [Var ((Just (TVar 250),4))])] (Let [((Just (TVar 0),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 263]) (TVar 263)),"RedBlackTree","reviseLeft._#selFP42#z")) [Var ((Just (TVar 250),4))])] (Let [((Just (TVar 0),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 264]) (TVar 264)),"RedBlackTree","reviseLeft._#selFP43#y")) [Var ((Just (TVar 250),4))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 265]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 265])),"RedBlackTree","reviseLeft._#selFP44#b")) [Var ((Just (TVar 250),4))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),11),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 266]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 266])),"RedBlackTree","reviseLeft._#selFP45#c")) [Var ((Just (TVar 250),4))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),12),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 267]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 267])),"RedBlackTree","reviseLeft._#selFP46#d")) [Var ((Just (TVar 250),4))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TVar 0),9)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),6)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","singleBlack")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),7))],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),10))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),8)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),11)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),12))]])))))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","right")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 251),13),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),14),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 274]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseLeft._#selFP48#col")) [Var ((Just (TVar 251),13))])] (Let [((Just (TVar 0),15),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 275]) (TVar 275)),"RedBlackTree","reviseLeft._#selFP49#x")) [Var ((Just (TVar 251),13))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),16),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 276]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 276])),"RedBlackTree","reviseLeft._#selFP50#a")) [Var ((Just (TVar 251),13))])] (Let [((Just (TVar 0),17),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 277]) (TVar 277)),"RedBlackTree","reviseLeft._#selFP51#y")) [Var ((Just (TVar 251),13))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),18),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 278]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 278])),"RedBlackTree","reviseLeft._#selFP52#b")) [Var ((Just (TVar 251),13))])] (Let [((Just (TVar 0),19),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 279]) (TVar 279)),"RedBlackTree","reviseLeft._#selFP53#z")) [Var ((Just (TVar 251),13))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),20),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 280]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 280])),"RedBlackTree","reviseLeft._#selFP54#c")) [Var ((Just (TVar 251),13))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),21),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 281]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 281])),"RedBlackTree","reviseLeft._#selFP55#d")) [Var ((Just (TVar 251),13))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),14)),Var ((Just (TVar 0),17)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),15)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","singleBlack")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),16))],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),18))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),19)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),20)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),21))]])))))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 252),22),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),23),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 286]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseLeft._#selFP57#col")) [Var ((Just (TVar 252),22))])] (Let [((Just (TVar 0),24),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 287]) (TVar 287)),"RedBlackTree","reviseLeft._#selFP58#x")) [Var ((Just (TVar 252),22))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),25),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 288]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 288])),"RedBlackTree","reviseLeft._#selFP59#a")) [Var ((Just (TVar 252),22))])] (Let [((Just (TVar 0),26),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 289]) (TVar 289)),"RedBlackTree","reviseLeft._#selFP60#y")) [Var ((Just (TVar 252),22))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),27),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 290]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 290])),"RedBlackTree","reviseLeft._#selFP61#b")) [Var ((Just (TVar 252),22))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),28),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 291]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 291])),"RedBlackTree","reviseLeft._#selFP62#c")) [Var ((Just (TVar 252),22))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),23)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","DoublyBlack")) [])],Var ((Just (TVar 0),24)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","singleBlack")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),25))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 0),26)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),27)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),28))]])))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 253),29),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TVar 0),30),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 296]) (TVar 296)),"RedBlackTree","reviseLeft._#selFP64#x")) [Var ((Just (TVar 253),29))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),31),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 297]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 297])),"RedBlackTree","reviseLeft._#selFP65#a")) [Var ((Just (TVar 253),29))])] (Let [((Just (TVar 0),32),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 298]) (TVar 298)),"RedBlackTree","reviseLeft._#selFP66#y")) [Var ((Just (TVar 253),29))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),33),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 299]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 299])),"RedBlackTree","reviseLeft._#selFP67#b")) [Var ((Just (TVar 253),29))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),34),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 300]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 300])),"RedBlackTree","reviseLeft._#selFP68#c")) [Var ((Just (TVar 253),29))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),32)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","reviseLeft")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 0),30)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),31)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),33))]],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),34))]))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"Prelude","failed")) [])])])])])])))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseLeft._#selFP39#col")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Color")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP40#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TVar 249),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP41#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP42#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TVar 249),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP43#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TVar 249),11)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP44#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP45#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP46#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseLeft._#selFP48#col")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Color")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP49#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TVar 249),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP50#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP51#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TVar 249),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP52#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP53#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TVar 249),11)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP54#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP55#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 249),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),13)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseLeft._#selFP57#col")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Color")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP58#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TVar 249),3)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP59#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP60#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TVar 249),7)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP61#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP62#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP64#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TVar 249),3)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP65#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TVar 249)),"RedBlackTree","reviseLeft._#selFP66#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TVar 249)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TVar 249),7)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP67#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249])),"RedBlackTree","reviseLeft._#selFP68#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 249])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 249),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 249) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 249),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 249]),9)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","delBalanceR")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isDoublyBlack")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","right")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","reviseRight")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","reviseRight")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 332]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 332])),"RedBlackTree","left")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 333]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isBlack")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"RedBlackTree","Empty")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","left")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 328),4),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 338]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseRight._#selFP70#col")) [Var ((Just (TVar 328),4))])] (Let [((Just (TVar 0),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 339]) (TVar 339)),"RedBlackTree","reviseRight._#selFP71#x")) [Var ((Just (TVar 328),4))])] (Let [((Just (TVar 0),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 340]) (TVar 340)),"RedBlackTree","reviseRight._#selFP72#y")) [Var ((Just (TVar 328),4))])] (Let [((Just (TVar 0),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 341]) (TVar 341)),"RedBlackTree","reviseRight._#selFP73#z")) [Var ((Just (TVar 328),4))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 342]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 342])),"RedBlackTree","reviseRight._#selFP74#d")) [Var ((Just (TVar 328),4))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 343]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 343])),"RedBlackTree","reviseRight._#selFP75#c")) [Var ((Just (TVar 328),4))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),11),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 344]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 344])),"RedBlackTree","reviseRight._#selFP76#b")) [Var ((Just (TVar 328),4))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),12),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 345]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 345])),"RedBlackTree","reviseRight._#selFP77#a")) [Var ((Just (TVar 328),4))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),5)),Var ((Just (TVar 0),7)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),8)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),9)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),10))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),6)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),11)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","singleBlack")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),12))]]])))))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isRed")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","right")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),2))]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 329),13),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),14),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 352]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseRight._#selFP79#col")) [Var ((Just (TVar 329),13))])] (Let [((Just (TVar 0),15),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 353]) (TVar 353)),"RedBlackTree","reviseRight._#selFP80#x")) [Var ((Just (TVar 329),13))])] (Let [((Just (TVar 0),16),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 354]) (TVar 354)),"RedBlackTree","reviseRight._#selFP81#z")) [Var ((Just (TVar 329),13))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),17),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 355]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 355])),"RedBlackTree","reviseRight._#selFP82#d")) [Var ((Just (TVar 329),13))])] (Let [((Just (TVar 0),18),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 356]) (TVar 356)),"RedBlackTree","reviseRight._#selFP83#y")) [Var ((Just (TVar 329),13))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),19),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 357]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 357])),"RedBlackTree","reviseRight._#selFP84#c")) [Var ((Just (TVar 329),13))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),20),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 358]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 358])),"RedBlackTree","reviseRight._#selFP85#b")) [Var ((Just (TVar 329),13))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),21),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 359]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 359])),"RedBlackTree","reviseRight._#selFP86#a")) [Var ((Just (TVar 329),13))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),14)),Var ((Just (TVar 0),18)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),16)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),17)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),19))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),15)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),20)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","singleBlack")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),21))]]])))))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","Bool") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 330),22),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),23),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 364]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseRight._#selFP88#col")) [Var ((Just (TVar 330),22))])] (Let [((Just (TVar 0),24),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 365]) (TVar 365)),"RedBlackTree","reviseRight._#selFP89#x")) [Var ((Just (TVar 330),22))])] (Let [((Just (TVar 0),25),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 366]) (TVar 366)),"RedBlackTree","reviseRight._#selFP90#y")) [Var ((Just (TVar 330),22))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),26),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 367]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 367])),"RedBlackTree","reviseRight._#selFP91#c")) [Var ((Just (TVar 330),22))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),27),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 368]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 368])),"RedBlackTree","reviseRight._#selFP92#b")) [Var ((Just (TVar 330),22))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),28),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 369]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 369])),"RedBlackTree","reviseRight._#selFP93#a")) [Var ((Just (TVar 330),22))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),23)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","DoublyBlack")) [])],Var ((Just (TVar 0),24)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 0),25)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),26)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),27))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","singleBlack")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),28))]])))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Let [((Just (TVar 331),29),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),1)))] (Let [((Just (TVar 0),30),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 374]) (TVar 374)),"RedBlackTree","reviseRight._#selFP95#x")) [Var ((Just (TVar 331),29))])] (Let [((Just (TVar 0),31),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 375]) (TVar 375)),"RedBlackTree","reviseRight._#selFP96#y")) [Var ((Just (TVar 331),29))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),32),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 376]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 376])),"RedBlackTree","reviseRight._#selFP97#c")) [Var ((Just (TVar 331),29))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),33),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 377]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 377])),"RedBlackTree","reviseRight._#selFP98#b")) [Var ((Just (TVar 331),29))])] (Let [((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),34),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 378]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 378])),"RedBlackTree","reviseRight._#selFP99#a")) [Var ((Just (TVar 331),29))])] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Black")) [],Var ((Just (TVar 0),31)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),32)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0])),"RedBlackTree","reviseRight")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]))))),"RedBlackTree","Tree")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),"RedBlackTree","Red")) [],Var ((Just (TVar 0),30)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),33)),Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),34))]]]))))))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 0]),"Prelude","failed")) [])])])])])])))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseRight._#selFP70#col")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Color")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP71#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TVar 327),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP72#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TVar 327),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP73#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TVar 327),11)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP74#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP75#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP76#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP77#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseRight._#selFP79#col")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Color")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP80#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TVar 327),3)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP81#z")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TVar 327),7)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP82#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP83#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TVar 327),11)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP84#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP85#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP86#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),10),(Just (TVar 327),11),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),12),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),13)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Color") [])),"RedBlackTree","reviseRight._#selFP88#col")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Color")) [])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP89#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TVar 327),3)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP90#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TVar 327),7)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP91#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP92#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP93#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP95#x")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TVar 327),3)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TVar 327)),"RedBlackTree","reviseRight._#selFP96#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TVar 327)) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TVar 327),7)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP97#c")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP98#b")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327])),"RedBlackTree","reviseRight._#selFP99#a")) 1 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327]) (TCons ((Nothing,Nothing,"RedBlackTree","Tree")) [TVar 327])) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),2),(Just (TVar 327),3),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Color") []) (FuncType (TVar 327) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]) (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]))))),"RedBlackTree","Tree")) [(Just (TCons (Nothing,Nothing,"RedBlackTree","Color") []),6),(Just (TVar 327),7),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),8),(Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),9)]) (Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","Tree") [TVar 327]),5)))])]))] []
diff --git a/src/lib/Curry/Module/.curry/RedBlackTree.fcy b/src/lib/Curry/Module/.curry/RedBlackTree.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RedBlackTree.fcy
@@ -0,0 +1,1 @@
+Prog "RedBlackTree" ["Prelude"] [Type ("RedBlackTree","RedBlackTree") Public [0] [Cons ("RedBlackTree","RedBlackTree") 4 Private [FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") [])),FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") [])),FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") [])),TCons ("RedBlackTree","Tree") [TVar 0]]],Type ("RedBlackTree","Color") Private [] [Cons ("RedBlackTree","Red") 0 Private [],Cons ("RedBlackTree","Black") 0 Private [],Cons ("RedBlackTree","DoublyBlack") 0 Private []],Type ("RedBlackTree","Tree") Private [0] [Cons ("RedBlackTree","Tree") 4 Private [TCons ("RedBlackTree","Color") [],TVar 0,TCons ("RedBlackTree","Tree") [TVar 0],TCons ("RedBlackTree","Tree") [TVar 0]],Cons ("RedBlackTree","Empty") 0 Private []]] [Func ("RedBlackTree","empty") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("RedBlackTree","RedBlackTree") [TVar 0])))) (Rule [1,2,3] (Comb ConsCall ("RedBlackTree","RedBlackTree") [Var 1,Var 2,Var 3,Comb ConsCall ("RedBlackTree","Empty") []])),Func ("RedBlackTree","isEmpty") 1 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","RedBlackTree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Comb ConsCall ("Prelude","False") [])])])),Func ("RedBlackTree","newTreeLike") 1 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","RedBlackTree") [2,3,4,5]) (Comb ConsCall ("RedBlackTree","RedBlackTree") [Var 2,Var 3,Var 4,Comb ConsCall ("RedBlackTree","Empty") []])])),Func ("RedBlackTree","lookup") 2 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","Maybe") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("RedBlackTree","RedBlackTree") [3,4,5,6]) (Comb FuncCall ("RedBlackTree","lookupTree") [Var 4,Var 5,Var 1,Var 6])])),Func ("RedBlackTree","lookupTree") 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("Prelude","Maybe") [TVar 0]))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("Prelude","Nothing") []),Branch (Pattern ("RedBlackTree","Tree") [5,6,7,8]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","Just") [Var 6]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 3],Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","lookupTree") [Var 1,Var 2,Var 3,Var 7]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","lookupTree") [Var 1,Var 2,Var 3,Var 8]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("RedBlackTree","update") 2 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("RedBlackTree","RedBlackTree") [3,4,5,6]) (Comb ConsCall ("RedBlackTree","RedBlackTree") [Var 3,Var 4,Var 5,Comb FuncCall ("RedBlackTree","updateTree") [Var 3,Var 5,Var 1,Var 6]])])),Func ("RedBlackTree","updateTree") 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("RedBlackTree","updateTree.upd.35") [Var 3,Var 1,Var 2,Var 4])] (Let [(6,Comb FuncCall ("RedBlackTree","updateTree._#selFP3#e2") [Var 5])] (Let [(7,Comb FuncCall ("RedBlackTree","updateTree._#selFP4#l") [Var 5])] (Let [(8,Comb FuncCall ("RedBlackTree","updateTree._#selFP5#r") [Var 5])] (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 6,Var 7,Var 8])))))),Func ("RedBlackTree","updateTree.upd.35") 4 Private (FuncType (TVar 183) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 183) (FuncType (TVar 183) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("RedBlackTree","Tree") [TVar 183]) (TCons ("RedBlackTree","Tree") [TVar 183]))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 1,Comb ConsCall ("RedBlackTree","Empty") [],Comb ConsCall ("RedBlackTree","Empty") []]),Branch (Pattern ("RedBlackTree","Tree") [5,6,7,8]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 1],Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("RedBlackTree","Tree") [Var 5,Var 1,Var 7,Var 8]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Var 1],Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","balanceL") [Comb ConsCall ("RedBlackTree","Tree") [Var 5,Var 6,Comb FuncCall ("RedBlackTree","updateTree.upd.35") [Var 1,Var 2,Var 3,Var 7],Var 8]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","balanceR") [Comb ConsCall ("RedBlackTree","Tree") [Var 5,Var 6,Var 7,Comb FuncCall ("RedBlackTree","updateTree.upd.35") [Var 1,Var 2,Var 3,Var 8]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("RedBlackTree","updateTree._#selFP3#e2") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 183]) (TVar 183)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Var 3)])),Func ("RedBlackTree","updateTree._#selFP4#l") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 183]) (TCons ("RedBlackTree","Tree") [TVar 183])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Var 4)])),Func ("RedBlackTree","updateTree._#selFP5#r") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 183]) (TCons ("RedBlackTree","Tree") [TVar 183])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Var 5)])),Func ("RedBlackTree","delete") 2 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("RedBlackTree","RedBlackTree") [3,4,5,6]) (Comb ConsCall ("RedBlackTree","RedBlackTree") [Var 3,Var 4,Var 5,Comb FuncCall ("RedBlackTree","delete.blackenRoot.44") [Comb FuncCall ("RedBlackTree","deleteTree") [Var 4,Var 5,Var 1,Var 6]]])])),Func ("RedBlackTree","delete.blackenRoot.44") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("RedBlackTree","Empty") []),Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 3,Var 4,Var 5])])),Func ("RedBlackTree","deleteTree") 4 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0]))))) (Rule [1,2,3,4] (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("RedBlackTree","Empty") []),Branch (Pattern ("RedBlackTree","Tree") [5,6,7,8]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 6]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 7,Comb ConsCall ("RedBlackTree","Empty") []]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","deleteTree.addColor.56") [Var 5,Var 8]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 8,Comb ConsCall ("RedBlackTree","Empty") []]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","deleteTree.addColor.56") [Var 5,Var 7]),Branch (Pattern ("Prelude","False") []) (Let [(9,Comb FuncCall ("RedBlackTree","deleteTree.rightMost.56") [Var 7])] (Comb FuncCall ("RedBlackTree","delBalanceL") [Comb ConsCall ("RedBlackTree","Tree") [Var 5,Var 9,Comb FuncCall ("RedBlackTree","deleteTree") [Var 1,Var 2,Var 9,Var 7],Var 8]]))])]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 3],Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","delBalanceL") [Comb ConsCall ("RedBlackTree","Tree") [Var 5,Var 6,Comb FuncCall ("RedBlackTree","deleteTree") [Var 1,Var 2,Var 3,Var 7],Var 8]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","delBalanceR") [Comb ConsCall ("RedBlackTree","Tree") [Var 5,Var 6,Var 7,Comb FuncCall ("RedBlackTree","deleteTree") [Var 1,Var 2,Var 3,Var 8]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("RedBlackTree","deleteTree.addColor.56") 2 Private (FuncType (TCons ("RedBlackTree","Color") []) (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Red") []) (Var 2),Branch (Pattern ("RedBlackTree","Black") []) (Case  Flex (Var 2) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("RedBlackTree","Empty") []),Branch (Pattern ("RedBlackTree","Tree") [3,4,5,6]) (Case  Flex (Var 3) [Branch (Pattern ("RedBlackTree","Red") []) (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 4,Var 5,Var 6]),Branch (Pattern ("RedBlackTree","Black") []) (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","DoublyBlack") [],Var 4,Var 5,Var 6])])])])),Func ("RedBlackTree","deleteTree.rightMost.56") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 5,Comb ConsCall ("RedBlackTree","Empty") []]) [Branch (Pattern ("Prelude","True") []) (Var 3),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("RedBlackTree","deleteTree.rightMost.56") [Var 5])])])),Func ("RedBlackTree","tree2list") 1 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","RedBlackTree") [2,3,4,5]) (Comb FuncCall ("RedBlackTree","tree2listTree") [Var 5])])),Func ("RedBlackTree","tree2listTree") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Comb FuncCall ("RedBlackTree","tree2listTree.t2l.77") [Var 1,Comb ConsCall ("Prelude","[]") []])),Func ("RedBlackTree","tree2listTree.t2l.77") 2 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Empty") []) (Var 2),Branch (Pattern ("RedBlackTree","Tree") [3,4,5,6]) (Comb FuncCall ("RedBlackTree","tree2listTree.t2l.77") [Var 5,Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("RedBlackTree","tree2listTree.t2l.77") [Var 6,Var 2]]])])),Func ("RedBlackTree","sort") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("RedBlackTree","tree2list") [Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("RedBlackTree","update") [],Comb FuncCall ("RedBlackTree","empty") [Comb (FuncPartCall 2) ("RedBlackTree","sort._#lambda2") [],Comb (FuncPartCall 2) ("Prelude","==") [],Var 1],Var 2]])),Func ("RedBlackTree","sort._#lambda2") 2 Private (FuncType (TVar 520) (FuncType (TVar 520) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb ConsCall ("Prelude","False") [])),Func ("RedBlackTree","setInsertEquivalence") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("RedBlackTree","RedBlackTree") [3,4,5,6]) (Comb ConsCall ("RedBlackTree","RedBlackTree") [Var 1,Var 4,Var 5,Var 6])])),Func ("RedBlackTree","rbt") 1 Private (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","RedBlackTree") [2,3,4,5]) (Var 5)])),Func ("RedBlackTree","isBlack") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Comb FuncCall ("Prelude","==") [Var 2,Comb ConsCall ("RedBlackTree","Black") []])])),Func ("RedBlackTree","isRed") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Comb FuncCall ("Prelude","==") [Var 2,Comb ConsCall ("RedBlackTree","Red") []])])),Func ("RedBlackTree","isDoublyBlack") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Comb FuncCall ("Prelude","==") [Var 2,Comb ConsCall ("RedBlackTree","DoublyBlack") []])])),Func ("RedBlackTree","element") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TVar 0)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Var 3)])),Func ("RedBlackTree","left") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Var 4)])),Func ("RedBlackTree","right") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Var 5)])),Func ("RedBlackTree","singleBlack") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Empty") []) (Comb ConsCall ("RedBlackTree","Empty") []),Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 2) [Branch (Pattern ("RedBlackTree","DoublyBlack") []) (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 3,Var 4,Var 5])])])),Func ("RedBlackTree","balanceL") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Let [(2,Comb FuncCall ("RedBlackTree","left") [Var 1])] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("RedBlackTree","isRed") [Var 2],Comb FuncCall ("RedBlackTree","isRed") [Comb FuncCall ("RedBlackTree","left") [Var 2]]]) [Branch (Pattern ("Prelude","True") []) (Let [(3,Var 1)] (Let [(4,Comb FuncCall ("RedBlackTree","balanceL._#selFP7#z") [Var 3])] (Let [(5,Comb FuncCall ("RedBlackTree","balanceL._#selFP8#y") [Var 3])] (Let [(6,Comb FuncCall ("RedBlackTree","balanceL._#selFP9#x") [Var 3])] (Let [(7,Comb FuncCall ("RedBlackTree","balanceL._#selFP10#a") [Var 3])] (Let [(8,Comb FuncCall ("RedBlackTree","balanceL._#selFP11#b") [Var 3])] (Let [(9,Comb FuncCall ("RedBlackTree","balanceL._#selFP12#c") [Var 3])] (Let [(10,Comb FuncCall ("RedBlackTree","balanceL._#selFP13#d") [Var 3])] (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 5,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 6,Var 7,Var 8],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 4,Var 9,Var 10]]))))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("RedBlackTree","isRed") [Var 2],Comb FuncCall ("RedBlackTree","isRed") [Comb FuncCall ("RedBlackTree","right") [Var 2]]]) [Branch (Pattern ("Prelude","True") []) (Let [(11,Var 1)] (Let [(12,Comb FuncCall ("RedBlackTree","balanceL._#selFP15#z") [Var 11])] (Let [(13,Comb FuncCall ("RedBlackTree","balanceL._#selFP16#x") [Var 11])] (Let [(14,Comb FuncCall ("RedBlackTree","balanceL._#selFP17#a") [Var 11])] (Let [(15,Comb FuncCall ("RedBlackTree","balanceL._#selFP18#y") [Var 11])] (Let [(16,Comb FuncCall ("RedBlackTree","balanceL._#selFP19#b") [Var 11])] (Let [(17,Comb FuncCall ("RedBlackTree","balanceL._#selFP20#c") [Var 11])] (Let [(18,Comb FuncCall ("RedBlackTree","balanceL._#selFP21#d") [Var 11])] (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 15,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 13,Var 14,Var 16],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 12,Var 17,Var 18]]))))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])]))),Func ("RedBlackTree","balanceL._#selFP7#z") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TVar 88)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 3)])])])),Func ("RedBlackTree","balanceL._#selFP8#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TVar 88)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 7)])])])),Func ("RedBlackTree","balanceL._#selFP9#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TVar 88)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 11)])])])),Func ("RedBlackTree","balanceL._#selFP10#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TCons ("RedBlackTree","Tree") [TVar 88])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 12)])])])),Func ("RedBlackTree","balanceL._#selFP11#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TCons ("RedBlackTree","Tree") [TVar 88])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 13)])])])),Func ("RedBlackTree","balanceL._#selFP12#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TCons ("RedBlackTree","Tree") [TVar 88])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 9)])])])),Func ("RedBlackTree","balanceL._#selFP13#d") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TCons ("RedBlackTree","Tree") [TVar 88])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 5)])])])),Func ("RedBlackTree","balanceL._#selFP15#z") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TVar 88)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 3)])])])),Func ("RedBlackTree","balanceL._#selFP16#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TVar 88)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 7)])])])),Func ("RedBlackTree","balanceL._#selFP17#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TCons ("RedBlackTree","Tree") [TVar 88])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 8)])])])),Func ("RedBlackTree","balanceL._#selFP18#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TVar 88)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 11)])])])),Func ("RedBlackTree","balanceL._#selFP19#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TCons ("RedBlackTree","Tree") [TVar 88])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 12)])])])),Func ("RedBlackTree","balanceL._#selFP20#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TCons ("RedBlackTree","Tree") [TVar 88])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 13)])])])),Func ("RedBlackTree","balanceL._#selFP21#d") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 88]) (TCons ("RedBlackTree","Tree") [TVar 88])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 5)])])])),Func ("RedBlackTree","balanceR") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Let [(2,Comb FuncCall ("RedBlackTree","right") [Var 1])] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("RedBlackTree","isRed") [Var 2],Comb FuncCall ("RedBlackTree","isRed") [Comb FuncCall ("RedBlackTree","right") [Var 2]]]) [Branch (Pattern ("Prelude","True") []) (Let [(3,Var 1)] (Let [(4,Comb FuncCall ("RedBlackTree","balanceR._#selFP23#x") [Var 3])] (Let [(5,Comb FuncCall ("RedBlackTree","balanceR._#selFP24#a") [Var 3])] (Let [(6,Comb FuncCall ("RedBlackTree","balanceR._#selFP25#y") [Var 3])] (Let [(7,Comb FuncCall ("RedBlackTree","balanceR._#selFP26#b") [Var 3])] (Let [(8,Comb FuncCall ("RedBlackTree","balanceR._#selFP27#z") [Var 3])] (Let [(9,Comb FuncCall ("RedBlackTree","balanceR._#selFP28#c") [Var 3])] (Let [(10,Comb FuncCall ("RedBlackTree","balanceR._#selFP29#d") [Var 3])] (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 6,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 4,Var 5,Var 7],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 8,Var 9,Var 10]]))))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("RedBlackTree","isRed") [Var 2],Comb FuncCall ("RedBlackTree","isRed") [Comb FuncCall ("RedBlackTree","left") [Var 2]]]) [Branch (Pattern ("Prelude","True") []) (Let [(11,Var 1)] (Let [(12,Comb FuncCall ("RedBlackTree","balanceR._#selFP31#x") [Var 11])] (Let [(13,Comb FuncCall ("RedBlackTree","balanceR._#selFP32#a") [Var 11])] (Let [(14,Comb FuncCall ("RedBlackTree","balanceR._#selFP33#z") [Var 11])] (Let [(15,Comb FuncCall ("RedBlackTree","balanceR._#selFP34#y") [Var 11])] (Let [(16,Comb FuncCall ("RedBlackTree","balanceR._#selFP35#b") [Var 11])] (Let [(17,Comb FuncCall ("RedBlackTree","balanceR._#selFP36#c") [Var 11])] (Let [(18,Comb FuncCall ("RedBlackTree","balanceR._#selFP37#d") [Var 11])] (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 15,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 12,Var 13,Var 16],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 14,Var 17,Var 18]]))))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])]))),Func ("RedBlackTree","balanceR._#selFP23#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TVar 131)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 3)])])])),Func ("RedBlackTree","balanceR._#selFP24#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TCons ("RedBlackTree","Tree") [TVar 131])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 4)])])])),Func ("RedBlackTree","balanceR._#selFP25#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TVar 131)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 7)])])])),Func ("RedBlackTree","balanceR._#selFP26#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TCons ("RedBlackTree","Tree") [TVar 131])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 8)])])])),Func ("RedBlackTree","balanceR._#selFP27#z") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TVar 131)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 11)])])])),Func ("RedBlackTree","balanceR._#selFP28#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TCons ("RedBlackTree","Tree") [TVar 131])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 12)])])])),Func ("RedBlackTree","balanceR._#selFP29#d") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TCons ("RedBlackTree","Tree") [TVar 131])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 13)])])])),Func ("RedBlackTree","balanceR._#selFP31#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TVar 131)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 3)])])])),Func ("RedBlackTree","balanceR._#selFP32#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TCons ("RedBlackTree","Tree") [TVar 131])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 4)])])])),Func ("RedBlackTree","balanceR._#selFP33#z") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TVar 131)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 7)])])])),Func ("RedBlackTree","balanceR._#selFP34#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TVar 131)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 11)])])])),Func ("RedBlackTree","balanceR._#selFP35#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TCons ("RedBlackTree","Tree") [TVar 131])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 12)])])])),Func ("RedBlackTree","balanceR._#selFP36#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TCons ("RedBlackTree","Tree") [TVar 131])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 13)])])])),Func ("RedBlackTree","balanceR._#selFP37#d") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 131]) (TCons ("RedBlackTree","Tree") [TVar 131])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 9)])])])),Func ("RedBlackTree","delBalanceL") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Case  Rigid (Comb FuncCall ("RedBlackTree","isDoublyBlack") [Comb FuncCall ("RedBlackTree","left") [Var 1]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","reviseLeft") [Var 1]),Branch (Pattern ("Prelude","False") []) (Var 1)])),Func ("RedBlackTree","reviseLeft") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Let [(2,Comb FuncCall ("RedBlackTree","right") [Var 1])] (Let [(3,Comb FuncCall ("RedBlackTree","isBlack") [Var 2])] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Comb ConsCall ("RedBlackTree","Empty") []]) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Var 3,Comb FuncCall ("RedBlackTree","isRed") [Comb FuncCall ("RedBlackTree","left") [Var 2]]]) [Branch (Pattern ("Prelude","True") []) (Let [(4,Var 1)] (Let [(5,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP39#col") [Var 4])] (Let [(6,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP40#x") [Var 4])] (Let [(7,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP41#a") [Var 4])] (Let [(8,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP42#z") [Var 4])] (Let [(9,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP43#y") [Var 4])] (Let [(10,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP44#b") [Var 4])] (Let [(11,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP45#c") [Var 4])] (Let [(12,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP46#d") [Var 4])] (Comb ConsCall ("RedBlackTree","Tree") [Var 5,Var 9,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 6,Comb FuncCall ("RedBlackTree","singleBlack") [Var 7],Var 10],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 8,Var 11,Var 12]])))))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Var 3,Comb FuncCall ("RedBlackTree","isRed") [Comb FuncCall ("RedBlackTree","right") [Var 2]]]) [Branch (Pattern ("Prelude","True") []) (Let [(13,Var 1)] (Let [(14,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP48#col") [Var 13])] (Let [(15,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP49#x") [Var 13])] (Let [(16,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP50#a") [Var 13])] (Let [(17,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP51#y") [Var 13])] (Let [(18,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP52#b") [Var 13])] (Let [(19,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP53#z") [Var 13])] (Let [(20,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP54#c") [Var 13])] (Let [(21,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP55#d") [Var 13])] (Comb ConsCall ("RedBlackTree","Tree") [Var 14,Var 17,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 15,Comb FuncCall ("RedBlackTree","singleBlack") [Var 16],Var 18],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 19,Var 20,Var 21]])))))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","True") []) (Let [(22,Var 1)] (Let [(23,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP57#col") [Var 22])] (Let [(24,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP58#x") [Var 22])] (Let [(25,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP59#a") [Var 22])] (Let [(26,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP60#y") [Var 22])] (Let [(27,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP61#b") [Var 22])] (Let [(28,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP62#c") [Var 22])] (Comb ConsCall ("RedBlackTree","Tree") [Case  Rigid (Comb FuncCall ("Prelude","==") [Var 23,Comb ConsCall ("RedBlackTree","Red") []]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("RedBlackTree","Black") []),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("RedBlackTree","DoublyBlack") [])],Var 24,Comb FuncCall ("RedBlackTree","singleBlack") [Var 25],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 26,Var 27,Var 28]])))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Let [(29,Var 1)] (Let [(30,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP64#x") [Var 29])] (Let [(31,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP65#a") [Var 29])] (Let [(32,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP66#y") [Var 29])] (Let [(33,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP67#b") [Var 29])] (Let [(34,Comb FuncCall ("RedBlackTree","reviseLeft._#selFP68#c") [Var 29])] (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 32,Comb FuncCall ("RedBlackTree","reviseLeft") [Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 30,Var 31,Var 33]],Var 34]))))))),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])])))),Func ("RedBlackTree","reviseLeft._#selFP39#col") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Color") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 2)])])])),Func ("RedBlackTree","reviseLeft._#selFP40#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 3)])])])),Func ("RedBlackTree","reviseLeft._#selFP41#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 4)])])])),Func ("RedBlackTree","reviseLeft._#selFP42#z") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 7)])])])),Func ("RedBlackTree","reviseLeft._#selFP43#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 11)])])])),Func ("RedBlackTree","reviseLeft._#selFP44#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 12)])])])),Func ("RedBlackTree","reviseLeft._#selFP45#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 13)])])])),Func ("RedBlackTree","reviseLeft._#selFP46#d") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 9)])])])),Func ("RedBlackTree","reviseLeft._#selFP48#col") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Color") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 2)])])])),Func ("RedBlackTree","reviseLeft._#selFP49#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 3)])])])),Func ("RedBlackTree","reviseLeft._#selFP50#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 4)])])])),Func ("RedBlackTree","reviseLeft._#selFP51#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 7)])])])),Func ("RedBlackTree","reviseLeft._#selFP52#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 8)])])])),Func ("RedBlackTree","reviseLeft._#selFP53#z") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 11)])])])),Func ("RedBlackTree","reviseLeft._#selFP54#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 12)])])])),Func ("RedBlackTree","reviseLeft._#selFP55#d") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 13)])])])),Func ("RedBlackTree","reviseLeft._#selFP57#col") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Color") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 2)])])),Func ("RedBlackTree","reviseLeft._#selFP58#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 3)])])),Func ("RedBlackTree","reviseLeft._#selFP59#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 4)])])),Func ("RedBlackTree","reviseLeft._#selFP60#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 7)])])),Func ("RedBlackTree","reviseLeft._#selFP61#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 8)])])),Func ("RedBlackTree","reviseLeft._#selFP62#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 9)])])),Func ("RedBlackTree","reviseLeft._#selFP64#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 3)])])),Func ("RedBlackTree","reviseLeft._#selFP65#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 4)])])),Func ("RedBlackTree","reviseLeft._#selFP66#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TVar 249)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 7)])])),Func ("RedBlackTree","reviseLeft._#selFP67#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 8)])])),Func ("RedBlackTree","reviseLeft._#selFP68#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 249]) (TCons ("RedBlackTree","Tree") [TVar 249])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 5) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 9)])])),Func ("RedBlackTree","delBalanceR") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Case  Rigid (Comb FuncCall ("RedBlackTree","isDoublyBlack") [Comb FuncCall ("RedBlackTree","right") [Var 1]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("RedBlackTree","reviseRight") [Var 1]),Branch (Pattern ("Prelude","False") []) (Var 1)])),Func ("RedBlackTree","reviseRight") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 0]) (TCons ("RedBlackTree","Tree") [TVar 0])) (Rule [1] (Let [(2,Comb FuncCall ("RedBlackTree","left") [Var 1])] (Let [(3,Comb FuncCall ("RedBlackTree","isBlack") [Var 2])] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Comb ConsCall ("RedBlackTree","Empty") []]) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Var 3,Comb FuncCall ("RedBlackTree","isRed") [Comb FuncCall ("RedBlackTree","left") [Var 2]]]) [Branch (Pattern ("Prelude","True") []) (Let [(4,Var 1)] (Let [(5,Comb FuncCall ("RedBlackTree","reviseRight._#selFP70#col") [Var 4])] (Let [(6,Comb FuncCall ("RedBlackTree","reviseRight._#selFP71#x") [Var 4])] (Let [(7,Comb FuncCall ("RedBlackTree","reviseRight._#selFP72#y") [Var 4])] (Let [(8,Comb FuncCall ("RedBlackTree","reviseRight._#selFP73#z") [Var 4])] (Let [(9,Comb FuncCall ("RedBlackTree","reviseRight._#selFP74#d") [Var 4])] (Let [(10,Comb FuncCall ("RedBlackTree","reviseRight._#selFP75#c") [Var 4])] (Let [(11,Comb FuncCall ("RedBlackTree","reviseRight._#selFP76#b") [Var 4])] (Let [(12,Comb FuncCall ("RedBlackTree","reviseRight._#selFP77#a") [Var 4])] (Comb ConsCall ("RedBlackTree","Tree") [Var 5,Var 7,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 8,Var 9,Var 10],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 6,Var 11,Comb FuncCall ("RedBlackTree","singleBlack") [Var 12]]])))))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Var 3,Comb FuncCall ("RedBlackTree","isRed") [Comb FuncCall ("RedBlackTree","right") [Var 2]]]) [Branch (Pattern ("Prelude","True") []) (Let [(13,Var 1)] (Let [(14,Comb FuncCall ("RedBlackTree","reviseRight._#selFP79#col") [Var 13])] (Let [(15,Comb FuncCall ("RedBlackTree","reviseRight._#selFP80#x") [Var 13])] (Let [(16,Comb FuncCall ("RedBlackTree","reviseRight._#selFP81#z") [Var 13])] (Let [(17,Comb FuncCall ("RedBlackTree","reviseRight._#selFP82#d") [Var 13])] (Let [(18,Comb FuncCall ("RedBlackTree","reviseRight._#selFP83#y") [Var 13])] (Let [(19,Comb FuncCall ("RedBlackTree","reviseRight._#selFP84#c") [Var 13])] (Let [(20,Comb FuncCall ("RedBlackTree","reviseRight._#selFP85#b") [Var 13])] (Let [(21,Comb FuncCall ("RedBlackTree","reviseRight._#selFP86#a") [Var 13])] (Comb ConsCall ("RedBlackTree","Tree") [Var 14,Var 18,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 16,Var 17,Var 19],Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 15,Var 20,Comb FuncCall ("RedBlackTree","singleBlack") [Var 21]]])))))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","True") []) (Let [(22,Var 1)] (Let [(23,Comb FuncCall ("RedBlackTree","reviseRight._#selFP88#col") [Var 22])] (Let [(24,Comb FuncCall ("RedBlackTree","reviseRight._#selFP89#x") [Var 22])] (Let [(25,Comb FuncCall ("RedBlackTree","reviseRight._#selFP90#y") [Var 22])] (Let [(26,Comb FuncCall ("RedBlackTree","reviseRight._#selFP91#c") [Var 22])] (Let [(27,Comb FuncCall ("RedBlackTree","reviseRight._#selFP92#b") [Var 22])] (Let [(28,Comb FuncCall ("RedBlackTree","reviseRight._#selFP93#a") [Var 22])] (Comb ConsCall ("RedBlackTree","Tree") [Case  Rigid (Comb FuncCall ("Prelude","==") [Var 23,Comb ConsCall ("RedBlackTree","Red") []]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("RedBlackTree","Black") []),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("RedBlackTree","DoublyBlack") [])],Var 24,Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 25,Var 26,Var 27],Comb FuncCall ("RedBlackTree","singleBlack") [Var 28]])))))))),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Let [(29,Var 1)] (Let [(30,Comb FuncCall ("RedBlackTree","reviseRight._#selFP95#x") [Var 29])] (Let [(31,Comb FuncCall ("RedBlackTree","reviseRight._#selFP96#y") [Var 29])] (Let [(32,Comb FuncCall ("RedBlackTree","reviseRight._#selFP97#c") [Var 29])] (Let [(33,Comb FuncCall ("RedBlackTree","reviseRight._#selFP98#b") [Var 29])] (Let [(34,Comb FuncCall ("RedBlackTree","reviseRight._#selFP99#a") [Var 29])] (Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Black") [],Var 31,Var 32,Comb FuncCall ("RedBlackTree","reviseRight") [Comb ConsCall ("RedBlackTree","Tree") [Comb ConsCall ("RedBlackTree","Red") [],Var 30,Var 33,Var 34]]]))))))),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])])))),Func ("RedBlackTree","reviseRight._#selFP70#col") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Color") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 2)])])])),Func ("RedBlackTree","reviseRight._#selFP71#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 3)])])])),Func ("RedBlackTree","reviseRight._#selFP72#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 7)])])])),Func ("RedBlackTree","reviseRight._#selFP73#z") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 11)])])])),Func ("RedBlackTree","reviseRight._#selFP74#d") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 12)])])])),Func ("RedBlackTree","reviseRight._#selFP75#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 13)])])])),Func ("RedBlackTree","reviseRight._#selFP76#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 9)])])])),Func ("RedBlackTree","reviseRight._#selFP77#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 8) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 5)])])])),Func ("RedBlackTree","reviseRight._#selFP79#col") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Color") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 2)])])])),Func ("RedBlackTree","reviseRight._#selFP80#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 3)])])])),Func ("RedBlackTree","reviseRight._#selFP81#z") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 7)])])])),Func ("RedBlackTree","reviseRight._#selFP82#d") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 8)])])])),Func ("RedBlackTree","reviseRight._#selFP83#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 11)])])])),Func ("RedBlackTree","reviseRight._#selFP84#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 12)])])])),Func ("RedBlackTree","reviseRight._#selFP85#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 13)])])])),Func ("RedBlackTree","reviseRight._#selFP86#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Case  Flex (Var 9) [Branch (Pattern ("RedBlackTree","Tree") [10,11,12,13]) (Var 5)])])])),Func ("RedBlackTree","reviseRight._#selFP88#col") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Color") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 2)])])),Func ("RedBlackTree","reviseRight._#selFP89#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 3)])])),Func ("RedBlackTree","reviseRight._#selFP90#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 7)])])),Func ("RedBlackTree","reviseRight._#selFP91#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 8)])])),Func ("RedBlackTree","reviseRight._#selFP92#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 9)])])),Func ("RedBlackTree","reviseRight._#selFP93#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 5)])])),Func ("RedBlackTree","reviseRight._#selFP95#x") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 3)])])),Func ("RedBlackTree","reviseRight._#selFP96#y") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TVar 327)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 7)])])),Func ("RedBlackTree","reviseRight._#selFP97#c") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 8)])])),Func ("RedBlackTree","reviseRight._#selFP98#b") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 9)])])),Func ("RedBlackTree","reviseRight._#selFP99#a") 1 Private (FuncType (TCons ("RedBlackTree","Tree") [TVar 327]) (TCons ("RedBlackTree","Tree") [TVar 327])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("RedBlackTree","Tree") [2,3,4,5]) (Case  Flex (Var 4) [Branch (Pattern ("RedBlackTree","Tree") [6,7,8,9]) (Var 5)])]))] []
diff --git a/src/lib/Curry/Module/.curry/RedBlackTree.fint b/src/lib/Curry/Module/.curry/RedBlackTree.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RedBlackTree.fint
@@ -0,0 +1,1 @@
+Prog "RedBlackTree" ["Prelude"] [Type ("RedBlackTree","RedBlackTree") Public [0] []] [Func ("RedBlackTree","empty") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("RedBlackTree","RedBlackTree") [TVar 0])))) (Rule [] (Var 0)),Func ("RedBlackTree","isEmpty") 1 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("RedBlackTree","newTreeLike") 1 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0])) (Rule [] (Var 0)),Func ("RedBlackTree","lookup") 2 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","Maybe") [TVar 0]))) (Rule [] (Var 0)),Func ("RedBlackTree","update") 2 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Var 0)),Func ("RedBlackTree","delete") 2 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Var 0)),Func ("RedBlackTree","tree2list") 1 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("RedBlackTree","sort") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("RedBlackTree","setInsertEquivalence") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/RedBlackTree.uacy b/src/lib/Curry/Module/.curry/RedBlackTree.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/RedBlackTree.uacy
@@ -0,0 +1,33 @@
+CurryProg "RedBlackTree"
+ ["Prelude"]
+ [CType ("RedBlackTree","RedBlackTree") Public [(0,"a")] [CCons ("RedBlackTree","RedBlackTree") 4 Public [CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])),CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])),CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])),CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]]],
+  CType ("RedBlackTree","Color") Private [] [CCons ("RedBlackTree","Red") 0 Private [],CCons ("RedBlackTree","Black") 0 Private [],CCons ("RedBlackTree","DoublyBlack") 0 Private []],
+  CType ("RedBlackTree","Tree") Private [(0,"a")] [CCons ("RedBlackTree","Tree") 4 Private [CTCons ("RedBlackTree","Color") [],CTVar (0,"a"),CTCons ("RedBlackTree","Tree") [CTVar (0,"a")],CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]],CCons ("RedBlackTree","Empty") 0 Private []]]
+ [CFunc ("RedBlackTree","balanceL") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("RedBlackTree","isRed")) (CVar (1,"leftTree")))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (1,"leftTree")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (2,"_"),CPVar (3,"z"),CPComb ("RedBlackTree","Tree") [CPVar (4,"_"),CPVar (5,"y"),CPComb ("RedBlackTree","Tree") [CPVar (6,"_"),CPVar (7,"x"),CPVar (8,"a"),CPVar (9,"b")],CPVar (10,"c")],CPVar (11,"d")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (5,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (7,"x"))) (CVar (8,"a"))) (CVar (9,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (3,"z"))) (CVar (10,"c"))) (CVar (11,"d"))))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("RedBlackTree","isRed")) (CVar (1,"leftTree")))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (1,"leftTree")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (12,"_"),CPVar (13,"z"),CPComb ("RedBlackTree","Tree") [CPVar (14,"_"),CPVar (15,"x"),CPVar (16,"a"),CPComb ("RedBlackTree","Tree") [CPVar (17,"_"),CPVar (18,"y"),CPVar (19,"b"),CPVar (20,"c")]],CPVar (21,"d")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (18,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (15,"x"))) (CVar (16,"a"))) (CVar (19,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (13,"z"))) (CVar (20,"c"))) (CVar (21,"d"))))),(CSymbol ("Prelude","otherwise"),CVar (0,"tree"))] [CLocalPat (CPVar (1,"leftTree")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (0,"tree"))) []]]),
+  CFunc ("RedBlackTree","balanceR") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("RedBlackTree","isRed")) (CVar (1,"rightTree")))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (1,"rightTree")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (2,"_"),CPVar (3,"x"),CPVar (4,"a"),CPComb ("RedBlackTree","Tree") [CPVar (5,"_"),CPVar (6,"y"),CPVar (7,"b"),CPComb ("RedBlackTree","Tree") [CPVar (8,"_"),CPVar (9,"z"),CPVar (10,"c"),CPVar (11,"d")]]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (6,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (3,"x"))) (CVar (4,"a"))) (CVar (7,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (9,"z"))) (CVar (10,"c"))) (CVar (11,"d"))))),(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("RedBlackTree","isRed")) (CVar (1,"rightTree")))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (1,"rightTree")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (12,"_"),CPVar (13,"x"),CPVar (14,"a"),CPComb ("RedBlackTree","Tree") [CPVar (15,"_"),CPVar (16,"z"),CPComb ("RedBlackTree","Tree") [CPVar (17,"_"),CPVar (18,"y"),CPVar (19,"b"),CPVar (20,"c")],CPVar (21,"d")]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (18,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (13,"x"))) (CVar (14,"a"))) (CVar (19,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (16,"z"))) (CVar (20,"c"))) (CVar (21,"d"))))),(CSymbol ("Prelude","otherwise"),CVar (0,"tree"))] [CLocalPat (CPVar (1,"rightTree")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (0,"tree"))) []]]),
+  CFunc ("RedBlackTree","delBalanceL") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("RedBlackTree","isDoublyBlack")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (0,"tree"))))) (CApply (CSymbol ("RedBlackTree","reviseLeft")) (CVar (0,"tree")))) (CVar (0,"tree")))] []]),
+  CFunc ("RedBlackTree","delBalanceR") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"tree")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("RedBlackTree","isDoublyBlack")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (0,"tree"))))) (CApply (CSymbol ("RedBlackTree","reviseRight")) (CVar (0,"tree")))) (CVar (0,"tree")))] []]),
+  CFunc ("RedBlackTree","delete") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"e"),CPComb ("RedBlackTree","RedBlackTree") [CPVar (1,"eqIns"),CPVar (2,"eqLk"),CPVar (3,"lt"),CPVar (4,"t")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (1,"eqIns"))) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CApply (CSymbol ("RedBlackTree","blackenRoot")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","deleteTree")) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CVar (0,"e"))) (CVar (4,"t")))))] [CLocalFunc (CFunc ("RedBlackTree","blackenRoot") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","Empty"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (5,"_"),CPVar (6,"x"),CPVar (7,"l"),CPVar (8,"r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (6,"x"))) (CVar (7,"l"))) (CVar (8,"r")))] []]))]]),
+  CFunc ("RedBlackTree","deleteTree") 4 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","Empty"))] [],CRule [CPVar (3,"eq"),CPVar (4,"lt"),CPVar (5,"e"),CPComb ("RedBlackTree","Tree") [CPVar (6,"c"),CPVar (7,"e2"),CPVar (8,"l"),CPVar (9,"r")]] [(CApply (CApply (CVar (3,"eq")) (CVar (5,"e"))) (CVar (7,"e2")),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"l"))) (CSymbol ("RedBlackTree","Empty")))) (CApply (CApply (CSymbol ("RedBlackTree","addColor")) (CVar (6,"c"))) (CVar (9,"r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"r"))) (CSymbol ("RedBlackTree","Empty")))) (CApply (CApply (CSymbol ("RedBlackTree","addColor")) (CVar (6,"c"))) (CVar (8,"l")))) (CLetDecl [CLocalPat (CPVar (10,"el")) (CApply (CSymbol ("RedBlackTree","rightMost")) (CVar (8,"l"))) []] (CApply (CSymbol ("RedBlackTree","delBalanceL")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (6,"c"))) (CVar (10,"el"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","deleteTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (10,"el"))) (CVar (8,"l")))) (CVar (9,"r"))))))),(CApply (CApply (CVar (4,"lt")) (CVar (5,"e"))) (CVar (7,"e2")),CApply (CSymbol ("RedBlackTree","delBalanceL")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (6,"c"))) (CVar (7,"e2"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","deleteTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (5,"e"))) (CVar (8,"l")))) (CVar (9,"r")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("RedBlackTree","delBalanceR")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (6,"c"))) (CVar (7,"e2"))) (CVar (8,"l"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","deleteTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (5,"e"))) (CVar (9,"r")))))] [CLocalFunc (CFunc ("RedBlackTree","addColor") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","Red") [],CPVar (10,"tree")] [(CSymbol ("Prelude","success"),CVar (10,"tree"))] [],CRule [CPComb ("RedBlackTree","Black") [],CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","Empty"))] [],CRule [CPComb ("RedBlackTree","Black") [],CPComb ("RedBlackTree","Tree") [CPComb ("RedBlackTree","Red") [],CPVar (11,"x"),CPVar (12,"lx"),CPVar (13,"rx")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (11,"x"))) (CVar (12,"lx"))) (CVar (13,"rx")))] [],CRule [CPComb ("RedBlackTree","Black") [],CPComb ("RedBlackTree","Tree") [CPComb ("RedBlackTree","Black") [],CPVar (14,"x"),CPVar (15,"lx"),CPVar (16,"rx")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","DoublyBlack"))) (CVar (14,"x"))) (CVar (15,"lx"))) (CVar (16,"rx")))] []])),CLocalFunc (CFunc ("RedBlackTree","rightMost") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","Tree") [CPVar (10,"_"),CPVar (11,"x"),CPVar (12,"_"),CPVar (13,"rx")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (13,"rx"))) (CSymbol ("RedBlackTree","Empty")))) (CVar (11,"x"))) (CApply (CSymbol ("RedBlackTree","rightMost")) (CVar (13,"rx"))))] []]))]]),
+  CFunc ("RedBlackTree","element") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"_"),CPVar (1,"e"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"e"))] []]),
+  CFunc ("RedBlackTree","empty") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"eqInsert"),CPVar (1,"eqLookUp"),CPVar (2,"lessThan")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (0,"eqInsert"))) (CVar (1,"eqLookUp"))) (CVar (2,"lessThan"))) (CSymbol ("RedBlackTree","Empty")))] []]),
+  CFunc ("RedBlackTree","isBlack") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"c"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("RedBlackTree","Black")))] []]),
+  CFunc ("RedBlackTree","isDoublyBlack") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"c"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("RedBlackTree","DoublyBlack")))] []]),
+  CFunc ("RedBlackTree","isEmpty") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("RedBlackTree","Empty") []]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPComb ("RedBlackTree","Tree") [CPVar (6,"_"),CPVar (7,"_"),CPVar (8,"_"),CPVar (9,"_")]]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] []]),
+  CFunc ("RedBlackTree","isRed") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"c"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c"))) (CSymbol ("RedBlackTree","Red")))] []]),
+  CFunc ("RedBlackTree","left") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"l"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"l"))] []]),
+  CFunc ("RedBlackTree","lookup") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPComb ("RedBlackTree","RedBlackTree") [CPVar (1,"_"),CPVar (2,"eqLk"),CPVar (3,"lt"),CPVar (4,"t")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","lookupTree")) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CVar (0,"p"))) (CVar (4,"t")))] []]),
+  CFunc ("RedBlackTree","lookupTree") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("Prelude","Maybe") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPVar (3,"eq"),CPVar (4,"lt"),CPVar (5,"p"),CPComb ("RedBlackTree","Tree") [CPVar (6,"_"),CPVar (7,"e"),CPVar (8,"l"),CPVar (9,"r")]] [(CApply (CApply (CVar (3,"eq")) (CVar (5,"p"))) (CVar (7,"e")),CApply (CSymbol ("Prelude","Just")) (CVar (7,"e"))),(CApply (CApply (CVar (4,"lt")) (CVar (5,"p"))) (CVar (7,"e")),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","lookupTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (5,"p"))) (CVar (8,"l"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","lookupTree")) (CVar (3,"eq"))) (CVar (4,"lt"))) (CVar (5,"p"))) (CVar (9,"r")))] []]),
+  CFunc ("RedBlackTree","newTreeLike") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (0,"eqIns"),CPVar (1,"eqLk"),CPVar (2,"lt"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (0,"eqIns"))) (CVar (1,"eqLk"))) (CVar (2,"lt"))) (CSymbol ("RedBlackTree","Empty")))] []]),
+  CFunc ("RedBlackTree","rbt") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"t")]] [(CSymbol ("Prelude","success"),CVar (3,"t"))] []]),
+  CFunc ("RedBlackTree","reviseLeft") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"tree")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"r"))) (CSymbol ("RedBlackTree","Empty")),CVar (0,"tree")),(CApply (CApply (CSymbol ("Prelude","&&")) (CVar (2,"blackr"))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (1,"r")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (3,"col"),CPVar (4,"x"),CPVar (5,"a"),CPComb ("RedBlackTree","Tree") [CPVar (6,"_"),CPVar (7,"z"),CPComb ("RedBlackTree","Tree") [CPVar (8,"_"),CPVar (9,"y"),CPVar (10,"b"),CPVar (11,"c")],CPVar (12,"d")]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (3,"col"))) (CVar (9,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (4,"x"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (5,"a")))) (CVar (10,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (7,"z"))) (CVar (11,"c"))) (CVar (12,"d"))))),(CApply (CApply (CSymbol ("Prelude","&&")) (CVar (2,"blackr"))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (1,"r")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (13,"col"),CPVar (14,"x"),CPVar (15,"a"),CPComb ("RedBlackTree","Tree") [CPVar (16,"_"),CPVar (17,"y"),CPVar (18,"b"),CPComb ("RedBlackTree","Tree") [CPVar (19,"_"),CPVar (20,"z"),CPVar (21,"c"),CPVar (22,"d")]]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (13,"col"))) (CVar (17,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (14,"x"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (15,"a")))) (CVar (18,"b")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (20,"z"))) (CVar (21,"c"))) (CVar (22,"d"))))),(CVar (2,"blackr"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (23,"col"),CPVar (24,"x"),CPVar (25,"a"),CPComb ("RedBlackTree","Tree") [CPVar (26,"_"),CPVar (27,"y"),CPVar (28,"b"),CPVar (29,"c")]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (23,"col"))) (CSymbol ("RedBlackTree","Red")))) (CSymbol ("RedBlackTree","Black"))) (CSymbol ("RedBlackTree","DoublyBlack")))) (CVar (24,"x"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (25,"a")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (27,"y"))) (CVar (28,"b"))) (CVar (29,"c"))))),(CSymbol ("Prelude","otherwise"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (30,"_"),CPVar (31,"x"),CPVar (32,"a"),CPComb ("RedBlackTree","Tree") [CPVar (33,"_"),CPVar (34,"y"),CPVar (35,"b"),CPVar (36,"c")]]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (34,"y"))) (CApply (CSymbol ("RedBlackTree","reviseLeft")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (31,"x"))) (CVar (32,"a"))) (CVar (35,"b"))))) (CVar (36,"c"))))] [CLocalPat (CPVar (1,"r")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (0,"tree"))) [],CLocalPat (CPVar (2,"blackr")) (CApply (CSymbol ("RedBlackTree","isBlack")) (CVar (1,"r"))) []]]),
+  CFunc ("RedBlackTree","reviseRight") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"tree")] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (1,"l"))) (CSymbol ("RedBlackTree","Empty")),CVar (0,"tree")),(CApply (CApply (CSymbol ("Prelude","&&")) (CVar (2,"blackl"))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (1,"l")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (3,"col"),CPVar (4,"x"),CPComb ("RedBlackTree","Tree") [CPVar (5,"_"),CPVar (6,"y"),CPComb ("RedBlackTree","Tree") [CPVar (7,"_"),CPVar (8,"z"),CPVar (9,"d"),CPVar (10,"c")],CPVar (11,"b")],CPVar (12,"a")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (3,"col"))) (CVar (6,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (8,"z"))) (CVar (9,"d"))) (CVar (10,"c")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (4,"x"))) (CVar (11,"b"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (12,"a")))))),(CApply (CApply (CSymbol ("Prelude","&&")) (CVar (2,"blackl"))) (CApply (CSymbol ("RedBlackTree","isRed")) (CApply (CSymbol ("RedBlackTree","right")) (CVar (1,"l")))),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (13,"col"),CPVar (14,"x"),CPComb ("RedBlackTree","Tree") [CPVar (15,"_"),CPVar (16,"z"),CPVar (17,"d"),CPComb ("RedBlackTree","Tree") [CPVar (18,"_"),CPVar (19,"y"),CPVar (20,"c"),CPVar (21,"b")]],CPVar (22,"a")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (13,"col"))) (CVar (19,"y"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (16,"z"))) (CVar (17,"d"))) (CVar (20,"c")))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (14,"x"))) (CVar (21,"b"))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (22,"a")))))),(CVar (2,"blackl"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (23,"col"),CPVar (24,"x"),CPComb ("RedBlackTree","Tree") [CPVar (25,"_"),CPVar (26,"y"),CPVar (27,"c"),CPVar (28,"b")],CPVar (29,"a")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (23,"col"))) (CSymbol ("RedBlackTree","Red")))) (CSymbol ("RedBlackTree","Black"))) (CSymbol ("RedBlackTree","DoublyBlack")))) (CVar (24,"x"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (26,"y"))) (CVar (27,"c"))) (CVar (28,"b")))) (CApply (CSymbol ("RedBlackTree","singleBlack")) (CVar (29,"a"))))),(CSymbol ("Prelude","otherwise"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (30,"_"),CPVar (31,"x"),CPComb ("RedBlackTree","Tree") [CPVar (32,"_"),CPVar (33,"y"),CPVar (34,"c"),CPVar (35,"b")],CPVar (36,"a")]) (CVar (0,"tree")) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (33,"y"))) (CVar (34,"c"))) (CApply (CSymbol ("RedBlackTree","reviseRight")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (31,"x"))) (CVar (35,"b"))) (CVar (36,"a"))))))] [CLocalPat (CPVar (1,"l")) (CApply (CSymbol ("RedBlackTree","left")) (CVar (0,"tree"))) [],CLocalPat (CPVar (2,"blackl")) (CApply (CSymbol ("RedBlackTree","isBlack")) (CVar (1,"l"))) []]]),
+  CFunc ("RedBlackTree","right") 1 Private (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","Tree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"r")]] [(CSymbol ("Prelude","success"),CVar (3,"r"))] []]),
+  CFunc ("RedBlackTree","setInsertEquivalence") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"eqIns"),CPComb ("RedBlackTree","RedBlackTree") [CPVar (1,"_"),CPVar (2,"eqLk"),CPVar (3,"lt"),CPVar (4,"t")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (0,"eqIns"))) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CVar (4,"t")))] []]),
+  CFunc ("RedBlackTree","singleBlack") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","Empty"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPComb ("RedBlackTree","DoublyBlack") [],CPVar (0,"x"),CPVar (1,"l"),CPVar (2,"r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (0,"x"))) (CVar (1,"l"))) (CVar (2,"r")))] []]),
+  CFunc ("RedBlackTree","sort") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"cmp"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","tree2list")) (CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("RedBlackTree","update"))) (CApply (CApply (CApply (CSymbol ("RedBlackTree","empty")) (CLambda [CPVar (2,"_"),CPVar (3,"_")] (CSymbol ("Prelude","False")))) (CSymbol ("Prelude","=="))) (CVar (0,"cmp")))) (CVar (1,"xs"))))] []]),
+  CFunc ("RedBlackTree","tree2list") 1 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("RedBlackTree","RedBlackTree") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"t")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","tree2listTree")) (CVar (3,"t")))] []]),
+  CFunc ("RedBlackTree","tree2listTree") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"tree")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("RedBlackTree","t2l")) (CVar (0,"tree"))) (CSymbol ("Prelude","[]")))] [CLocalFunc (CFunc ("RedBlackTree","t2l") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") [],CPVar (1,"es")] [(CSymbol ("Prelude","success"),CVar (1,"es"))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (2,"_"),CPVar (3,"e"),CPVar (4,"l"),CPVar (5,"r")],CPVar (6,"es")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("RedBlackTree","t2l")) (CVar (4,"l"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"e"))) (CApply (CApply (CSymbol ("RedBlackTree","t2l")) (CVar (5,"r"))) (CVar (6,"es")))))] []]))]]),
+  CFunc ("RedBlackTree","update") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"e"),CPComb ("RedBlackTree","RedBlackTree") [CPVar (1,"eqIns"),CPVar (2,"eqLk"),CPVar (3,"lt"),CPVar (4,"t")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","RedBlackTree")) (CVar (1,"eqIns"))) (CVar (2,"eqLk"))) (CVar (3,"lt"))) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","updateTree")) (CVar (1,"eqIns"))) (CVar (3,"lt"))) (CVar (0,"e"))) (CVar (4,"t"))))] []]),
+  CFunc ("RedBlackTree","updateTree") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","Tree") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"eq"),CPVar (1,"lt"),CPVar (2,"e"),CPVar (3,"t")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("RedBlackTree","Tree") [CPVar (4,"_"),CPVar (5,"e2"),CPVar (6,"l"),CPVar (7,"r")]) (CApply (CSymbol ("RedBlackTree","upd")) (CVar (3,"t"))) []] (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Black"))) (CVar (5,"e2"))) (CVar (6,"l"))) (CVar (7,"r"))))] [CLocalFunc (CFunc ("RedBlackTree","upd") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("RedBlackTree","Empty") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CSymbol ("RedBlackTree","Red"))) (CVar (2,"e"))) (CSymbol ("RedBlackTree","Empty"))) (CSymbol ("RedBlackTree","Empty")))] [],CRule [CPComb ("RedBlackTree","Tree") [CPVar (4,"c"),CPVar (5,"e2"),CPVar (6,"l"),CPVar (7,"r")]] [(CApply (CApply (CVar (0,"eq")) (CVar (2,"e"))) (CVar (5,"e2")),CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (4,"c"))) (CVar (2,"e"))) (CVar (6,"l"))) (CVar (7,"r"))),(CApply (CApply (CVar (1,"lt")) (CVar (2,"e"))) (CVar (5,"e2")),CApply (CSymbol ("RedBlackTree","balanceL")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (4,"c"))) (CVar (5,"e2"))) (CApply (CSymbol ("RedBlackTree","upd")) (CVar (6,"l")))) (CVar (7,"r")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("RedBlackTree","balanceR")) (CApply (CApply (CApply (CApply (CSymbol ("RedBlackTree","Tree")) (CVar (4,"c"))) (CVar (5,"e2"))) (CVar (6,"l"))) (CApply (CSymbol ("RedBlackTree","upd")) (CVar (7,"r")))))] []]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/SetRBT.acy b/src/lib/Curry/Module/.curry/SetRBT.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/SetRBT.acy
@@ -0,0 +1,13 @@
+CurryProg "SetRBT"
+ ["Prelude","RedBlackTree","Maybe"]
+ [CTypeSyn ("SetRBT","SetRBT") Public [(0,"a")] (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")])]
+ [CFunc ("SetRBT","deleteRBT") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","delete"))] []]),
+  CFunc ("SetRBT","elemRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","isJust"))) (CApply (CSymbol ("RedBlackTree","lookup")) (CVar (0,"e"))))] []]),
+  CFunc ("SetRBT","emptySetRBT") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("RedBlackTree","empty")) (CSymbol ("Prelude","=="))) (CSymbol ("Prelude","==")))] []]),
+  CFunc ("SetRBT","insertMultiRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("RedBlackTree","setInsertEquivalence")) (CSymbol ("Prelude","==")))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("RedBlackTree","update")) (CVar (0,"e")))) (CApply (CSymbol ("RedBlackTree","setInsertEquivalence")) (CLambda [CPVar (1,"_"),CPVar (2,"_")] (CSymbol ("Prelude","False"))))))] []]),
+  CFunc ("SetRBT","insertRBT") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","update"))] []]),
+  CFunc ("SetRBT","intersectRBT") 2 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"s1"),CPVar (1,"s2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("SetRBT","insertRBT"))) (CApply (CSymbol ("RedBlackTree","newTreeLike")) (CVar (0,"s1")))) (CApply (CApply (CSymbol ("Prelude","filter")) (CLambda [CPVar (2,"e")] (CApply (CApply (CSymbol ("SetRBT","elemRBT")) (CVar (2,"e"))) (CVar (1,"s2"))))) (CApply (CSymbol ("SetRBT","setRBT2list")) (CVar (0,"s1")))))] []]),
+  CFunc ("SetRBT","setRBT2list") 0 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","tree2list"))] []]),
+  CFunc ("SetRBT","sortRBT") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","sort"))] []]),
+  CFunc ("SetRBT","unionRBT") 2 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]) (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"s1"),CPVar (1,"s2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("SetRBT","insertRBT"))) (CVar (1,"s2"))) (CApply (CSymbol ("SetRBT","setRBT2list")) (CVar (0,"s1"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/SetRBT.cy b/src/lib/Curry/Module/.curry/SetRBT.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/SetRBT.cy
@@ -0,0 +1,24 @@
+Module "SetRBT"
+Nothing
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (13,1) "RedBlackTree" True (Just "RBT") Nothing)
+,(ImportDecl (14,1) "Maybe" False Nothing (Just (Importing (14,14) [(Import (Ident "isJust" 0))])))
+,(TypeDecl (19,1) (Ident "SetRBT" 0) [(Ident "a" 0)] (ConstructorType (QualIdent (Just "RBT") (Ident "RedBlackTree" 0)) [(VariableType (Ident "a" 0))]))
+,(FunctionDecl (24,1) (Ident "emptySetRBT" 0) [(Equation (24,1) (FunLhs (Ident "emptySetRBT" 0) []) (SimpleRhs (24,15) (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "empty" 0))) (Variable (QualIdent (Just "Prelude") (Ident "==" 0)))) (Variable (QualIdent (Just "Prelude") (Ident "==" 0)))) []))])
+,(TypeSig (30,1) [(Ident "elemRBT" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (31,1) (Ident "elemRBT" 0) [(Equation (31,1) (FunLhs (Ident "elemRBT" 0) [(VariablePattern (Ident "e" 4))]) (SimpleRhs (31,13) (InfixApply (Variable (QualIdent (Just "Maybe") (Ident "isJust" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "lookup" 0))) (Variable (QualIdent Nothing (Ident "e" 4)))))) []))])
+,(TypeSig (34,1) [(Ident "insertRBT" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (35,1) (Ident "insertRBT" 0) [(Equation (35,1) (FunLhs (Ident "insertRBT" 0) []) (SimpleRhs (35,13) (Variable (QualIdent (Just "RedBlackTree") (Ident "update" 0))) []))])
+,(TypeSig (41,1) [(Ident "insertMultiRBT" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (42,1) (Ident "insertMultiRBT" 0) [(Equation (42,1) (FunLhs (Ident "insertMultiRBT" 0) [(VariablePattern (Ident "e" 8))]) (SimpleRhs (42,20) (InfixApply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "setInsertEquivalence" 0))) (Variable (QualIdent (Just "Prelude") (Ident "==" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "update" 0))) (Variable (QualIdent Nothing (Ident "e" 8)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "setInsertEquivalence" 0))) (Paren (Lambda [(VariablePattern (Ident "_" 11)),(VariablePattern (Ident "_" 12))] (Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))))))) []))])
+,(TypeSig (48,1) [(Ident "deleteRBT" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (49,1) (Ident "deleteRBT" 0) [(Equation (49,1) (FunLhs (Ident "deleteRBT" 0) []) (SimpleRhs (49,13) (Variable (QualIdent (Just "RedBlackTree") (Ident "delete" 0))) []))])
+,(TypeSig (52,1) [(Ident "setRBT2list" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ListType (VariableType (Ident "a" 0)))))
+,(FunctionDecl (53,1) (Ident "setRBT2list" 0) [(Equation (53,1) (FunLhs (Ident "setRBT2list" 0) []) (SimpleRhs (53,15) (Variable (QualIdent (Just "RedBlackTree") (Ident "tree2list" 0))) []))])
+,(TypeSig (58,1) [(Ident "unionRBT" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (59,1) (Ident "unionRBT" 0) [(Equation (59,1) (FunLhs (Ident "unionRBT" 0) [(VariablePattern (Ident "s1" 17)),(VariablePattern (Ident "s2" 17))]) (SimpleRhs (59,18) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "SetRBT") (Ident "insertRBT" 0)))) (Variable (QualIdent Nothing (Ident "s2" 17)))) (Paren (Apply (Variable (QualIdent (Just "SetRBT") (Ident "setRBT2list" 0))) (Variable (QualIdent Nothing (Ident "s1" 17)))))) []))])
+,(TypeSig (65,1) [(Ident "intersectRBT" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "SetRBT" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (66,1) (Ident "intersectRBT" 0) [(Equation (66,1) (FunLhs (Ident "intersectRBT" 0) [(VariablePattern (Ident "s1" 19)),(VariablePattern (Ident "s2" 19))]) (SimpleRhs (66,22) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "foldr" 0))) (Variable (QualIdent (Just "SetRBT") (Ident "insertRBT" 0)))) (Paren (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "newTreeLike" 0))) (Variable (QualIdent Nothing (Ident "s1" 19)))))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (Lambda [(VariablePattern (Ident "e" 21))] (Apply (Apply (Variable (QualIdent (Just "SetRBT") (Ident "elemRBT" 0))) (Variable (QualIdent Nothing (Ident "e" 21)))) (Variable (QualIdent Nothing (Ident "s2" 19))))))) (Paren (Apply (Variable (QualIdent (Just "SetRBT") (Ident "setRBT2list" 0))) (Variable (QualIdent Nothing (Ident "s1" 19)))))))) []))])
+,(TypeSig (73,1) [(Ident "sortRBT" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (74,1) (Ident "sortRBT" 0) [(Equation (74,1) (FunLhs (Ident "sortRBT" 0) []) (SimpleRhs (74,11) (Variable (QualIdent (Just "RedBlackTree") (Ident "sort" 0))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/SetRBT.efc b/src/lib/Curry/Module/.curry/SetRBT.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/SetRBT.efc
@@ -0,0 +1,1 @@
+Prog "SetRBT" ["Maybe","Prelude","RedBlackTree"] [TypeSyn ((Nothing,Nothing,"SetRBT","SetRBT")) Public [0] (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0])] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])),"SetRBT","emptySetRBT")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"RedBlackTree","empty")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) []])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","elemRBT")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Maybe","isJust")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))),"RedBlackTree","lookup")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","insertRBT")) 0 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","update")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","insertMultiRBT")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","setInsertEquivalence")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) []],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","update")) [Var ((Just (TVar 0),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","setInsertEquivalence")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","insertMultiRBT._#lambda2")) []]]])),Func ((Nothing,Just (FuncType (TVar 27) (FuncType (TVar 27) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","insertMultiRBT._#lambda2")) 2 Private (FuncType (TVar 27) (FuncType (TVar 27) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 27),1),(Just (TVar 27),2)] (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","deleteRBT")) 0 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","delete")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"SetRBT","setRBT2list")) 0 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"RedBlackTree","tree2list")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","unionRBT")) 2 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude","foldr")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","insertRBT")) [],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"SetRBT","setRBT2list")) [],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","intersectRBT")) 2 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude","foldr")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","insertRBT")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])),"RedBlackTree","newTreeLike")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","filter")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","intersectRBT._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"SetRBT","setRBT2list")) [],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]) (FuncType (TVar 46) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","intersectRBT._#lambda3")) 2 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 46]) (FuncType (TVar 46) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]),1),(Just (TVar 46),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 46) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","elemRBT")) [Var ((Just (TVar 46),2))],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]),1))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"SetRBT","sortRBT")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"RedBlackTree","sort")) []))] []
diff --git a/src/lib/Curry/Module/.curry/SetRBT.fcy b/src/lib/Curry/Module/.curry/SetRBT.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/SetRBT.fcy
@@ -0,0 +1,1 @@
+Prog "SetRBT" ["Maybe","Prelude","RedBlackTree"] [TypeSyn ("SetRBT","SetRBT") Public [0] (TCons ("RedBlackTree","RedBlackTree") [TVar 0])] [Func ("SetRBT","emptySetRBT") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("RedBlackTree","RedBlackTree") [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ("RedBlackTree","empty") [Comb (FuncPartCall 2) ("Prelude","==") [],Comb (FuncPartCall 2) ("Prelude","==") []])),Func ("SetRBT","elemRBT") 1 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Maybe","isJust") [],Comb (FuncPartCall 1) ("RedBlackTree","lookup") [Var 1]])),Func ("SetRBT","insertRBT") 0 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ("RedBlackTree","update") [])),Func ("SetRBT","insertMultiRBT") 1 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("RedBlackTree","setInsertEquivalence") [Comb (FuncPartCall 2) ("Prelude","==") []],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("RedBlackTree","update") [Var 1],Comb (FuncPartCall 1) ("RedBlackTree","setInsertEquivalence") [Comb (FuncPartCall 2) ("SetRBT","insertMultiRBT._#lambda2") []]]])),Func ("SetRBT","insertMultiRBT._#lambda2") 2 Private (FuncType (TVar 27) (FuncType (TVar 27) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb ConsCall ("Prelude","False") [])),Func ("SetRBT","deleteRBT") 0 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ("RedBlackTree","delete") [])),Func ("SetRBT","setRBT2list") 0 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ("RedBlackTree","tree2list") [])),Func ("SetRBT","unionRBT") 2 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb FuncCall ("SetRBT","insertRBT") [],Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("SetRBT","setRBT2list") [],Var 1]])),Func ("SetRBT","intersectRBT") 2 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb FuncCall ("SetRBT","insertRBT") [],Comb FuncCall ("RedBlackTree","newTreeLike") [Var 1],Comb FuncCall ("Prelude","filter") [Comb (FuncPartCall 1) ("SetRBT","intersectRBT._#lambda3") [Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("SetRBT","setRBT2list") [],Var 1]]])),Func ("SetRBT","intersectRBT._#lambda3") 2 Private (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 46]) (FuncType (TVar 46) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("SetRBT","elemRBT") [Var 2],Var 1])),Func ("SetRBT","sortRBT") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ("RedBlackTree","sort") []))] []
diff --git a/src/lib/Curry/Module/.curry/SetRBT.fint b/src/lib/Curry/Module/.curry/SetRBT.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/SetRBT.fint
@@ -0,0 +1,1 @@
+Prog "SetRBT" ["Maybe","Prelude","RedBlackTree"] [TypeSyn ("SetRBT","SetRBT") Public [0] (TCons ("RedBlackTree","RedBlackTree") [TVar 0])] [Func ("SetRBT","emptySetRBT") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("RedBlackTree","RedBlackTree") [TVar 0])) (Rule [] (Var 0)),Func ("SetRBT","elemRBT") 1 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("SetRBT","insertRBT") 0 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Var 0)),Func ("SetRBT","insertMultiRBT") 1 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Var 0)),Func ("SetRBT","deleteRBT") 0 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Var 0)),Func ("SetRBT","setRBT2list") 0 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [] (Var 0)),Func ("SetRBT","unionRBT") 2 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Var 0)),Func ("SetRBT","intersectRBT") 2 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TVar 0]) (TCons ("RedBlackTree","RedBlackTree") [TVar 0]))) (Rule [] (Var 0)),Func ("SetRBT","sortRBT") 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/SetRBT.uacy b/src/lib/Curry/Module/.curry/SetRBT.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/SetRBT.uacy
@@ -0,0 +1,13 @@
+CurryProg "SetRBT"
+ ["Prelude","RedBlackTree","Maybe"]
+ [CTypeSyn ("SetRBT","SetRBT") Public [(0,"a")] (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")])]
+ [CFunc ("SetRBT","deleteRBT") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","delete"))] []]),
+  CFunc ("SetRBT","elemRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","isJust"))) (CApply (CSymbol ("RedBlackTree","lookup")) (CVar (0,"e"))))] []]),
+  CFunc ("SetRBT","emptySetRBT") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("RedBlackTree","empty")) (CSymbol ("Prelude","=="))) (CSymbol ("Prelude","==")))] []]),
+  CFunc ("SetRBT","insertMultiRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("RedBlackTree","setInsertEquivalence")) (CSymbol ("Prelude","==")))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("RedBlackTree","update")) (CVar (0,"e")))) (CApply (CSymbol ("RedBlackTree","setInsertEquivalence")) (CLambda [CPVar (1,"_"),CPVar (2,"_")] (CSymbol ("Prelude","False"))))))] []]),
+  CFunc ("SetRBT","insertRBT") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","update"))] []]),
+  CFunc ("SetRBT","intersectRBT") 2 Public (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"s1"),CPVar (1,"s2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("SetRBT","insertRBT"))) (CApply (CSymbol ("RedBlackTree","newTreeLike")) (CVar (0,"s1")))) (CApply (CApply (CSymbol ("Prelude","filter")) (CLambda [CPVar (2,"e")] (CApply (CApply (CSymbol ("SetRBT","elemRBT")) (CVar (2,"e"))) (CVar (1,"s2"))))) (CApply (CSymbol ("SetRBT","setRBT2list")) (CVar (0,"s1")))))] []]),
+  CFunc ("SetRBT","setRBT2list") 0 Public (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","tree2list"))] []]),
+  CFunc ("SetRBT","sortRBT") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","sort"))] []]),
+  CFunc ("SetRBT","unionRBT") 2 Public (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"s1"),CPVar (1,"s2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("SetRBT","insertRBT"))) (CVar (1,"s2"))) (CApply (CSymbol ("SetRBT","setRBT2list")) (CVar (0,"s1"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Socket.acy b/src/lib/Curry/Module/.curry/Socket.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Socket.acy
@@ -0,0 +1,15 @@
+CurryProg "Socket"
+ ["Prelude","System","IO"]
+ [CType ("Socket","Socket") Public [] []]
+ [CFunc ("Socket","connectToSocket") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CRules CFlex [CRule [CPVar (0,"host"),CPVar (1,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_connectToSocket"))) (CVar (0,"host")))) (CVar (1,"port")))] []]),
+  CFunc ("Socket","listenOn") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Socket","Socket") []])) (CRules CFlex [CRule [CPVar (0,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Socket","prim_listenOn"))) (CVar (0,"port")))] []]),
+  CFunc ("Socket","listenOnFresh") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Socket","Socket") []]]) (CExternal "listenOnFresh"),
+  CFunc ("Socket","prim_connectToSocket") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CExternal "prim_connectToSocket"),
+  CFunc ("Socket","prim_listenOn") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Socket","Socket") []])) (CExternal "prim_listenOn"),
+  CFunc ("Socket","prim_socketAccept") 1 Private (CFuncType (CTCons ("Socket","Socket") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("IO","Handle") []]])) (CExternal "prim_socketAccept"),
+  CFunc ("Socket","prim_socketListen") 2 Private (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_socketListen"),
+  CFunc ("Socket","prim_waitForSocketAccept") 2 Private (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("IO","Handle") []]]]))) (CExternal "prim_waitForSocketAccept"),
+  CFunc ("Socket","socketAccept") 1 Public (CFuncType (CTCons ("Socket","Socket") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("IO","Handle") []]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_socketAccept"))) (CVar (0,"s")))] []]),
+  CFunc ("Socket","socketListen") 2 Public (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"length")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_socketListen"))) (CVar (0,"s")))) (CVar (1,"length")))] []]),
+  CFunc ("Socket","waitForSocketAccept") 2 Public (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("IO","Handle") []]]]))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"timeout")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_waitForSocketAccept"))) (CVar (0,"s")))) (CVar (1,"timeout")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Socket.cy b/src/lib/Curry/Module/.curry/Socket.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Socket.cy
@@ -0,0 +1,29 @@
+Module "Socket"
+(Just (Exporting (12,14) [(Export (QualIdent Nothing (Ident "Socket" 0))),(Export (QualIdent Nothing (Ident "listenOn" 0))),(Export (QualIdent Nothing (Ident "listenOnFresh" 0))),(Export (QualIdent Nothing (Ident "socketListen" 0))),(Export (QualIdent Nothing (Ident "socketAccept" 0))),(Export (QualIdent Nothing (Ident "waitForSocketAccept" 0))),(Export (QualIdent Nothing (Ident "connectToSocket" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (16,1) "System" False Nothing Nothing)
+,(ImportDecl (17,1) "IO" False Nothing (Just (Importing (17,10) [(Import (Ident "Handle" 0))])))
+,(DataDecl (20,1) (Ident "Socket" 0) [] [])
+,(TypeSig (26,1) [(Ident "listenOn" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Socket" 0)) [])])))
+,(FunctionDecl (27,1) (Ident "listenOn" 0) [(Equation (27,1) (FunLhs (Ident "listenOn" 0) [(VariablePattern (Ident "port" 2))]) (SimpleRhs (27,17) (InfixApply (Variable (QualIdent (Just "Socket") (Ident "prim_listenOn" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "port" 2)))) []))])
+,(TypeSig (29,1) [(Ident "prim_listenOn" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Socket" 0)) [])])))
+,(FlatExternalDecl (30,1) [(Ident "prim_listenOn" 0)])
+,(TypeSig (34,1) [(Ident "listenOnFresh" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Socket" 0)) [])])]))
+,(FlatExternalDecl (35,1) [(Ident "listenOnFresh" 0)])
+,(TypeSig (39,1) [(Ident "socketListen" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Socket" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (40,1) (Ident "socketListen" 0) [(Equation (40,1) (FunLhs (Ident "socketListen" 0) [(VariablePattern (Ident "s" 4)),(VariablePattern (Ident "length" 4))]) (SimpleRhs (40,25) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Socket") (Ident "prim_socketListen" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 4))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "length" 4)))) []))])
+,(TypeSig (42,1) [(Ident "prim_socketListen" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Socket" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FlatExternalDecl (43,1) [(Ident "prim_socketListen" 0)])
+,(TypeSig (51,1) [(Ident "socketAccept" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Socket" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])])])))
+,(FunctionDecl (52,1) (Ident "socketAccept" 0) [(Equation (52,1) (FunLhs (Ident "socketAccept" 0) [(VariablePattern (Ident "s" 6))]) (SimpleRhs (52,18) (InfixApply (Variable (QualIdent (Just "Socket") (Ident "prim_socketAccept" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 6)))) []))])
+,(TypeSig (54,1) [(Ident "prim_socketAccept" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Socket" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])])])))
+,(FlatExternalDecl (55,1) [(Ident "prim_socketAccept" 0)])
+,(TypeSig (66,1) [(Ident "waitForSocketAccept" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Socket" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])])])]))))
+,(FunctionDecl (67,1) (Ident "waitForSocketAccept" 0) [(Equation (67,1) (FunLhs (Ident "waitForSocketAccept" 0) [(VariablePattern (Ident "s" 8)),(VariablePattern (Ident "timeout" 8))]) (SimpleRhs (67,33) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Socket") (Ident "prim_waitForSocketAccept" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 8))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "timeout" 8)))) []))])
+,(TypeSig (69,1) [(Ident "prim_waitForSocketAccept" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Socket" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])])])]))))
+,(FlatExternalDecl (70,1) [(Ident "prim_waitForSocketAccept" 0)])
+,(TypeSig (81,1) [(Ident "connectToSocket" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])]))))
+,(FunctionDecl (82,1) (Ident "connectToSocket" 0) [(Equation (82,1) (FunLhs (Ident "connectToSocket" 0) [(VariablePattern (Ident "host" 10)),(VariablePattern (Ident "port" 10))]) (SimpleRhs (82,29) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Socket") (Ident "prim_connectToSocket" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "host" 10))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "port" 10)))) []))])
+,(TypeSig (84,1) [(Ident "prim_connectToSocket" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Handle" 0)) [])]))))
+,(FlatExternalDecl (85,1) [(Ident "prim_connectToSocket" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/Socket.efc b/src/lib/Curry/Module/.curry/Socket.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Socket.efc
@@ -0,0 +1,1 @@
+Prog "Socket" ["IO","Prelude","System"] [Type ((Nothing,Nothing,"Socket","Socket")) Public [] []] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Socket","Socket") []])),"Socket","listenOn")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Socket","Socket")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Socket","Socket") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Socket","Socket") []]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Socket","Socket") []])),"Socket","prim_listenOn")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Socket","Socket") []])),"Socket","prim_listenOn")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Socket","Socket")) []])) (External "Socket.prim_listenOn"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Int") [],TCons (Nothing,Nothing,"Socket","Socket") []]]),"Socket","listenOnFresh")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Socket","Socket")) []]]) (External "Socket.listenOnFresh"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Socket","socketListen")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Socket","Socket")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Socket","Socket") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))) (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Socket","prim_socketListen")) [],Var ((Just (TCons (Nothing,Nothing,"Socket","Socket") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Socket","prim_socketListen")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Socket","Socket")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (External "Socket.prim_socketListen"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]])),"Socket","socketAccept")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Socket","Socket")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"IO","Handle")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Socket","Socket") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]])) (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]])),"Socket","prim_socketAccept")) [],Var ((Just (TCons (Nothing,Nothing,"Socket","Socket") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]])),"Socket","prim_socketAccept")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Socket","Socket")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"IO","Handle")) []]])) (External "Socket.prim_socketAccept"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]]]))),"Socket","waitForSocketAccept")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Socket","Socket")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"IO","Handle")) []]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Socket","Socket") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]]]))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]]]))) (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]]])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]]]))),"Socket","prim_waitForSocketAccept")) [],Var ((Just (TCons (Nothing,Nothing,"Socket","Socket") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Socket","Socket") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"IO","Handle") []]]]))),"Socket","prim_waitForSocketAccept")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Socket","Socket")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"IO","Handle")) []]]]))) (External "Socket.prim_waitForSocketAccept"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"Socket","connectToSocket")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"IO","Handle")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"Prelude","$#")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"Socket","prim_connectToSocket")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IO","Handle") []]))),"Socket","prim_connectToSocket")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"IO","Handle")) []]))) (External "Socket.prim_connectToSocket")] []
diff --git a/src/lib/Curry/Module/.curry/Socket.fcy b/src/lib/Curry/Module/.curry/Socket.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Socket.fcy
@@ -0,0 +1,1 @@
+Prog "Socket" ["IO","Prelude","System"] [Type ("Socket","Socket") Public [] []] [Func ("Socket","listenOn") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Socket","Socket") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Socket","prim_listenOn") [],Var 1])),Func ("Socket","prim_listenOn") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Socket","Socket") []])) (External "Socket.prim_listenOn"),Func ("Socket","listenOnFresh") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Socket","Socket") []]]) (External "Socket.listenOnFresh"),Func ("Socket","socketListen") 2 Public (FuncType (TCons ("Socket","Socket") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("Socket","prim_socketListen") [],Var 1],Var 2])),Func ("Socket","prim_socketListen") 2 Private (FuncType (TCons ("Socket","Socket") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (External "Socket.prim_socketListen"),Func ("Socket","socketAccept") 1 Public (FuncType (TCons ("Socket","Socket") []) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("IO","Handle") []]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Socket","prim_socketAccept") [],Var 1])),Func ("Socket","prim_socketAccept") 1 Private (FuncType (TCons ("Socket","Socket") []) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("IO","Handle") []]])) (External "Socket.prim_socketAccept"),Func ("Socket","waitForSocketAccept") 2 Public (FuncType (TCons ("Socket","Socket") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("IO","Handle") []]]]))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("Socket","prim_waitForSocketAccept") [],Var 1],Var 2])),Func ("Socket","prim_waitForSocketAccept") 2 Private (FuncType (TCons ("Socket","Socket") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("IO","Handle") []]]]))) (External "Socket.prim_waitForSocketAccept"),Func ("Socket","connectToSocket") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$#") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("Socket","prim_connectToSocket") [],Var 1],Var 2])),Func ("Socket","prim_connectToSocket") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))) (External "Socket.prim_connectToSocket")] []
diff --git a/src/lib/Curry/Module/.curry/Socket.fint b/src/lib/Curry/Module/.curry/Socket.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Socket.fint
@@ -0,0 +1,1 @@
+Prog "Socket" ["IO","Prelude","System"] [Type ("Socket","Socket") Public [] []] [Func ("Socket","listenOn") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Socket","Socket") []])) (Rule [] (Var 0)),Func ("Socket","listenOnFresh") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Socket","Socket") []]]) (External "Socket.listenOnFresh"),Func ("Socket","socketListen") 2 Public (FuncType (TCons ("Socket","Socket") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("Socket","socketAccept") 1 Public (FuncType (TCons ("Socket","Socket") []) (TCons ("Prelude","IO") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("IO","Handle") []]])) (Rule [] (Var 0)),Func ("Socket","waitForSocketAccept") 2 Public (FuncType (TCons ("Socket","Socket") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("IO","Handle") []]]]))) (Rule [] (Var 0)),Func ("Socket","connectToSocket") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("IO","Handle") []]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Socket.uacy b/src/lib/Curry/Module/.curry/Socket.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Socket.uacy
@@ -0,0 +1,15 @@
+CurryProg "Socket"
+ ["Prelude","System","IO"]
+ [CType ("Socket","Socket") Public [] []]
+ [CFunc ("Socket","connectToSocket") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CRules CFlex [CRule [CPVar (0,"host"),CPVar (1,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_connectToSocket"))) (CVar (0,"host")))) (CVar (1,"port")))] []]),
+  CFunc ("Socket","listenOn") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Socket","Socket") []])) (CRules CFlex [CRule [CPVar (0,"port")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Socket","prim_listenOn"))) (CVar (0,"port")))] []]),
+  CFunc ("Socket","listenOnFresh") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","Int") [],CTCons ("Socket","Socket") []]]) (CExternal "listenOnFresh"),
+  CFunc ("Socket","prim_connectToSocket") 2 Private (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("IO","Handle") []]))) (CExternal "prim_connectToSocket"),
+  CFunc ("Socket","prim_listenOn") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Socket","Socket") []])) (CExternal "prim_listenOn"),
+  CFunc ("Socket","prim_socketAccept") 1 Private (CFuncType (CTCons ("Socket","Socket") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("IO","Handle") []]])) (CExternal "prim_socketAccept"),
+  CFunc ("Socket","prim_socketListen") 2 Private (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CExternal "prim_socketListen"),
+  CFunc ("Socket","prim_waitForSocketAccept") 2 Private (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("IO","Handle") []]]]))) (CExternal "prim_waitForSocketAccept"),
+  CFunc ("Socket","socketAccept") 1 Public (CFuncType (CTCons ("Socket","Socket") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("IO","Handle") []]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_socketAccept"))) (CVar (0,"s")))] []]),
+  CFunc ("Socket","socketListen") 2 Public (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"length")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_socketListen"))) (CVar (0,"s")))) (CVar (1,"length")))] []]),
+  CFunc ("Socket","waitForSocketAccept") 2 Public (CFuncType (CTCons ("Socket","Socket") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("IO","Handle") []]]]))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"timeout")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Socket","prim_waitForSocketAccept"))) (CVar (0,"s")))) (CVar (1,"timeout")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Sort.acy b/src/lib/Curry/Module/.curry/Sort.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Sort.acy
@@ -0,0 +1,16 @@
+CurryProg "Sort"
+ ["Prelude","Char"]
+ []
+ [CFunc ("Sort","cmpChar") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c1"))) (CVar (1,"c2")))) (CSymbol ("Prelude","EQ"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c1")))) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c2"))))) (CSymbol ("Prelude","LT"))) (CSymbol ("Prelude","GT"))))] []]),
+  CFunc ("Sort","cmpList") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Ordering") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Ordering") [])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","EQ"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPVar (4,"_"),CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPVar (7,"cmp"),CPComb ("Prelude",":") [CPVar (8,"x"),CPVar (9,"xs")],CPComb ("Prelude",":") [CPVar (10,"y"),CPVar (11,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CVar (7,"cmp")) (CVar (8,"x"))) (CVar (10,"y")))) (CSymbol ("Prelude","EQ")),CApply (CApply (CApply (CSymbol ("Sort","cmpList")) (CVar (7,"cmp"))) (CVar (9,"xs"))) (CVar (11,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (7,"cmp")) (CVar (8,"x"))) (CVar (10,"y")))] []]),
+  CFunc ("Sort","cmpString") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","cmpList")) (CSymbol ("Sort","cmpChar")))] []]),
+  CFunc ("Sort","leqChar") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c1")))) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c2"))))] []]),
+  CFunc ("Sort","leqCharIgnoreCase") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CApply (CSymbol ("Char","toUpper")) (CVar (0,"c1"))))) (CApply (CSymbol ("Prelude","ord")) (CApply (CSymbol ("Char","toUpper")) (CVar (1,"c2")))))] []]),
+  CFunc ("Sort","leqLexGerman") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude",":") [CPVar (5,"y"),CPVar (6,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"x'"))) (CVar (8,"y'")),CApply (CApply (CSymbol ("Sort","leqLexGerman")) (CVar (4,"xs"))) (CVar (6,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","<")) (CVar (7,"x'"))) (CVar (8,"y'")))] [CLocalPat (CPVar (7,"x'")) (CApply (CSymbol ("Sort","glex")) (CApply (CSymbol ("Prelude","ord")) (CVar (3,"x")))) [],CLocalPat (CPVar (8,"y'")) (CApply (CSymbol ("Sort","glex")) (CApply (CSymbol ("Prelude","ord")) (CVar (5,"y")))) [],CLocalFunc (CFunc ("Sort","glex") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (9,"o")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (9,"o"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (9,"o"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'Z')))),CApply (CApply (CSymbol ("Prelude","+")) (CVar (9,"o"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a')))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 228)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 246)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'o'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 252)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'u'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 196)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 214)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'o'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 220)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'u'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 223)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 's'))),(CSymbol ("Prelude","otherwise"),CVar (9,"o"))] []]))]]),
+  CFunc ("Sort","leqList") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"_"),CPVar (4,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPVar (5,"leq"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPComb ("Prelude",":") [CPVar (8,"y"),CPVar (9,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CVar (8,"y")),CApply (CApply (CApply (CSymbol ("Sort","leqList")) (CVar (5,"leq"))) (CVar (7,"xs"))) (CVar (9,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (5,"leq")) (CVar (6,"x"))) (CVar (8,"y")))] []]),
+  CFunc ("Sort","leqString") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqChar")))] []]),
+  CFunc ("Sort","leqStringIgnoreCase") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqCharIgnoreCase")))] []]),
+  CFunc ("Sort","merge") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CVar (1,"ys"))] [],CRule [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x"))) (CVar (4,"xs")))] [],CRule [CPVar (5,"leq"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPComb ("Prelude",":") [CPVar (8,"y"),CPVar (9,"ys")]] [(CApply (CApply (CVar (5,"leq")) (CVar (6,"x"))) (CVar (8,"y")),CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (5,"leq"))) (CVar (7,"xs"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (8,"y"))) (CVar (9,"ys"))))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (8,"y"))) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (5,"leq"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (7,"xs")))) (CVar (9,"ys"))))] []]),
+  CFunc ("Sort","mergeSort") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"leq"),CPVar (1,"zs")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","mergeLists")) (CApply (CSymbol ("Sort","genRuns")) (CVar (1,"zs"))))] [CLocalFunc (CFunc ("Sort","genRuns") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"_79")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (1,"_79")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CApply (CApply (CVar (0,"leq")) (CVar (3,"x1"))) (CVar (4,"x2")),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x1"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x2"))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Sort","genRuns")) (CVar (5,"xs")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x2"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x1"))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Sort","genRuns")) (CVar (5,"xs"))))] []])),CLocalFunc (CFunc ("Sort","mergeLists") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (1,"_79")]]) (CTCons ("Prelude","[]") [CTVar (1,"_79")])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (2,"x"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","mergeLists")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (0,"leq"))) (CVar (3,"x1"))) (CVar (4,"x2")))) (CApply (CSymbol ("Sort","mergePairs")) (CVar (5,"xs")))))] []])),CLocalFunc (CFunc ("Sort","mergePairs") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (1,"_79")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTVar (1,"_79")]])) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (0,"leq"))) (CVar (3,"x1"))) (CVar (4,"x2")))) (CApply (CSymbol ("Sort","mergePairs")) (CVar (5,"xs"))))] []]))]]),
+  CFunc ("Sort","quickSort") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"leq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"l"),CPVar (5,"r")]) (CApply (CApply (CSymbol ("Sort","split")) (CVar (2,"x"))) (CVar (3,"xs"))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Sort","quickSort")) (CVar (1,"leq"))) (CVar (4,"l")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Sort","quickSort")) (CVar (1,"leq"))) (CVar (5,"r"))))))] [CLocalFunc (CFunc ("Sort","split") 2 Private (CFuncType (CTVar (1,"_8")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"_8")]) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"_8")],CTCons ("Prelude","[]") [CTVar (1,"_8")]]))) (CRules CFlex [CRule [CPVar (4,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (5,"e"),CPComb ("Prelude",":") [CPVar (6,"y"),CPVar (7,"ys")]] [(CApply (CApply (CVar (1,"leq")) (CVar (6,"y"))) (CVar (5,"e")),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"y"))) (CVar (8,"l")))) (CVar (9,"r"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (8,"l"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"y"))) (CVar (9,"r"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (8,"l"),CPVar (9,"r")]) (CApply (CApply (CSymbol ("Sort","split")) (CVar (5,"e"))) (CVar (7,"ys"))) []]]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Sort.cy b/src/lib/Curry/Module/.curry/Sort.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Sort.cy
@@ -0,0 +1,29 @@
+Module "Sort"
+(Just (Exporting (9,12) [(Export (QualIdent Nothing (Ident "quickSort" 0))),(Export (QualIdent Nothing (Ident "mergeSort" 0))),(Export (QualIdent Nothing (Ident "cmpChar" 0))),(Export (QualIdent Nothing (Ident "cmpList" 0))),(Export (QualIdent Nothing (Ident "cmpString" 0))),(Export (QualIdent Nothing (Ident "leqChar" 0))),(Export (QualIdent Nothing (Ident "leqCharIgnoreCase" 0))),(Export (QualIdent Nothing (Ident "leqList" 0))),(Export (QualIdent Nothing (Ident "leqString" 0))),(Export (QualIdent Nothing (Ident "leqStringIgnoreCase" 0))),(Export (QualIdent Nothing (Ident "leqLexGerman" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (14,1) "Char" False Nothing Nothing)
+,(TypeSig (17,1) [(Ident "quickSort" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (18,1) (Ident "quickSort" 0) [(Equation (18,1) (FunLhs (Ident "quickSort" 0) [(VariablePattern (Ident "_" 3)),(ListPattern [])]) (SimpleRhs (18,24) (List []) [])),(Equation (19,1) (FunLhs (Ident "quickSort" 0) [(VariablePattern (Ident "leq" 5)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 5)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 5))))]) (SimpleRhs (19,24) (Let [(PatternDecl (19,28) (TuplePattern [(VariablePattern (Ident "l" 13)),(VariablePattern (Ident "r" 13))]) (SimpleRhs (19,36) (Apply (Apply (Variable (QualIdent Nothing (Ident "split" 6))) (Variable (QualIdent Nothing (Ident "x" 5)))) (Variable (QualIdent Nothing (Ident "xs" 5)))) []))] (InfixApply (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "quickSort" 0))) (Variable (QualIdent Nothing (Ident "leq" 5)))) (Variable (QualIdent Nothing (Ident "l" 13)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 5))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "quickSort" 0))) (Variable (QualIdent Nothing (Ident "leq" 5)))) (Variable (QualIdent Nothing (Ident "r" 13)))))))) [(FunctionDecl (22,3) (Ident "split" 6) [(Equation (22,3) (FunLhs (Ident "split" 6) [(VariablePattern (Ident "_" 8)),(ListPattern [])]) (SimpleRhs (22,16) (Tuple [(List []),(List [])]) [])),(Equation (23,3) (FunLhs (Ident "split" 6) [(VariablePattern (Ident "e" 10)),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 10)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 10))))]) (GuardedRhs [(CondExpr (23,18) (Apply (Apply (Variable (QualIdent Nothing (Ident "leq" 5))) (Variable (QualIdent Nothing (Ident "y" 10)))) (Variable (QualIdent Nothing (Ident "e" 10)))) (Tuple [(InfixApply (Variable (QualIdent Nothing (Ident "y" 10))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "l" 11)))),(Variable (QualIdent Nothing (Ident "r" 11)))])),(CondExpr (24,18) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "l" 11))),(InfixApply (Variable (QualIdent Nothing (Ident "y" 10))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "r" 11))))]))] [(PatternDecl (25,21) (TuplePattern [(VariablePattern (Ident "l" 11)),(VariablePattern (Ident "r" 11))]) (SimpleRhs (25,29) (Apply (Apply (Variable (QualIdent Nothing (Ident "split" 6))) (Variable (QualIdent Nothing (Ident "e" 10)))) (Variable (QualIdent Nothing (Ident "ys" 10)))) []))]))])]))])
+,(TypeSig (29,1) [(Ident "mergeSort" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (30,1) (Ident "mergeSort" 0) [(Equation (30,1) (FunLhs (Ident "mergeSort" 0) [(VariablePattern (Ident "leq" 15)),(VariablePattern (Ident "zs" 15))]) (SimpleRhs (30,21) (Apply (Variable (QualIdent Nothing (Ident "mergeLists" 16))) (Paren (Apply (Variable (QualIdent Nothing (Ident "genRuns" 16))) (Variable (QualIdent Nothing (Ident "zs" 15)))))) [(FunctionDecl (33,3) (Ident "genRuns" 16) [(Equation (33,3) (FunLhs (Ident "genRuns" 16) [(ListPattern [])]) (SimpleRhs (33,31) (List []) [])),(Equation (34,3) (FunLhs (Ident "genRuns" 16) [(ListPattern [(VariablePattern (Ident "x" 19))])]) (SimpleRhs (34,31) (List [(List [(Variable (QualIdent Nothing (Ident "x" 19)))])]) [])),(Equation (35,3) (FunLhs (Ident "genRuns" 16) [(ParenPattern (InfixPattern (VariablePattern (Ident "x1" 21)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "x2" 21)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 21)))))]) (GuardedRhs [(CondExpr (35,22) (Apply (Apply (Variable (QualIdent Nothing (Ident "leq" 15))) (Variable (QualIdent Nothing (Ident "x1" 21)))) (Variable (QualIdent Nothing (Ident "x2" 21)))) (InfixApply (List [(Variable (QualIdent Nothing (Ident "x1" 21))),(Variable (QualIdent Nothing (Ident "x2" 21)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "genRuns" 16))) (Variable (QualIdent Nothing (Ident "xs" 21)))))),(CondExpr (36,22) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (InfixApply (List [(Variable (QualIdent Nothing (Ident "x2" 21))),(Variable (QualIdent Nothing (Ident "x1" 21)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "genRuns" 16))) (Variable (QualIdent Nothing (Ident "xs" 21))))))] []))]),(FunctionDecl (39,3) (Ident "mergeLists" 16) [(Equation (39,3) (FunLhs (Ident "mergeLists" 16) [(ListPattern [])]) (SimpleRhs (39,28) (List []) [])),(Equation (40,3) (FunLhs (Ident "mergeLists" 16) [(ListPattern [(VariablePattern (Ident "x" 25))])]) (SimpleRhs (40,28) (Variable (QualIdent Nothing (Ident "x" 25))) [])),(Equation (41,3) (FunLhs (Ident "mergeLists" 16) [(ParenPattern (InfixPattern (VariablePattern (Ident "x1" 27)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "x2" 27)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 27)))))]) (SimpleRhs (41,28) (Apply (Variable (QualIdent Nothing (Ident "mergeLists" 16))) (Paren (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "merge" 0))) (Variable (QualIdent Nothing (Ident "leq" 15)))) (Variable (QualIdent Nothing (Ident "x1" 27)))) (Variable (QualIdent Nothing (Ident "x2" 27)))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "mergePairs" 16))) (Variable (QualIdent Nothing (Ident "xs" 27))))))) []))]),(FunctionDecl (43,3) (Ident "mergePairs" 16) [(Equation (43,3) (FunLhs (Ident "mergePairs" 16) [(ListPattern [])]) (SimpleRhs (43,28) (List []) [])),(Equation (44,3) (FunLhs (Ident "mergePairs" 16) [(ListPattern [(VariablePattern (Ident "x" 31))])]) (SimpleRhs (44,28) (List [(Variable (QualIdent Nothing (Ident "x" 31)))]) [])),(Equation (45,3) (FunLhs (Ident "mergePairs" 16) [(ParenPattern (InfixPattern (VariablePattern (Ident "x1" 33)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "x2" 33)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 33)))))]) (SimpleRhs (45,28) (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "merge" 0))) (Variable (QualIdent Nothing (Ident "leq" 15)))) (Variable (QualIdent Nothing (Ident "x1" 33)))) (Variable (QualIdent Nothing (Ident "x2" 33)))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Variable (QualIdent Nothing (Ident "mergePairs" 16))) (Variable (QualIdent Nothing (Ident "xs" 33))))) []))])]))])
+,(TypeSig (50,1) [(Ident "merge" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))))
+,(FunctionDecl (51,1) (Ident "merge" 0) [(Equation (51,1) (FunLhs (Ident "merge" 0) [(VariablePattern (Ident "_" 36)),(ListPattern []),(VariablePattern (Ident "ys" 35))]) (SimpleRhs (51,23) (Variable (QualIdent Nothing (Ident "ys" 35))) [])),(Equation (52,1) (FunLhs (Ident "merge" 0) [(VariablePattern (Ident "_" 39)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 38)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 38)))),(ListPattern [])]) (SimpleRhs (52,23) (InfixApply (Variable (QualIdent Nothing (Ident "x" 38))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 38)))) [])),(Equation (53,1) (FunLhs (Ident "merge" 0) [(VariablePattern (Ident "leq" 41)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 41)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 41)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 41)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 41))))]) (GuardedRhs [(CondExpr (53,25) (Apply (Apply (Variable (QualIdent Nothing (Ident "leq" 41))) (Variable (QualIdent Nothing (Ident "x" 41)))) (Variable (QualIdent Nothing (Ident "y" 41)))) (InfixApply (Variable (QualIdent Nothing (Ident "x" 41))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "merge" 0))) (Variable (QualIdent Nothing (Ident "leq" 41)))) (Variable (QualIdent Nothing (Ident "xs" 41)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 41))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "ys" 41)))))))),(CondExpr (54,25) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "y" 41))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "merge" 0))) (Variable (QualIdent Nothing (Ident "leq" 41)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "x" 41))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "xs" 41)))))) (Variable (QualIdent Nothing (Ident "ys" 41))))))] []))])
+,(TypeSig (61,1) [(Ident "leqList" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))))
+,(FunctionDecl (62,1) (Ident "leqList" 0) [(Equation (62,1) (FunLhs (Ident "leqList" 0) [(VariablePattern (Ident "_" 44)),(ListPattern []),(VariablePattern (Ident "_" 45))]) (SimpleRhs (62,29) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (63,1) (FunLhs (Ident "leqList" 0) [(VariablePattern (Ident "_" 48)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 49)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 50)))),(ListPattern [])]) (SimpleRhs (63,29) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (64,1) (FunLhs (Ident "leqList" 0) [(VariablePattern (Ident "leq" 52)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 52)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 52)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 52)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 52))))]) (GuardedRhs [(CondExpr (64,27) (InfixApply (Variable (QualIdent Nothing (Ident "x" 52))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "y" 52)))) (Apply (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "leqList" 0))) (Variable (QualIdent Nothing (Ident "leq" 52)))) (Variable (QualIdent Nothing (Ident "xs" 52)))) (Variable (QualIdent Nothing (Ident "ys" 52))))),(CondExpr (65,27) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "leq" 52))) (Variable (QualIdent Nothing (Ident "x" 52)))) (Variable (QualIdent Nothing (Ident "y" 52)))))] []))])
+,(TypeSig (68,1) [(Ident "cmpList" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ArrowType (ListType (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) [])))))
+,(FunctionDecl (69,1) (Ident "cmpList" 0) [(Equation (69,1) (FunLhs (Ident "cmpList" 0) [(VariablePattern (Ident "_" 55)),(ListPattern []),(ListPattern [])]) (SimpleRhs (69,29) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0))) [])),(Equation (70,1) (FunLhs (Ident "cmpList" 0) [(VariablePattern (Ident "_" 58)),(ListPattern []),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 59)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 60))))]) (SimpleRhs (70,29) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) [])),(Equation (71,1) (FunLhs (Ident "cmpList" 0) [(VariablePattern (Ident "_" 63)),(ParenPattern (InfixPattern (VariablePattern (Ident "_" 64)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 65)))),(ListPattern [])]) (SimpleRhs (71,29) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))) [])),(Equation (72,1) (FunLhs (Ident "cmpList" 0) [(VariablePattern (Ident "cmp" 67)),(ParenPattern (InfixPattern (VariablePattern (Ident "x" 67)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 67)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 67)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 67))))]) (GuardedRhs [(CondExpr (72,27) (InfixApply (Apply (Apply (Variable (QualIdent Nothing (Ident "cmp" 67))) (Variable (QualIdent Nothing (Ident "x" 67)))) (Variable (QualIdent Nothing (Ident "y" 67)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0)))) (Apply (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "cmpList" 0))) (Variable (QualIdent Nothing (Ident "cmp" 67)))) (Variable (QualIdent Nothing (Ident "xs" 67)))) (Variable (QualIdent Nothing (Ident "ys" 67))))),(CondExpr (73,27) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "cmp" 67))) (Variable (QualIdent Nothing (Ident "x" 67)))) (Variable (QualIdent Nothing (Ident "y" 67)))))] []))])
+,(TypeSig (76,1) [(Ident "leqChar" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (77,1) (Ident "leqChar" 0) [(Equation (77,1) (FunLhs (Ident "leqChar" 0) [(VariablePattern (Ident "c1" 69)),(VariablePattern (Ident "c2" 69))]) (SimpleRhs (77,17) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c1" 69)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c2" 69))))) []))])
+,(TypeSig (80,1) [(Ident "cmpChar" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (81,1) (Ident "cmpChar" 0) [(Equation (81,1) (FunLhs (Ident "cmpChar" 0) [(VariablePattern (Ident "c1" 71)),(VariablePattern (Ident "c2" 71))]) (SimpleRhs (81,17) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "c1" 71))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "c2" 71)))) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0))) (IfThenElse (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c1" 71)))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "c2" 71))))) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0))))) []))])
+,(TypeSig (84,1) [(Ident "leqCharIgnoreCase" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (85,1) (Ident "leqCharIgnoreCase" 0) [(Equation (85,1) (FunLhs (Ident "leqCharIgnoreCase" 0) [(VariablePattern (Ident "c1" 73)),(VariablePattern (Ident "c2" 73))]) (SimpleRhs (85,27) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Paren (Apply (Variable (QualIdent (Just "Char") (Ident "toUpper" 0))) (Variable (QualIdent Nothing (Ident "c1" 73)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Paren (Apply (Variable (QualIdent (Just "Char") (Ident "toUpper" 0))) (Variable (QualIdent Nothing (Ident "c2" 73))))))) []))])
+,(TypeSig (88,1) [(Ident "leqString" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (89,1) (Ident "leqString" 0) [(Equation (89,1) (FunLhs (Ident "leqString" 0) []) (SimpleRhs (89,13) (Apply (Variable (QualIdent (Just "Sort") (Ident "leqList" 0))) (Variable (QualIdent (Just "Sort") (Ident "leqChar" 0)))) []))])
+,(TypeSig (92,1) [(Ident "cmpString" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (93,1) (Ident "cmpString" 0) [(Equation (93,1) (FunLhs (Ident "cmpString" 0) []) (SimpleRhs (93,13) (Apply (Variable (QualIdent (Just "Sort") (Ident "cmpList" 0))) (Variable (QualIdent (Just "Sort") (Ident "cmpChar" 0)))) []))])
+,(TypeSig (96,1) [(Ident "leqStringIgnoreCase" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (97,1) (Ident "leqStringIgnoreCase" 0) [(Equation (97,1) (FunLhs (Ident "leqStringIgnoreCase" 0) []) (SimpleRhs (97,23) (Apply (Variable (QualIdent (Just "Sort") (Ident "leqList" 0))) (Variable (QualIdent (Just "Sort") (Ident "leqCharIgnoreCase" 0)))) []))])
+,(TypeSig (102,1) [(Ident "leqLexGerman" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (103,1) (Ident "leqLexGerman" 0) [(Equation (103,1) (FunLhs (Ident "leqLexGerman" 0) [(ListPattern []),(VariablePattern (Ident "_" 82))]) (SimpleRhs (103,25) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0))) [])),(Equation (104,1) (FunLhs (Ident "leqLexGerman" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "_" 85)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 86)))),(ListPattern [])]) (SimpleRhs (104,25) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0))) [])),(Equation (105,1) (FunLhs (Ident "leqLexGerman" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 88)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 88)))),(ParenPattern (InfixPattern (VariablePattern (Ident "y" 88)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "ys" 88))))]) (GuardedRhs [(CondExpr (105,28) (InfixApply (Variable (QualIdent Nothing (Ident "x'" 89))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Variable (QualIdent Nothing (Ident "y'" 89)))) (Apply (Apply (Variable (QualIdent (Just "Sort") (Ident "leqLexGerman" 0))) (Variable (QualIdent Nothing (Ident "xs" 88)))) (Variable (QualIdent Nothing (Ident "ys" 88))))),(CondExpr (106,28) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "x'" 89))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "y'" 89)))))] [(PatternDecl (108,5) (VariablePattern (Ident "x'" 89)) (SimpleRhs (108,10) (Apply (Variable (QualIdent Nothing (Ident "glex" 89))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "x" 88)))))) [])),(PatternDecl (109,5) (VariablePattern (Ident "y'" 89)) (SimpleRhs (109,10) (Apply (Variable (QualIdent Nothing (Ident "glex" 89))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "y" 88)))))) [])),(FunctionDecl (111,5) (Ident "glex" 89) [(Equation (111,5) (FunLhs (Ident "glex" 89) [(VariablePattern (Ident "o" 92))]) (GuardedRhs [(CondExpr (111,12) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident ">=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A')))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'Z'))))) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a'))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'A'))))))),(CondExpr (112,12) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 94) 228))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a')))),(CondExpr (113,12) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 95) 246))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'o')))),(CondExpr (114,12) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 96) 252))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'u')))),(CondExpr (115,12) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 97) 196))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'a')))),(CondExpr (116,12) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 98) 214))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'o')))),(CondExpr (117,12) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 99) 220))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 'u')))),(CondExpr (118,12) (InfixApply (Variable (QualIdent Nothing (Ident "o" 92))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 100) 223))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char 's')))),(CondExpr (119,12) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Variable (QualIdent Nothing (Ident "o" 92))))] []))])]))])
+]
diff --git a/src/lib/Curry/Module/.curry/Sort.efc b/src/lib/Curry/Module/.curry/Sort.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Sort.efc
@@ -0,0 +1,1 @@
+Prog "Sort" ["Char","Prelude"] [] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Sort","quickSort")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)]) (Let [((Just (TVar 13),5),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 15) (FuncType (TVar 15) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 15) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 15],TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]])))),"Sort","quickSort.split.6")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 16],TCons (Nothing,Nothing,"Prelude","[]") [TVar 16]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 16])),"Sort","quickSort._#selFP6#l")) [Var ((Just (TVar 13),5))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 17],TCons (Nothing,Nothing,"Prelude","[]") [TVar 17]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 17])),"Sort","quickSort._#selFP7#r")) [Var ((Just (TVar 13),5))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Sort","quickSort")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Sort","quickSort")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))]]]))))])),Func ((Nothing,Just (FuncType (FuncType (TVar 8) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 8) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]])))),"Sort","quickSort.split.6")) 3 Private (FuncType (FuncType (TVar 8) (FuncType (TVar 8) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TVar 8) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8]) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8]])))) (Rule [(Just (FuncType (TVar 8) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TVar 8),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 18) (FuncType (TVar 19) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 18),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TVar 19),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TVar 8) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]))),"Prelude",":")) [(Just (TVar 8),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),5)]) (Let [((Just (TVar 15),6),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 21) (FuncType (TVar 21) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 21) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 21]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 21],TCons (Nothing,Nothing,"Prelude","[]") [TVar 21]])))),"Sort","quickSort.split.6")) [Var ((Just (FuncType (TVar 8) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 8),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),5))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 22],TCons (Nothing,Nothing,"Prelude","[]") [TVar 22]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 22])),"Sort","quickSort.split.6._#selFP3#l")) [Var ((Just (TVar 15),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 23],TCons (Nothing,Nothing,"Prelude","[]") [TVar 23]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 23])),"Sort","quickSort.split.6._#selFP4#r")) [Var ((Just (TVar 15),6))])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 8) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 8) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 8) (FuncType (TVar 8) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 8),4))],Var ((Just (TVar 8),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 8) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]))),"Prelude",":")) [Var ((Just (TVar 8),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),7))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]))),"Prelude","(,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),7)),Comb ConsCall ((Nothing,Just (FuncType (TVar 8) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]))),"Prelude",":")) [Var ((Just (TVar 8),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),8))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),"Prelude","failed")) [])])]))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8])),"Sort","quickSort.split.6._#selFP3#l")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (FuncType (TVar 11) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),2),(Just (TVar 11),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8])),"Sort","quickSort.split.6._#selFP4#r")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 10) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]))),"Prelude","(,)")) [(Just (TVar 10),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8])),"Sort","quickSort._#selFP6#l")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (FuncType (TVar 11) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),2),(Just (TVar 11),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8])),"Sort","quickSort._#selFP7#r")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 8])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 10) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 8],TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]]))),"Prelude","(,)")) [(Just (TVar 10),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 8]),3)))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Sort","mergeSort")) 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Sort","mergeSort.mergeLists.16")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]))),"Sort","mergeSort.genRuns.16")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Sort","mergeSort.genRuns.16")) 2 Private (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 79]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 79]]))) (Rule [(Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [(Just (TVar 79),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [Var ((Just (TVar 79),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),"Prelude","[]")) []],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [(Just (TVar 79),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),6)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 79),3))],Var ((Just (TVar 79),5))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [Var ((Just (TVar 79),3)),Comb ConsCall ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [Var ((Just (TVar 79),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),"Prelude","[]")) []]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Sort","mergeSort.genRuns.16")) [Var ((Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),6))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [Var ((Just (TVar 79),5)),Comb ConsCall ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [Var ((Just (TVar 79),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),"Prelude","[]")) []]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Sort","mergeSort.genRuns.16")) [Var ((Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),6))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Sort","mergeSort.mergePairs.16")) 2 Private (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 79]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 79]]))) (Rule [(Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","[]")) []]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),6)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79])))),"Sort","merge")) [Var ((Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),5))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Sort","mergeSort.mergePairs.16")) [Var ((Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),6))]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Sort","mergeSort.mergeLists.16")) 2 Private (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 79]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 79]))) (Rule [(Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),"Prelude","[]")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),3))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Sort","mergeSort.mergeLists.16")) [Var ((Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79])))),"Sort","merge")) [Var ((Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]),5))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]))),"Sort","mergeSort.mergePairs.16")) [Var ((Just (FuncType (TVar 79) (FuncType (TVar 79) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]]),6))]]])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Sort","merge")) 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),4))],Var ((Just (TVar 0),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Sort","merge")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),6)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Sort","merge")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Sort","leqList")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TVar 0),4)),Var ((Just (TVar 0),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Sort","leqList")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Var ((Just (TVar 0),4))],Var ((Just (TVar 0),6))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Ordering") [])))),"Sort","cmpList")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Ordering")) [])))) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) [])]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Ordering") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),1)),Var ((Just (TVar 0),6))],Var ((Just (TVar 0),8))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Ordering") [])))),"Sort","cmpList")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),1)),Var ((Just (TVar 0),6))],Var ((Just (TVar 0),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","failed")) [])])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqChar")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Sort","cmpChar")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) [])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqCharIgnoreCase")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Char") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Char","toUpper")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Char","toUpper")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqString")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Sort","leqList")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Sort","cmpString")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Ordering") [])))),"Sort","cmpList")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Sort","cmpChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqStringIgnoreCase")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Sort","leqList")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqCharIgnoreCase")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqLexGerman")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Sort","leqLexGerman.glex.89")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),3))]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Sort","leqLexGerman.glex.89")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),5))]])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Sort","leqLexGerman")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","failed")) [])])])))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Sort","leqLexGerman.glex.89")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'Z')]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'A')]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  228)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  246)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'o')]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  252)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'u')]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  196)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'a')]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  214)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'o')]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  220)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  'u')]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  223)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  's')]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])])])])])])])])]))] []
diff --git a/src/lib/Curry/Module/.curry/Sort.fcy b/src/lib/Curry/Module/.curry/Sort.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Sort.fcy
@@ -0,0 +1,1 @@
+Prog "Sort" ["Char","Prelude"] [] [Func ("Sort","quickSort") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Sort","quickSort.split.6") [Var 1,Var 3,Var 4])] (Let [(6,Comb FuncCall ("Sort","quickSort._#selFP6#l") [Var 5])] (Let [(7,Comb FuncCall ("Sort","quickSort._#selFP7#r") [Var 5])] (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Sort","quickSort") [Var 1,Var 6],Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("Sort","quickSort") [Var 1,Var 7]]]))))])),Func ("Sort","quickSort.split.6") 3 Private (FuncType (FuncType (TVar 8) (FuncType (TVar 8) (TCons ("Prelude","Bool") []))) (FuncType (TVar 8) (FuncType (TCons ("Prelude","[]") [TVar 8]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 8],TCons ("Prelude","[]") [TVar 8]])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [4,5]) (Let [(6,Comb FuncCall ("Sort","quickSort.split.6") [Var 1,Var 2,Var 5])] (Let [(7,Comb FuncCall ("Sort","quickSort.split.6._#selFP3#l") [Var 6])] (Let [(8,Comb FuncCall ("Sort","quickSort.split.6._#selFP4#r") [Var 6])] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 4,Var 7],Var 8]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Var 7,Comb ConsCall ("Prelude",":") [Var 4,Var 8]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])]))))])),Func ("Sort","quickSort.split.6._#selFP3#l") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 8],TCons ("Prelude","[]") [TVar 8]]) (TCons ("Prelude","[]") [TVar 8])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Sort","quickSort.split.6._#selFP4#r") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 8],TCons ("Prelude","[]") [TVar 8]]) (TCons ("Prelude","[]") [TVar 8])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Sort","quickSort._#selFP6#l") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 8],TCons ("Prelude","[]") [TVar 8]]) (TCons ("Prelude","[]") [TVar 8])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Sort","quickSort._#selFP7#r") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 8],TCons ("Prelude","[]") [TVar 8]]) (TCons ("Prelude","[]") [TVar 8])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Sort","mergeSort") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Sort","mergeSort.mergeLists.16") [Var 1,Comb FuncCall ("Sort","mergeSort.genRuns.16") [Var 1,Var 2]])),Func ("Sort","mergeSort.genRuns.16") 2 Private (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 79]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 79]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [5,6]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 5]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Sort","mergeSort.genRuns.16") [Var 1,Var 6]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Sort","mergeSort.genRuns.16") [Var 1,Var 6]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("Sort","mergeSort.mergePairs.16") 2 Private (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 79]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 79]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Sort","merge") [Var 1,Var 3,Var 5],Comb FuncCall ("Sort","mergeSort.mergePairs.16") [Var 1,Var 6]])])])),Func ("Sort","mergeSort.mergeLists.16") 2 Private (FuncType (FuncType (TVar 79) (FuncType (TVar 79) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 79]]) (TCons ("Prelude","[]") [TVar 79]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Var 3),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Sort","mergeSort.mergeLists.16") [Var 1,Comb ConsCall ("Prelude",":") [Comb FuncCall ("Sort","merge") [Var 1,Var 3,Var 5],Comb FuncCall ("Sort","mergeSort.mergePairs.16") [Var 1,Var 6]]])])])),Func ("Sort","merge") 3 Private (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Var 3),Branch (Pattern ("Prelude",":") [4,5]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Var 4,Var 5]),Branch (Pattern ("Prelude",":") [6,7]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("Sort","merge") [Var 1,Var 5,Comb ConsCall ("Prelude",":") [Var 6,Var 7]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 6,Comb FuncCall ("Sort","merge") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Var 5],Var 7]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("Sort","leqList") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude",":") [4,5]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude",":") [6,7]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Var 6]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Sort","leqList") [Var 1,Var 5,Var 7]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 4],Var 6]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("Sort","cmpList") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Ordering") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Ordering") [])))) (Rule [1,2,3] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","EQ") []),Branch (Pattern ("Prelude",":") [4,5]) (Comb ConsCall ("Prelude","LT") [])]),Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude",":") [8,9]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 6],Var 8],Comb ConsCall ("Prelude","EQ") []]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Sort","cmpList") [Var 1,Var 7,Var 9]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 6],Var 8]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])),Func ("Sort","leqChar") 2 Public (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Var 2]])),Func ("Sort","cmpChar") 2 Public (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","EQ") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","<") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Var 2]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","GT") [])])])),Func ("Sort","leqCharIgnoreCase") 2 Public (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Comb FuncCall ("Char","toUpper") [Var 1]],Comb FuncCall ("Prelude","ord") [Comb FuncCall ("Char","toUpper") [Var 2]]])),Func ("Sort","leqString") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") []))) (Rule [] (Comb (FuncPartCall 2) ("Sort","leqList") [Comb (FuncPartCall 2) ("Sort","leqChar") []])),Func ("Sort","cmpString") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Ordering") []))) (Rule [] (Comb (FuncPartCall 2) ("Sort","cmpList") [Comb (FuncPartCall 2) ("Sort","cmpChar") []])),Func ("Sort","leqStringIgnoreCase") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") []))) (Rule [] (Comb (FuncPartCall 2) ("Sort","leqList") [Comb (FuncPartCall 2) ("Sort","leqCharIgnoreCase") []])),Func ("Sort","leqLexGerman") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude",":") [3,4]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude",":") [5,6]) (Let [(7,Comb FuncCall ("Sort","leqLexGerman.glex.89") [Comb FuncCall ("Prelude","ord") [Var 3]])] (Let [(8,Comb FuncCall ("Sort","leqLexGerman.glex.89") [Comb FuncCall ("Prelude","ord") [Var 5]])] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 7,Var 8]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Sort","leqLexGerman") [Var 4,Var 6]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","<") [Var 7,Var 8]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])))])])),Func ("Sort","leqLexGerman.glex.89") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Var 1,Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]],Comb FuncCall ("Prelude","<=") [Var 1,Comb FuncCall ("Prelude","ord") [Lit (Charc  'Z')]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","+") [Var 1,Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')],Comb FuncCall ("Prelude","ord") [Lit (Charc  'A')]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  228)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  246)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","ord") [Lit (Charc  'o')]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  252)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","ord") [Lit (Charc  'u')]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  196)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","ord") [Lit (Charc  'a')]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  214)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","ord") [Lit (Charc  'o')]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  220)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","ord") [Lit (Charc  'u')]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  223)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","ord") [Lit (Charc  's')]),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/src/lib/Curry/Module/.curry/Sort.fint b/src/lib/Curry/Module/.curry/Sort.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Sort.fint
@@ -0,0 +1,1 @@
+Prog "Sort" ["Char","Prelude"] [] [Func ("Sort","quickSort") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Sort","mergeSort") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Sort","leqList") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") [])))) (Rule [] (Var 0)),Func ("Sort","cmpList") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Ordering") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Ordering") [])))) (Rule [] (Var 0)),Func ("Sort","leqChar") 2 Public (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Sort","cmpChar") 2 Public (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0)),Func ("Sort","leqCharIgnoreCase") 2 Public (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Sort","leqString") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Sort","cmpString") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0)),Func ("Sort","leqStringIgnoreCase") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Sort","leqLexGerman") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Sort.uacy b/src/lib/Curry/Module/.curry/Sort.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Sort.uacy
@@ -0,0 +1,16 @@
+CurryProg "Sort"
+ ["Prelude","Char"]
+ []
+ [CFunc ("Sort","cmpChar") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"c1"))) (CVar (1,"c2")))) (CSymbol ("Prelude","EQ"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c1")))) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c2"))))) (CSymbol ("Prelude","LT"))) (CSymbol ("Prelude","GT"))))] []]),
+  CFunc ("Sort","cmpList") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Ordering") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Ordering") [])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","EQ"))] [],CRule [CPVar (1,"_"),CPComb ("Prelude","[]") [],CPComb ("Prelude",":") [CPVar (2,"_"),CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","LT"))] [],CRule [CPVar (4,"_"),CPComb ("Prelude",":") [CPVar (5,"_"),CPVar (6,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","GT"))] [],CRule [CPVar (7,"cmp"),CPComb ("Prelude",":") [CPVar (8,"x"),CPVar (9,"xs")],CPComb ("Prelude",":") [CPVar (10,"y"),CPVar (11,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CVar (7,"cmp")) (CVar (8,"x"))) (CVar (10,"y")))) (CSymbol ("Prelude","EQ")),CApply (CApply (CApply (CSymbol ("Sort","cmpList")) (CVar (7,"cmp"))) (CVar (9,"xs"))) (CVar (11,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (7,"cmp")) (CVar (8,"x"))) (CVar (10,"y")))] []]),
+  CFunc ("Sort","cmpString") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","cmpList")) (CSymbol ("Sort","cmpChar")))] []]),
+  CFunc ("Sort","leqChar") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"c1")))) (CApply (CSymbol ("Prelude","ord")) (CVar (1,"c2"))))] []]),
+  CFunc ("Sort","leqCharIgnoreCase") 2 Public (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"c1"),CPVar (1,"c2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","<=")) (CApply (CSymbol ("Prelude","ord")) (CApply (CSymbol ("Char","toUpper")) (CVar (0,"c1"))))) (CApply (CSymbol ("Prelude","ord")) (CApply (CSymbol ("Char","toUpper")) (CVar (1,"c2")))))] []]),
+  CFunc ("Sort","leqLexGerman") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"_"),CPVar (2,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude",":") [CPVar (5,"y"),CPVar (6,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (7,"x'"))) (CVar (8,"y'")),CApply (CApply (CSymbol ("Sort","leqLexGerman")) (CVar (4,"xs"))) (CVar (6,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","<")) (CVar (7,"x'"))) (CVar (8,"y'")))] [CLocalPat (CPVar (7,"x'")) (CApply (CSymbol ("Sort","glex")) (CApply (CSymbol ("Prelude","ord")) (CVar (3,"x")))) [],CLocalPat (CPVar (8,"y'")) (CApply (CSymbol ("Sort","glex")) (CApply (CSymbol ("Prelude","ord")) (CVar (5,"y")))) [],CLocalFunc (CFunc ("Sort","glex") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (9,"o")] [(CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">=")) (CVar (9,"o"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (9,"o"))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'Z')))),CApply (CApply (CSymbol ("Prelude","+")) (CVar (9,"o"))) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a')))) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'A'))))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 228)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 246)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'o'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 252)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'u'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 196)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'a'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 214)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'o'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 220)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 'u'))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (9,"o"))) (CLit (CIntc 223)),CApply (CSymbol ("Prelude","ord")) (CLit (CCharc 's'))),(CSymbol ("Prelude","otherwise"),CVar (9,"o"))] []]))]]),
+  CFunc ("Sort","leqList") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","True"))] [],CRule [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"_"),CPVar (4,"_")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","False"))] [],CRule [CPVar (5,"leq"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPComb ("Prelude",":") [CPVar (8,"y"),CPVar (9,"ys")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (6,"x"))) (CVar (8,"y")),CApply (CApply (CApply (CSymbol ("Sort","leqList")) (CVar (5,"leq"))) (CVar (7,"xs"))) (CVar (9,"ys"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CVar (5,"leq")) (CVar (6,"x"))) (CVar (8,"y")))] []]),
+  CFunc ("Sort","leqString") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqChar")))] []]),
+  CFunc ("Sort","leqStringIgnoreCase") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","leqList")) (CSymbol ("Sort","leqCharIgnoreCase")))] []]),
+  CFunc ("Sort","merge") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") [],CPVar (1,"ys")] [(CSymbol ("Prelude","success"),CVar (1,"ys"))] [],CRule [CPVar (2,"_"),CPComb ("Prelude",":") [CPVar (3,"x"),CPVar (4,"xs")],CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x"))) (CVar (4,"xs")))] [],CRule [CPVar (5,"leq"),CPComb ("Prelude",":") [CPVar (6,"x"),CPVar (7,"xs")],CPComb ("Prelude",":") [CPVar (8,"y"),CPVar (9,"ys")]] [(CApply (CApply (CVar (5,"leq")) (CVar (6,"x"))) (CVar (8,"y")),CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (5,"leq"))) (CVar (7,"xs"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (8,"y"))) (CVar (9,"ys"))))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (8,"y"))) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (5,"leq"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"x"))) (CVar (7,"xs")))) (CVar (9,"ys"))))] []]),
+  CFunc ("Sort","mergeSort") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"leq"),CPVar (1,"zs")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","mergeLists")) (CApply (CSymbol ("Sort","genRuns")) (CVar (1,"zs"))))] [CLocalFunc (CFunc ("Sort","genRuns") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CApply (CApply (CVar (0,"leq")) (CVar (3,"x1"))) (CVar (4,"x2")),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x1"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x2"))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Sort","genRuns")) (CVar (5,"xs")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"x2"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (3,"x1"))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Sort","genRuns")) (CVar (5,"xs"))))] []])),CLocalFunc (CFunc ("Sort","mergeLists") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CVar (2,"x"))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Sort","mergeLists")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (0,"leq"))) (CVar (3,"x1"))) (CVar (4,"x2")))) (CApply (CSymbol ("Sort","mergePairs")) (CVar (5,"xs")))))] []])),CLocalFunc (CFunc ("Sort","mergePairs") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPComb ("Prelude",":") [CPVar (2,"x"),CPComb ("Prelude","[]") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))] [],CRule [CPComb ("Prelude",":") [CPVar (3,"x1"),CPComb ("Prelude",":") [CPVar (4,"x2"),CPVar (5,"xs")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Sort","merge")) (CVar (0,"leq"))) (CVar (3,"x1"))) (CVar (4,"x2")))) (CApply (CSymbol ("Sort","mergePairs")) (CVar (5,"xs"))))] []]))]]),
+  CFunc ("Sort","quickSort") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","[]"))] [],CRule [CPVar (1,"leq"),CPComb ("Prelude",":") [CPVar (2,"x"),CPVar (3,"xs")]] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (4,"l"),CPVar (5,"r")]) (CApply (CApply (CSymbol ("Sort","split")) (CVar (2,"x"))) (CVar (3,"xs"))) []] (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Sort","quickSort")) (CVar (1,"leq"))) (CVar (4,"l")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Sort","quickSort")) (CVar (1,"leq"))) (CVar (5,"r"))))))] [CLocalFunc (CFunc ("Sort","split") 2 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (4,"_"),CPComb ("Prelude","[]") []] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CSymbol ("Prelude","[]")))] [],CRule [CPVar (5,"e"),CPComb ("Prelude",":") [CPVar (6,"y"),CPVar (7,"ys")]] [(CApply (CApply (CVar (1,"leq")) (CVar (6,"y"))) (CVar (5,"e")),CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"y"))) (CVar (8,"l")))) (CVar (9,"r"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (8,"l"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (6,"y"))) (CVar (9,"r"))))] [CLocalPat (CPComb ("Prelude","(,)") [CPVar (8,"l"),CPVar (9,"r")]) (CApply (CApply (CSymbol ("Sort","split")) (CVar (5,"e"))) (CVar (7,"ys"))) []]]))]])]
+ []
diff --git a/src/lib/Curry/Module/.curry/StyledText.acy b/src/lib/Curry/Module/.curry/StyledText.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/StyledText.acy
@@ -0,0 +1,85 @@
+CurryProg "StyledText"
+ ["Prelude","Char","Pretty","AnsiCodes"]
+ [CTypeSyn ("StyledText","ShowS") Public [] (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") []))]
+ [CFunc ("StyledText","bgBlack") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgBlackChar")))] []]),
+  CFunc ("StyledText","bgBlackChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 24)))] []]),
+  CFunc ("StyledText","bgBlackDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgBlackChar")))] []]),
+  CFunc ("StyledText","bgBlackS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgBlackChar")))] []]),
+  CFunc ("StyledText","bgBlue") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgBlueChar")))] []]),
+  CFunc ("StyledText","bgBlueChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 25)))] []]),
+  CFunc ("StyledText","bgBlueDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgBlueChar")))] []]),
+  CFunc ("StyledText","bgBlueS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgBlueChar")))] []]),
+  CFunc ("StyledText","bgCyan") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgCyanChar")))] []]),
+  CFunc ("StyledText","bgCyanChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 26)))] []]),
+  CFunc ("StyledText","bgCyanDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgCyanChar")))] []]),
+  CFunc ("StyledText","bgCyanS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgCyanChar")))] []]),
+  CFunc ("StyledText","bgGreen") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgGreenChar")))] []]),
+  CFunc ("StyledText","bgGreenChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 27)))] []]),
+  CFunc ("StyledText","bgGreenDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgGreenChar")))] []]),
+  CFunc ("StyledText","bgGreenS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgGreenChar")))] []]),
+  CFunc ("StyledText","bgMagenta") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgMagentaChar")))] []]),
+  CFunc ("StyledText","bgMagentaChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 28)))] []]),
+  CFunc ("StyledText","bgMagentaDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgMagentaChar")))] []]),
+  CFunc ("StyledText","bgMagentaS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgMagentaChar")))] []]),
+  CFunc ("StyledText","bgRed") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgRedChar")))] []]),
+  CFunc ("StyledText","bgRedChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 29)))] []]),
+  CFunc ("StyledText","bgRedDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgRedChar")))] []]),
+  CFunc ("StyledText","bgRedS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgRedChar")))] []]),
+  CFunc ("StyledText","bgWhite") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgWhiteChar")))] []]),
+  CFunc ("StyledText","bgWhiteChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 30)))] []]),
+  CFunc ("StyledText","bgWhiteDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgWhiteChar")))] []]),
+  CFunc ("StyledText","bgWhiteS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgWhiteChar")))] []]),
+  CFunc ("StyledText","bgYellow") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgYellowChar")))] []]),
+  CFunc ("StyledText","bgYellowChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 31)))] []]),
+  CFunc ("StyledText","bgYellowDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgYellowChar")))] []]),
+  CFunc ("StyledText","bgYellowS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgYellowChar")))] []]),
+  CFunc ("StyledText","black") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","blackChar")))] []]),
+  CFunc ("StyledText","blackChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 16)))] []]),
+  CFunc ("StyledText","blackDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","blackChar")))] []]),
+  CFunc ("StyledText","blackS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","blackChar")))] []]),
+  CFunc ("StyledText","blue") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","blueChar")))] []]),
+  CFunc ("StyledText","blueChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 17)))] []]),
+  CFunc ("StyledText","blueDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","blueChar")))] []]),
+  CFunc ("StyledText","blueS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","blueChar")))] []]),
+  CFunc ("StyledText","bold") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","boldChar")))] []]),
+  CFunc ("StyledText","boldChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 5)))] []]),
+  CFunc ("StyledText","boldDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","boldChar")))] []]),
+  CFunc ("StyledText","boldS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","boldChar")))] []]),
+  CFunc ("StyledText","cyan") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","cyanChar")))] []]),
+  CFunc ("StyledText","cyanChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 18)))] []]),
+  CFunc ("StyledText","cyanDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","cyanChar")))] []]),
+  CFunc ("StyledText","cyanS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","cyanChar")))] []]),
+  CFunc ("StyledText","encl") 2 Private (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"c"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"s"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("StyledText","endChar"))) (CSymbol ("Prelude","[]")))))] []]),
+  CFunc ("StyledText","enclDoc") 1 Private (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CApply (CSymbol ("Pretty","char")) (CVar (0,"c")))) (CApply (CSymbol ("Pretty","char")) (CSymbol ("StyledText","endChar"))))] []]),
+  CFunc ("StyledText","enclS") 2 Private (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"c"))) (CVar (2,"x0"))))) (CApply (CApply (CSymbol ("Prelude",".")) (CVar (1,"s"))) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("StyledText","endChar"))) (CVar (3,"x0"))))))] []]),
+  CFunc ("StyledText","endChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 7)))] []]),
+  CFunc ("StyledText","green") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","greenChar")))] []]),
+  CFunc ("StyledText","greenChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 19)))] []]),
+  CFunc ("StyledText","greenDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","greenChar")))] []]),
+  CFunc ("StyledText","greenS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","greenChar")))] []]),
+  CFunc ("StyledText","interpret") 6 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (1,"b")))) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTVar (0,"a"),CTVar (0,"a"),CTVar (0,"a")]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (1,"b")))))))) (CRules CFlex [CRule [CPAs (3,"convs") (CPComb ("Prelude",":") [CPVar (0,"b"),CPComb ("Prelude",":") [CPVar (1,"ul"),CPVar (2,"cs")]]),CPVar (4,"combine"),CPVar (5,"cst"),CPVar (6,"ast"),CPComb ("Prelude",":") [CPAs (10,"t") (CPComb ("Prelude","(,,)") [CPVar (7,"st"),CPVar (8,"fg"),CPVar (9,"bg")]),CPVar (11,"fs")],CPVar (12,"s")] [(CApply (CSymbol ("Prelude","null")) (CVar (15,"ys")),CApply (CVar (13,"f")) (CVar (14,"xs"))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (16,"code"))) (CLit (CIntc 5)),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (0,"b"))) (CVar (8,"fg"))) (CVar (9,"bg")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (10,"t"))) (CVar (11,"fs"))))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys"))))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (16,"code"))) (CLit (CIntc 6)),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (1,"ul"))) (CVar (8,"fg"))) (CVar (9,"bg")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (10,"t"))) (CVar (11,"fs"))))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys"))))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (16,"code"))) (CLit (CIntc 7)),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CVar (11,"fs"))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys"))))),(CApply (CApply (CSymbol ("Prelude","<")) (CVar (16,"code"))) (CLit (CIntc 24)),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (7,"st"))) (CVar (17,"g"))) (CVar (9,"bg")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (10,"t"))) (CVar (11,"fs"))))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys"))))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (7,"st"))) (CVar (8,"fg"))) (CVar (17,"g")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (10,"t"))) (CVar (11,"fs"))))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys")))))] [CLocalPat (CPVar (13,"f")) (CApply (CApply (CSymbol ("Prelude","$")) (CVar (6,"ast"))) (CApply (CApply (CVar (5,"cst")) (CVar (7,"st"))) (CApply (CApply (CVar (5,"cst")) (CVar (8,"fg"))) (CVar (9,"bg"))))) [],CLocalPat (CPComb ("Prelude","(,)") [CPVar (14,"xs"),CPVar (15,"ys")]) (CApply (CApply (CSymbol ("Prelude","break")) (CSymbol ("StyledText","special"))) (CVar (12,"s"))) [],CLocalPat (CPVar (16,"code")) (CApply (CSymbol ("Prelude","ord")) (CApply (CSymbol ("Prelude","head")) (CVar (15,"ys")))) [],CLocalPat (CPVar (17,"g")) (CApply (CApply (CSymbol ("Prelude","!!")) (CVar (2,"cs"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (16,"code"))) (CLit (CIntc 16)))) []]]),
+  CFunc ("StyledText","magenta") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","magentaChar")))] []]),
+  CFunc ("StyledText","magentaChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 20)))] []]),
+  CFunc ("StyledText","magentaDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","magentaChar")))] []]),
+  CFunc ("StyledText","magentaS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","magentaChar")))] []]),
+  CFunc ("StyledText","plainText") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CSymbol ("StyledText","special"))))] []]),
+  CFunc ("StyledText","printStyledText") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","putStrLn"))) (CSymbol ("StyledText","toAnsiString")))] []]),
+  CFunc ("StyledText","red") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","redChar")))] []]),
+  CFunc ("StyledText","redChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 21)))] []]),
+  CFunc ("StyledText","redDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","redChar")))] []]),
+  CFunc ("StyledText","redS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","redChar")))] []]),
+  CFunc ("StyledText","special") 1 Private (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","elem")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 5))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 6))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 7))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude","enumFromTo")) (CLit (CIntc 16))) (CLit (CIntc 31)))))] []]),
+  CFunc ("StyledText","toAnsiString") 0 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bold"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","underline"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","black"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","blue"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","cyan"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","green"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","magenta"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","red"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","white"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","yellow"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgBlack"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgBlue"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgCyan"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgGreen"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgMagenta"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgRed"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgWhite"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgYellow"))) (CSymbol ("Prelude","[]"))))))))))))))))))))) (CSymbol ("Prelude","++"))) (CSymbol ("Prelude","."))) (CSymbol ("Prelude","id"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("StyledText","underline") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","underlineChar")))] []]),
+  CFunc ("StyledText","underlineChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 6)))] []]),
+  CFunc ("StyledText","underlineDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","underlineChar")))] []]),
+  CFunc ("StyledText","underlineS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","underlineChar")))] []]),
+  CFunc ("StyledText","white") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","whiteChar")))] []]),
+  CFunc ("StyledText","whiteChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 22)))] []]),
+  CFunc ("StyledText","whiteDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","whiteChar")))] []]),
+  CFunc ("StyledText","whiteS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","whiteChar")))] []]),
+  CFunc ("StyledText","yellow") 0 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","yellowChar")))] []]),
+  CFunc ("StyledText","yellowChar") 0 Private (CTCons ("Prelude","Char") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 23)))] []]),
+  CFunc ("StyledText","yellowDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","yellowChar")))] []]),
+  CFunc ("StyledText","yellowS") 0 Public (CFuncType (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","yellowChar")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/StyledText.cy b/src/lib/Curry/Module/.curry/StyledText.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/StyledText.cy
@@ -0,0 +1,100 @@
+Module "StyledText"
+(Just (Exporting (1,19) [(Export (QualIdent Nothing (Ident "bold" 0))),(Export (QualIdent Nothing (Ident "underline" 0))),(Export (QualIdent Nothing (Ident "black" 0))),(Export (QualIdent Nothing (Ident "blue" 0))),(Export (QualIdent Nothing (Ident "cyan" 0))),(Export (QualIdent Nothing (Ident "green" 0))),(Export (QualIdent Nothing (Ident "magenta" 0))),(Export (QualIdent Nothing (Ident "red" 0))),(Export (QualIdent Nothing (Ident "white" 0))),(Export (QualIdent Nothing (Ident "yellow" 0))),(Export (QualIdent Nothing (Ident "bgBlack" 0))),(Export (QualIdent Nothing (Ident "bgBlue" 0))),(Export (QualIdent Nothing (Ident "bgCyan" 0))),(Export (QualIdent Nothing (Ident "bgGreen" 0))),(Export (QualIdent Nothing (Ident "bgMagenta" 0))),(Export (QualIdent Nothing (Ident "bgRed" 0))),(Export (QualIdent Nothing (Ident "bgWhite" 0))),(Export (QualIdent Nothing (Ident "bgYellow" 0))),(Export (QualIdent Nothing (Ident "ShowS" 0))),(Export (QualIdent Nothing (Ident "boldS" 0))),(Export (QualIdent Nothing (Ident "underlineS" 0))),(Export (QualIdent Nothing (Ident "blackS" 0))),(Export (QualIdent Nothing (Ident "blueS" 0))),(Export (QualIdent Nothing (Ident "cyanS" 0))),(Export (QualIdent Nothing (Ident "greenS" 0))),(Export (QualIdent Nothing (Ident "magentaS" 0))),(Export (QualIdent Nothing (Ident "redS" 0))),(Export (QualIdent Nothing (Ident "whiteS" 0))),(Export (QualIdent Nothing (Ident "yellowS" 0))),(Export (QualIdent Nothing (Ident "bgBlackS" 0))),(Export (QualIdent Nothing (Ident "bgBlueS" 0))),(Export (QualIdent Nothing (Ident "bgCyanS" 0))),(Export (QualIdent Nothing (Ident "bgGreenS" 0))),(Export (QualIdent Nothing (Ident "bgMagentaS" 0))),(Export (QualIdent Nothing (Ident "bgRedS" 0))),(Export (QualIdent Nothing (Ident "bgWhiteS" 0))),(Export (QualIdent Nothing (Ident "bgYellowS" 0))),(Export (QualIdent Nothing (Ident "Doc" 0))),(Export (QualIdent Nothing (Ident "boldDoc" 0))),(Export (QualIdent Nothing (Ident "underlineDoc" 0))),(Export (QualIdent Nothing (Ident "blackDoc" 0))),(Export (QualIdent Nothing (Ident "blueDoc" 0))),(Export (QualIdent Nothing (Ident "cyanDoc" 0))),(Export (QualIdent Nothing (Ident "greenDoc" 0))),(Export (QualIdent Nothing (Ident "magentaDoc" 0))),(Export (QualIdent Nothing (Ident "redDoc" 0))),(Export (QualIdent Nothing (Ident "whiteDoc" 0))),(Export (QualIdent Nothing (Ident "yellowDoc" 0))),(Export (QualIdent Nothing (Ident "bgBlackDoc" 0))),(Export (QualIdent Nothing (Ident "bgBlueDoc" 0))),(Export (QualIdent Nothing (Ident "bgCyanDoc" 0))),(Export (QualIdent Nothing (Ident "bgGreenDoc" 0))),(Export (QualIdent Nothing (Ident "bgMagentaDoc" 0))),(Export (QualIdent Nothing (Ident "bgRedDoc" 0))),(Export (QualIdent Nothing (Ident "bgWhiteDoc" 0))),(Export (QualIdent Nothing (Ident "bgYellowDoc" 0))),(Export (QualIdent Nothing (Ident "plainText" 0))),(Export (QualIdent Nothing (Ident "printStyledText" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (22,1) "Char" False Nothing Nothing)
+,(ImportDecl (23,1) "Pretty" False Nothing Nothing)
+,(ImportDecl (24,1) "AnsiCodes" False (Just "Ansi") Nothing)
+,(TypeDecl (75,1) (Ident "ShowS" 0) [] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (28,1) (Ident "boldChar" 0) [(Equation (28,1) (FunLhs (Ident "boldChar" 0) []) (SimpleRhs (28,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 4) 5))) []))])
+,(FunctionDecl (29,1) (Ident "underlineChar" 0) [(Equation (29,1) (FunLhs (Ident "underlineChar" 0) []) (SimpleRhs (29,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 7) 6))) []))])
+,(FunctionDecl (30,1) (Ident "endChar" 0) [(Equation (30,1) (FunLhs (Ident "endChar" 0) []) (SimpleRhs (30,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 10) 7))) []))])
+,(FunctionDecl (31,1) (Ident "blackChar" 0) [(Equation (31,1) (FunLhs (Ident "blackChar" 0) []) (SimpleRhs (31,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 13) 16))) []))])
+,(FunctionDecl (32,1) (Ident "blueChar" 0) [(Equation (32,1) (FunLhs (Ident "blueChar" 0) []) (SimpleRhs (32,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 16) 17))) []))])
+,(FunctionDecl (33,1) (Ident "cyanChar" 0) [(Equation (33,1) (FunLhs (Ident "cyanChar" 0) []) (SimpleRhs (33,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 19) 18))) []))])
+,(FunctionDecl (34,1) (Ident "greenChar" 0) [(Equation (34,1) (FunLhs (Ident "greenChar" 0) []) (SimpleRhs (34,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 22) 19))) []))])
+,(FunctionDecl (35,1) (Ident "magentaChar" 0) [(Equation (35,1) (FunLhs (Ident "magentaChar" 0) []) (SimpleRhs (35,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 25) 20))) []))])
+,(FunctionDecl (36,1) (Ident "redChar" 0) [(Equation (36,1) (FunLhs (Ident "redChar" 0) []) (SimpleRhs (36,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 28) 21))) []))])
+,(FunctionDecl (37,1) (Ident "whiteChar" 0) [(Equation (37,1) (FunLhs (Ident "whiteChar" 0) []) (SimpleRhs (37,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 31) 22))) []))])
+,(FunctionDecl (38,1) (Ident "yellowChar" 0) [(Equation (38,1) (FunLhs (Ident "yellowChar" 0) []) (SimpleRhs (38,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 34) 23))) []))])
+,(FunctionDecl (39,1) (Ident "bgBlackChar" 0) [(Equation (39,1) (FunLhs (Ident "bgBlackChar" 0) []) (SimpleRhs (39,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 37) 24))) []))])
+,(FunctionDecl (40,1) (Ident "bgBlueChar" 0) [(Equation (40,1) (FunLhs (Ident "bgBlueChar" 0) []) (SimpleRhs (40,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 40) 25))) []))])
+,(FunctionDecl (41,1) (Ident "bgCyanChar" 0) [(Equation (41,1) (FunLhs (Ident "bgCyanChar" 0) []) (SimpleRhs (41,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 43) 26))) []))])
+,(FunctionDecl (42,1) (Ident "bgGreenChar" 0) [(Equation (42,1) (FunLhs (Ident "bgGreenChar" 0) []) (SimpleRhs (42,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 46) 27))) []))])
+,(FunctionDecl (43,1) (Ident "bgMagentaChar" 0) [(Equation (43,1) (FunLhs (Ident "bgMagentaChar" 0) []) (SimpleRhs (43,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 49) 28))) []))])
+,(FunctionDecl (44,1) (Ident "bgRedChar" 0) [(Equation (44,1) (FunLhs (Ident "bgRedChar" 0) []) (SimpleRhs (44,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 52) 29))) []))])
+,(FunctionDecl (45,1) (Ident "bgWhiteChar" 0) [(Equation (45,1) (FunLhs (Ident "bgWhiteChar" 0) []) (SimpleRhs (45,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 55) 30))) []))])
+,(FunctionDecl (46,1) (Ident "bgYellowChar" 0) [(Equation (46,1) (FunLhs (Ident "bgYellowChar" 0) []) (SimpleRhs (46,17) (Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Literal (Int (Ident "_" 58) 31))) []))])
+,(TypeSig (48,1) [(Ident "bold" 0),(Ident "underline" 0),(Ident "black" 0),(Ident "blue" 0),(Ident "cyan" 0),(Ident "green" 0),(Ident "magenta" 0),(Ident "red" 0),(Ident "white" 0),(Ident "yellow" 0),(Ident "bgBlack" 0),(Ident "bgBlue" 0),(Ident "bgCyan" 0),(Ident "bgGreen" 0),(Ident "bgMagenta" 0),(Ident "bgRed" 0),(Ident "bgWhite" 0),(Ident "bgYellow" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (52,1) (Ident "bold" 0) [(Equation (52,1) (FunLhs (Ident "bold" 0) []) (SimpleRhs (52,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "boldChar" 0)))) []))])
+,(FunctionDecl (53,1) (Ident "underline" 0) [(Equation (53,1) (FunLhs (Ident "underline" 0) []) (SimpleRhs (53,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "underlineChar" 0)))) []))])
+,(FunctionDecl (54,1) (Ident "black" 0) [(Equation (54,1) (FunLhs (Ident "black" 0) []) (SimpleRhs (54,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "blackChar" 0)))) []))])
+,(FunctionDecl (55,1) (Ident "blue" 0) [(Equation (55,1) (FunLhs (Ident "blue" 0) []) (SimpleRhs (55,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "blueChar" 0)))) []))])
+,(FunctionDecl (56,1) (Ident "cyan" 0) [(Equation (56,1) (FunLhs (Ident "cyan" 0) []) (SimpleRhs (56,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "cyanChar" 0)))) []))])
+,(FunctionDecl (57,1) (Ident "green" 0) [(Equation (57,1) (FunLhs (Ident "green" 0) []) (SimpleRhs (57,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "greenChar" 0)))) []))])
+,(FunctionDecl (58,1) (Ident "magenta" 0) [(Equation (58,1) (FunLhs (Ident "magenta" 0) []) (SimpleRhs (58,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "magentaChar" 0)))) []))])
+,(FunctionDecl (59,1) (Ident "red" 0) [(Equation (59,1) (FunLhs (Ident "red" 0) []) (SimpleRhs (59,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "redChar" 0)))) []))])
+,(FunctionDecl (60,1) (Ident "white" 0) [(Equation (60,1) (FunLhs (Ident "white" 0) []) (SimpleRhs (60,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "whiteChar" 0)))) []))])
+,(FunctionDecl (61,1) (Ident "yellow" 0) [(Equation (61,1) (FunLhs (Ident "yellow" 0) []) (SimpleRhs (61,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "yellowChar" 0)))) []))])
+,(FunctionDecl (62,1) (Ident "bgBlack" 0) [(Equation (62,1) (FunLhs (Ident "bgBlack" 0) []) (SimpleRhs (62,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgBlackChar" 0)))) []))])
+,(FunctionDecl (63,1) (Ident "bgBlue" 0) [(Equation (63,1) (FunLhs (Ident "bgBlue" 0) []) (SimpleRhs (63,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgBlueChar" 0)))) []))])
+,(FunctionDecl (64,1) (Ident "bgCyan" 0) [(Equation (64,1) (FunLhs (Ident "bgCyan" 0) []) (SimpleRhs (64,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgCyanChar" 0)))) []))])
+,(FunctionDecl (65,1) (Ident "bgGreen" 0) [(Equation (65,1) (FunLhs (Ident "bgGreen" 0) []) (SimpleRhs (65,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgGreenChar" 0)))) []))])
+,(FunctionDecl (66,1) (Ident "bgMagenta" 0) [(Equation (66,1) (FunLhs (Ident "bgMagenta" 0) []) (SimpleRhs (66,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgMagentaChar" 0)))) []))])
+,(FunctionDecl (67,1) (Ident "bgRed" 0) [(Equation (67,1) (FunLhs (Ident "bgRed" 0) []) (SimpleRhs (67,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgRedChar" 0)))) []))])
+,(FunctionDecl (68,1) (Ident "bgWhite" 0) [(Equation (68,1) (FunLhs (Ident "bgWhite" 0) []) (SimpleRhs (68,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgWhiteChar" 0)))) []))])
+,(FunctionDecl (69,1) (Ident "bgYellow" 0) [(Equation (69,1) (FunLhs (Ident "bgYellow" 0) []) (SimpleRhs (69,13) (Apply (Variable (QualIdent (Just "StyledText") (Ident "encl" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgYellowChar" 0)))) []))])
+,(TypeSig (71,1) [(Ident "encl" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))))
+,(FunctionDecl (72,1) (Ident "encl" 0) [(Equation (72,1) (FunLhs (Ident "encl" 0) [(VariablePattern (Ident "c" 95)),(VariablePattern (Ident "s" 95))]) (SimpleRhs (72,12) (InfixApply (Variable (QualIdent Nothing (Ident "c" 95))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "s" 95))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (List [(Variable (QualIdent (Just "StyledText") (Ident "endChar" 0)))]))) []))])
+,(TypeSig (77,1) [(Ident "boldS" 0),(Ident "underlineS" 0),(Ident "blackS" 0),(Ident "blueS" 0),(Ident "cyanS" 0),(Ident "greenS" 0),(Ident "magentaS" 0),(Ident "redS" 0),(Ident "whiteS" 0),(Ident "yellowS" 0),(Ident "bgBlackS" 0),(Ident "bgBlueS" 0),(Ident "bgCyanS" 0),(Ident "bgGreenS" 0),(Ident "bgMagentaS" 0),(Ident "bgRedS" 0),(Ident "bgWhiteS" 0),(Ident "bgYellowS" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ShowS" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ShowS" 0)) [])))
+,(FunctionDecl (81,1) (Ident "boldS" 0) [(Equation (81,1) (FunLhs (Ident "boldS" 0) []) (SimpleRhs (81,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "boldChar" 0)))) []))])
+,(FunctionDecl (82,1) (Ident "underlineS" 0) [(Equation (82,1) (FunLhs (Ident "underlineS" 0) []) (SimpleRhs (82,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "underlineChar" 0)))) []))])
+,(FunctionDecl (83,1) (Ident "blackS" 0) [(Equation (83,1) (FunLhs (Ident "blackS" 0) []) (SimpleRhs (83,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "blackChar" 0)))) []))])
+,(FunctionDecl (84,1) (Ident "blueS" 0) [(Equation (84,1) (FunLhs (Ident "blueS" 0) []) (SimpleRhs (84,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "blueChar" 0)))) []))])
+,(FunctionDecl (85,1) (Ident "cyanS" 0) [(Equation (85,1) (FunLhs (Ident "cyanS" 0) []) (SimpleRhs (85,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "cyanChar" 0)))) []))])
+,(FunctionDecl (86,1) (Ident "greenS" 0) [(Equation (86,1) (FunLhs (Ident "greenS" 0) []) (SimpleRhs (86,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "greenChar" 0)))) []))])
+,(FunctionDecl (87,1) (Ident "magentaS" 0) [(Equation (87,1) (FunLhs (Ident "magentaS" 0) []) (SimpleRhs (87,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "magentaChar" 0)))) []))])
+,(FunctionDecl (88,1) (Ident "redS" 0) [(Equation (88,1) (FunLhs (Ident "redS" 0) []) (SimpleRhs (88,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "redChar" 0)))) []))])
+,(FunctionDecl (89,1) (Ident "whiteS" 0) [(Equation (89,1) (FunLhs (Ident "whiteS" 0) []) (SimpleRhs (89,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "whiteChar" 0)))) []))])
+,(FunctionDecl (90,1) (Ident "yellowS" 0) [(Equation (90,1) (FunLhs (Ident "yellowS" 0) []) (SimpleRhs (90,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "yellowChar" 0)))) []))])
+,(FunctionDecl (91,1) (Ident "bgBlackS" 0) [(Equation (91,1) (FunLhs (Ident "bgBlackS" 0) []) (SimpleRhs (91,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgBlackChar" 0)))) []))])
+,(FunctionDecl (92,1) (Ident "bgBlueS" 0) [(Equation (92,1) (FunLhs (Ident "bgBlueS" 0) []) (SimpleRhs (92,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgBlueChar" 0)))) []))])
+,(FunctionDecl (93,1) (Ident "bgCyanS" 0) [(Equation (93,1) (FunLhs (Ident "bgCyanS" 0) []) (SimpleRhs (93,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgCyanChar" 0)))) []))])
+,(FunctionDecl (94,1) (Ident "bgGreenS" 0) [(Equation (94,1) (FunLhs (Ident "bgGreenS" 0) []) (SimpleRhs (94,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgGreenChar" 0)))) []))])
+,(FunctionDecl (95,1) (Ident "bgMagentaS" 0) [(Equation (95,1) (FunLhs (Ident "bgMagentaS" 0) []) (SimpleRhs (95,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgMagentaChar" 0)))) []))])
+,(FunctionDecl (96,1) (Ident "bgRedS" 0) [(Equation (96,1) (FunLhs (Ident "bgRedS" 0) []) (SimpleRhs (96,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgRedChar" 0)))) []))])
+,(FunctionDecl (97,1) (Ident "bgWhiteS" 0) [(Equation (97,1) (FunLhs (Ident "bgWhiteS" 0) []) (SimpleRhs (97,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgWhiteChar" 0)))) []))])
+,(FunctionDecl (98,1) (Ident "bgYellowS" 0) [(Equation (98,1) (FunLhs (Ident "bgYellowS" 0) []) (SimpleRhs (98,14) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclS" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgYellowChar" 0)))) []))])
+,(TypeSig (100,1) [(Ident "enclS" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ShowS" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ShowS" 0)) []))))
+,(FunctionDecl (101,1) (Ident "enclS" 0) [(Equation (101,1) (FunLhs (Ident "enclS" 0) [(VariablePattern (Ident "c" 133)),(VariablePattern (Ident "s" 133))]) (SimpleRhs (101,13) (InfixApply (LeftSection (Variable (QualIdent Nothing (Ident "c" 133))) (InfixConstr (QualIdent Nothing (Ident ":" 0)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (InfixApply (Variable (QualIdent Nothing (Ident "s" 133))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (LeftSection (Variable (QualIdent (Just "StyledText") (Ident "endChar" 0))) (InfixConstr (QualIdent Nothing (Ident ":" 0)))))) []))])
+,(TypeSig (104,1) [(Ident "boldDoc" 0),(Ident "underlineDoc" 0),(Ident "blackDoc" 0),(Ident "blueDoc" 0),(Ident "cyanDoc" 0),(Ident "greenDoc" 0),(Ident "magentaDoc" 0),(Ident "redDoc" 0),(Ident "whiteDoc" 0),(Ident "yellowDoc" 0),(Ident "bgBlackDoc" 0),(Ident "bgBlueDoc" 0),(Ident "bgCyanDoc" 0),(Ident "bgGreenDoc" 0),(Ident "bgMagentaDoc" 0),(Ident "bgRedDoc" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) [])))
+,(FunctionDecl (108,1) (Ident "boldDoc" 0) [(Equation (108,1) (FunLhs (Ident "boldDoc" 0) []) (SimpleRhs (108,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "boldChar" 0)))) []))])
+,(FunctionDecl (109,1) (Ident "underlineDoc" 0) [(Equation (109,1) (FunLhs (Ident "underlineDoc" 0) []) (SimpleRhs (109,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "underlineChar" 0)))) []))])
+,(FunctionDecl (110,1) (Ident "blackDoc" 0) [(Equation (110,1) (FunLhs (Ident "blackDoc" 0) []) (SimpleRhs (110,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "blackChar" 0)))) []))])
+,(FunctionDecl (111,1) (Ident "blueDoc" 0) [(Equation (111,1) (FunLhs (Ident "blueDoc" 0) []) (SimpleRhs (111,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "blueChar" 0)))) []))])
+,(FunctionDecl (112,1) (Ident "cyanDoc" 0) [(Equation (112,1) (FunLhs (Ident "cyanDoc" 0) []) (SimpleRhs (112,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "cyanChar" 0)))) []))])
+,(FunctionDecl (113,1) (Ident "greenDoc" 0) [(Equation (113,1) (FunLhs (Ident "greenDoc" 0) []) (SimpleRhs (113,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "greenChar" 0)))) []))])
+,(FunctionDecl (114,1) (Ident "magentaDoc" 0) [(Equation (114,1) (FunLhs (Ident "magentaDoc" 0) []) (SimpleRhs (114,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "magentaChar" 0)))) []))])
+,(FunctionDecl (115,1) (Ident "redDoc" 0) [(Equation (115,1) (FunLhs (Ident "redDoc" 0) []) (SimpleRhs (115,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "redChar" 0)))) []))])
+,(FunctionDecl (116,1) (Ident "whiteDoc" 0) [(Equation (116,1) (FunLhs (Ident "whiteDoc" 0) []) (SimpleRhs (116,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "whiteChar" 0)))) []))])
+,(FunctionDecl (117,1) (Ident "yellowDoc" 0) [(Equation (117,1) (FunLhs (Ident "yellowDoc" 0) []) (SimpleRhs (117,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "yellowChar" 0)))) []))])
+,(FunctionDecl (118,1) (Ident "bgBlackDoc" 0) [(Equation (118,1) (FunLhs (Ident "bgBlackDoc" 0) []) (SimpleRhs (118,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgBlackChar" 0)))) []))])
+,(FunctionDecl (119,1) (Ident "bgBlueDoc" 0) [(Equation (119,1) (FunLhs (Ident "bgBlueDoc" 0) []) (SimpleRhs (119,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgBlueChar" 0)))) []))])
+,(FunctionDecl (120,1) (Ident "bgCyanDoc" 0) [(Equation (120,1) (FunLhs (Ident "bgCyanDoc" 0) []) (SimpleRhs (120,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgCyanChar" 0)))) []))])
+,(FunctionDecl (121,1) (Ident "bgGreenDoc" 0) [(Equation (121,1) (FunLhs (Ident "bgGreenDoc" 0) []) (SimpleRhs (121,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgGreenChar" 0)))) []))])
+,(FunctionDecl (122,1) (Ident "bgMagentaDoc" 0) [(Equation (122,1) (FunLhs (Ident "bgMagentaDoc" 0) []) (SimpleRhs (122,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgMagentaChar" 0)))) []))])
+,(FunctionDecl (123,1) (Ident "bgRedDoc" 0) [(Equation (123,1) (FunLhs (Ident "bgRedDoc" 0) []) (SimpleRhs (123,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgRedChar" 0)))) []))])
+,(FunctionDecl (124,1) (Ident "bgWhiteDoc" 0) [(Equation (124,1) (FunLhs (Ident "bgWhiteDoc" 0) []) (SimpleRhs (124,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgWhiteChar" 0)))) []))])
+,(FunctionDecl (125,1) (Ident "bgYellowDoc" 0) [(Equation (125,1) (FunLhs (Ident "bgYellowDoc" 0) []) (SimpleRhs (125,16) (Apply (Variable (QualIdent (Just "StyledText") (Ident "enclDoc" 0))) (Variable (QualIdent (Just "StyledText") (Ident "bgYellowChar" 0)))) []))])
+,(TypeSig (127,1) [(Ident "enclDoc" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Doc" 0)) []))))
+,(FunctionDecl (128,1) (Ident "enclDoc" 0) [(Equation (128,1) (FunLhs (Ident "enclDoc" 0) [(VariablePattern (Ident "c" 171))]) (SimpleRhs (128,13) (Apply (Apply (Variable (QualIdent (Just "Pretty") (Ident "enclose" 0))) (Paren (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Variable (QualIdent Nothing (Ident "c" 171)))))) (Paren (Apply (Variable (QualIdent (Just "Pretty") (Ident "char" 0))) (Variable (QualIdent (Just "StyledText") (Ident "endChar" 0)))))) []))])
+,(TypeSig (131,1) [(Ident "plainText" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (132,1) (Ident "plainText" 0) [(Equation (132,1) (FunLhs (Ident "plainText" 0) []) (SimpleRhs (132,13) (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "not" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "StyledText") (Ident "special" 0)))))) []))])
+,(TypeSig (134,1) [(Ident "special" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Char" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (135,1) (Ident "special" 0) [(Equation (135,1) (FunLhs (Ident "special" 0) [(VariablePattern (Ident "n" 175))]) (SimpleRhs (135,13) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Variable (QualIdent Nothing (Ident "n" 175)))) (InfixOp (QualIdent (Just "Prelude") (Ident "elem" 0))) (Paren (InfixApply (List [(Literal (Int (Ident "_" 177) 5)),(Literal (Int (Ident "_" 178) 6)),(Literal (Int (Ident "_" 179) 7))]) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (EnumFromTo (Literal (Int (Ident "_" 180) 16)) (Literal (Int (Ident "_" 181) 31)))))) []))])
+,(TypeSig (138,1) [(Ident "interpret" 0)] (ArrowType (ListType (VariableType (Ident "b" 0))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0)))) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "a" 0)))) (ArrowType (ListType (TupleType [(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0))])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "a" 0)))))))))
+,(FunctionDecl (141,1) (Ident "interpret" 0) [(Equation (141,1) (FunLhs (Ident "interpret" 0) [(AsPattern (Ident "convs" 182) (ParenPattern (InfixPattern (VariablePattern (Ident "b" 182)) (QualIdent Nothing (Ident ":" 0)) (InfixPattern (VariablePattern (Ident "ul" 182)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "cs" 182)))))),(VariablePattern (Ident "combine" 182)),(VariablePattern (Ident "cst" 182)),(VariablePattern (Ident "ast" 182)),(ParenPattern (InfixPattern (AsPattern (Ident "t" 182) (TuplePattern [(VariablePattern (Ident "st" 182)),(VariablePattern (Ident "fg" 182)),(VariablePattern (Ident "bg" 182))])) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "fs" 182)))),(VariablePattern (Ident "s" 182))]) (GuardedRhs [(CondExpr (142,3) (Apply (Variable (QualIdent (Just "Prelude") (Ident "null" 0))) (Variable (QualIdent Nothing (Ident "ys" 183)))) (Apply (Variable (QualIdent Nothing (Ident "f" 183))) (Variable (QualIdent Nothing (Ident "xs" 183))))),(CondExpr (143,3) (InfixApply (Variable (QualIdent Nothing (Ident "code" 183))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 189) 5))) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "combine" 182))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 183))) (Variable (QualIdent Nothing (Ident "xs" 183)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "StyledText") (Ident "interpret" 0))) (Variable (QualIdent Nothing (Ident "convs" 182)))) (Variable (QualIdent Nothing (Ident "combine" 182)))) (Variable (QualIdent Nothing (Ident "cst" 182)))) (Variable (QualIdent Nothing (Ident "ast" 182)))) (Paren (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "b" 182))),(Variable (QualIdent Nothing (Ident "fg" 182))),(Variable (QualIdent Nothing (Ident "bg" 182)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "t" 182))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "fs" 182))))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "ys" 183)))))))),(CondExpr (145,3) (InfixApply (Variable (QualIdent Nothing (Ident "code" 183))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 190) 6))) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "combine" 182))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 183))) (Variable (QualIdent Nothing (Ident "xs" 183)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "StyledText") (Ident "interpret" 0))) (Variable (QualIdent Nothing (Ident "convs" 182)))) (Variable (QualIdent Nothing (Ident "combine" 182)))) (Variable (QualIdent Nothing (Ident "cst" 182)))) (Variable (QualIdent Nothing (Ident "ast" 182)))) (Paren (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "ul" 182))),(Variable (QualIdent Nothing (Ident "fg" 182))),(Variable (QualIdent Nothing (Ident "bg" 182)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "t" 182))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "fs" 182))))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "ys" 183)))))))),(CondExpr (147,3) (InfixApply (Variable (QualIdent Nothing (Ident "code" 183))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 191) 7))) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "combine" 182))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 183))) (Variable (QualIdent Nothing (Ident "xs" 183)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "StyledText") (Ident "interpret" 0))) (Variable (QualIdent Nothing (Ident "convs" 182)))) (Variable (QualIdent Nothing (Ident "combine" 182)))) (Variable (QualIdent Nothing (Ident "cst" 182)))) (Variable (QualIdent Nothing (Ident "ast" 182)))) (Variable (QualIdent Nothing (Ident "fs" 182)))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "ys" 183)))))))),(CondExpr (149,3) (InfixApply (Variable (QualIdent Nothing (Ident "code" 183))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Literal (Int (Ident "_" 192) 24))) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "combine" 182))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 183))) (Variable (QualIdent Nothing (Ident "xs" 183)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "StyledText") (Ident "interpret" 0))) (Variable (QualIdent Nothing (Ident "convs" 182)))) (Variable (QualIdent Nothing (Ident "combine" 182)))) (Variable (QualIdent Nothing (Ident "cst" 182)))) (Variable (QualIdent Nothing (Ident "ast" 182)))) (Paren (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "st" 182))),(Variable (QualIdent Nothing (Ident "g" 183))),(Variable (QualIdent Nothing (Ident "bg" 182)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "t" 182))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "fs" 182))))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "ys" 183)))))))),(CondExpr (151,3) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "combine" 182))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 183))) (Variable (QualIdent Nothing (Ident "xs" 183)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Apply (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "StyledText") (Ident "interpret" 0))) (Variable (QualIdent Nothing (Ident "convs" 182)))) (Variable (QualIdent Nothing (Ident "combine" 182)))) (Variable (QualIdent Nothing (Ident "cst" 182)))) (Variable (QualIdent Nothing (Ident "ast" 182)))) (Paren (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "st" 182))),(Variable (QualIdent Nothing (Ident "fg" 182))),(Variable (QualIdent Nothing (Ident "g" 183)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "t" 182))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "fs" 182))))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "tail" 0))) (Variable (QualIdent Nothing (Ident "ys" 183))))))))] [(PatternDecl (154,3) (VariablePattern (Ident "f" 183)) (SimpleRhs (154,7) (InfixApply (Variable (QualIdent Nothing (Ident "ast" 182))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (Apply (Apply (Variable (QualIdent Nothing (Ident "cst" 182))) (Variable (QualIdent Nothing (Ident "st" 182)))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "cst" 182))) (Variable (QualIdent Nothing (Ident "fg" 182)))) (Variable (QualIdent Nothing (Ident "bg" 182))))))) [])),(PatternDecl (155,3) (TuplePattern [(VariablePattern (Ident "xs" 183)),(VariablePattern (Ident "ys" 183))]) (SimpleRhs (155,13) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "break" 0))) (Variable (QualIdent (Just "StyledText") (Ident "special" 0)))) (Variable (QualIdent Nothing (Ident "s" 182)))) [])),(PatternDecl (156,3) (VariablePattern (Ident "code" 183)) (SimpleRhs (156,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "head" 0))) (Variable (QualIdent Nothing (Ident "ys" 183)))))) [])),(PatternDecl (157,3) (VariablePattern (Ident "g" 183)) (SimpleRhs (157,7) (InfixApply (Variable (QualIdent Nothing (Ident "cs" 182))) (InfixOp (QualIdent (Just "Prelude") (Ident "!!" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "code" 183))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 188) 16))))) []))]))])
+,(TypeSig (160,1) [(Ident "printStyledText" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (161,1) (Ident "printStyledText" 0) [(Equation (161,1) (FunLhs (Ident "printStyledText" 0) []) (SimpleRhs (161,19) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "StyledText") (Ident "toAnsiString" 0)))) []))])
+,(TypeSig (163,1) [(Ident "toAnsiString" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (164,1) (Ident "toAnsiString" 0) [(Equation (164,1) (FunLhs (Ident "toAnsiString" 0) []) (SimpleRhs (165,5) (Apply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "StyledText") (Ident "interpret" 0))) (List [(Variable (QualIdent (Just "AnsiCodes") (Ident "bold" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "underline" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "black" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "blue" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "cyan" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "green" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "magenta" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "red" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "white" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "yellow" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "bgBlack" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "bgBlue" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "bgCyan" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "bgGreen" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "bgMagenta" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "bgRed" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "bgWhite" 0))),(Variable (QualIdent (Just "AnsiCodes") (Ident "bgYellow" 0)))])) (Variable (QualIdent (Just "Prelude") (Ident "++" 0)))) (Variable (QualIdent (Just "Prelude") (Ident "." 0)))) (Variable (QualIdent (Just "Prelude") (Ident "id" 0)))) (List [(Tuple [(Variable (QualIdent (Just "Prelude") (Ident "id" 0))),(Variable (QualIdent (Just "Prelude") (Ident "id" 0))),(Variable (QualIdent (Just "Prelude") (Ident "id" 0)))])])) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/StyledText.efc b/src/lib/Curry/Module/.curry/StyledText.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/StyledText.efc
@@ -0,0 +1,1 @@
+Prog "StyledText" ["AnsiCodes","Prelude","Pretty","Char"] [TypeSyn ((Nothing,Nothing,"StyledText","ShowS")) Public [] (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))] [Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","boldChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  5)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","underlineChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  6)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","endChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  7)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","blackChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  16)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","blueChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  17)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","cyanChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  18)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","greenChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  19)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","magentaChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  20)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","redChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  21)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","whiteChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  22)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","yellowChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  23)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgBlackChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  24)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgBlueChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  25)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgCyanChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  26)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgGreenChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  27)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgMagentaChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  28)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgRedChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  29)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgWhiteChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  30)])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgYellowChar")) 0 Private (TCons ((Nothing,Nothing,"Prelude","Char")) []) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Lit (Intc  31)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bold")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","boldChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","underline")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","underlineChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","black")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","blackChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","blue")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","blueChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","cyan")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","cyanChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","green")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","greenChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","magenta")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","magentaChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","red")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","redChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","white")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","whiteChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","yellow")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","yellowChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bgBlack")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgBlackChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bgBlue")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgBlueChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bgCyan")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgCyanChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bgGreen")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgGreenChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bgMagenta")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgMagentaChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bgRed")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgRedChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bgWhite")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgWhiteChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","bgYellow")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgYellowChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","encl")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","endChar")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","boldS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","boldChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","underlineS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","underlineChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","blackS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","blackChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","blueS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","blueChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","cyanS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","cyanChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","greenS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","greenChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","magentaS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","magentaChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","redS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","redChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","whiteS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","whiteChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","yellowS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","yellowChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","bgBlackS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgBlackChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","bgBlueS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgBlueChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","bgCyanS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgCyanChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","bgGreenS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgGreenChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","bgMagentaS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgMagentaChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","bgRedS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgRedChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","bgWhiteS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgWhiteChar")) []])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"StyledText","bgYellowS")) 0 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]))) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgYellowChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"StyledText","enclS")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1),(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude",".")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),2)),Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","endChar")) []]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","boldDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","boldChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","underlineDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","underlineChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","blackDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","blackChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","blueDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","blueChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","cyanDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","cyanChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","greenDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","greenChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","magentaDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","magentaChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","redDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","redChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","whiteDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","whiteChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","yellowDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","yellowChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","bgBlackDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgBlackChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","bgBlueDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgBlueChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","bgCyanDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgCyanChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","bgGreenDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgGreenChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","bgMagentaDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgMagentaChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","bgRedDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgRedChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","bgWhiteDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgWhiteChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"StyledText","bgYellowDoc")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) [])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","bgYellowChar")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") []))),"StyledText","enclDoc")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (FuncType (TCons ((Nothing,Nothing,"Pretty","Doc")) []) (TCons ((Nothing,Nothing,"Pretty","Doc")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (FuncType (TCons (Nothing,Nothing,"Pretty","Doc") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])))),"Pretty","enclose")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Pretty","Doc") [])),"Pretty","char")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Char") []),"StyledText","endChar")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","plainText")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","not")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"StyledText","special")) []]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"StyledText","special")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Char")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Char") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","elem")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Char") []),1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  5),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  6),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  7),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","enumFromTo")) [Lit (Intc  16),Lit (Intc  31)]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))))))),"StyledText","interpret")) 6 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 1))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,,)")) [TVar 0,TVar 0,TVar 0]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 1))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1),(Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2),(Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),3),(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),7),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),8)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),8))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),9),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),10)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]),11),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]),12)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]),11))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 115) (FuncType (TVar 116) (FuncType (TVar 117) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0])))),"Prelude","(,,)")) [(Just (TVar 115),13),(Just (TVar 116),14),(Just (TVar 117),15)]) (Let [((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)),16),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 131) (TVar 132)) (FuncType (TVar 131) (TVar 132))),"Prelude","$")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 129) (TVar 130)) (FuncType (TVar 129) (TVar 130))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 123) (TVar 124)) (FuncType (TVar 123) (TVar 124))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),3)),Var ((Just (TVar 115),13))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 127) (TVar 128)) (FuncType (TVar 127) (TVar 128))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 125) (TVar 126)) (FuncType (TVar 125) (TVar 126))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),3)),Var ((Just (TVar 116),14))],Var ((Just (TVar 117),15))]]])] (Let [((Just (TVar 118),17),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 134) (TVar 135)) (FuncType (TVar 134) (TVar 135))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 133) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 133]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 133],TCons (Nothing,Nothing,"Prelude","[]") [TVar 133]]))),"Prelude","break")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"StyledText","special")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),18),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","interpret._#selFP3#xs")) [Var ((Just (TVar 118),17))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),19),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","interpret._#selFP4#ys")) [Var ((Just (TVar 118),17))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),20),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 136]) (TVar 136)),"Prelude","head")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),19))]])] (Let [((Just (TVar 85),21),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 137]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TVar 137))),"Prelude","!!")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),10)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),20)),Lit (Intc  16)]])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Prelude","null")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),19))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),18))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),20)),Lit (Intc  5)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),18))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))))))),"StyledText","interpret")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 116) (FuncType (TVar 117) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0])))),"Prelude","(,,)")) [Var ((Just (TVar 0),7)),Var ((Just (TVar 116),14)),Var ((Just (TVar 117),15))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]),11)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]),12))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),19))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),20)),Lit (Intc  6)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),18))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))))))),"StyledText","interpret")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 116) (FuncType (TVar 117) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0])))),"Prelude","(,,)")) [Var ((Just (TVar 0),9)),Var ((Just (TVar 116),14)),Var ((Just (TVar 117),15))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]),11)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]),12))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),19))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),20)),Lit (Intc  7)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),18))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))))))),"StyledText","interpret")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]),12)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),19))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),20)),Lit (Intc  24)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),18))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))))))),"StyledText","interpret")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 115) (FuncType (TVar 85) (FuncType (TVar 117) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0])))),"Prelude","(,,)")) [Var ((Just (TVar 115),13)),Var ((Just (TVar 85),21)),Var ((Just (TVar 117),15))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]),11)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]),12))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),19))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1))),"Prelude","$")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1)),16)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),18))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))))))),"StyledText","interpret")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Var ((Just (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))),3)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 1))),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 115) (FuncType (TVar 116) (FuncType (TVar 85) (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0])))),"Prelude","(,,)")) [Var ((Just (TVar 115),13)),Var ((Just (TVar 116),14)),Var ((Just (TVar 85),21))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]),11)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]),12))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","tail")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),19))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TVar 1),"Prelude","failed")) [])])])])])])])))))))])])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","interpret._#selFP3#xs")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TVar 2),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","interpret._#selFP4#ys")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 1),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"StyledText","printStyledText")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStrLn")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","toAnsiString")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"StyledText","toAnsiString")) 0 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))) (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))))))),"StyledText","interpret")) [Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bold")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","underline")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","black")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","blue")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","cyan")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","green")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","magenta")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","red")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","white")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","yellow")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgBlack")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgBlue")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgCyan")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgGreen")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgMagenta")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgRed")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgWhite")) [],Comb ConsCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"AnsiCodes","bgYellow")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])))),"Prelude",".")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","id")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,,)") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (FuncType (TVar 30) (TVar 30)) (FuncType (FuncType (TVar 31) (TVar 31)) (FuncType (FuncType (TVar 32) (TVar 32)) (TCons (Nothing,Nothing,"Prelude","(,,)") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])])))),"Prelude","(,,)")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 30) (TVar 30)),"Prelude","id")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 31) (TVar 31)),"Prelude","id")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 32) (TVar 32)),"Prelude","id")) []],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,,)") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])]]),"Prelude","[]")) []]]))] []
diff --git a/src/lib/Curry/Module/.curry/StyledText.fcy b/src/lib/Curry/Module/.curry/StyledText.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/StyledText.fcy
@@ -0,0 +1,1 @@
+Prog "StyledText" ["AnsiCodes","Prelude","Pretty","Char"] [TypeSyn ("StyledText","ShowS") Public [] (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))] [Func ("StyledText","boldChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  5)])),Func ("StyledText","underlineChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  6)])),Func ("StyledText","endChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  7)])),Func ("StyledText","blackChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  16)])),Func ("StyledText","blueChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  17)])),Func ("StyledText","cyanChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  18)])),Func ("StyledText","greenChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  19)])),Func ("StyledText","magentaChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  20)])),Func ("StyledText","redChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  21)])),Func ("StyledText","whiteChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  22)])),Func ("StyledText","yellowChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  23)])),Func ("StyledText","bgBlackChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  24)])),Func ("StyledText","bgBlueChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  25)])),Func ("StyledText","bgCyanChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  26)])),Func ("StyledText","bgGreenChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  27)])),Func ("StyledText","bgMagentaChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  28)])),Func ("StyledText","bgRedChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  29)])),Func ("StyledText","bgWhiteChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  30)])),Func ("StyledText","bgYellowChar") 0 Private (TCons ("Prelude","Char") []) (Rule [] (Comb FuncCall ("Prelude","chr") [Lit (Intc  31)])),Func ("StyledText","bold") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","boldChar") []])),Func ("StyledText","underline") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","underlineChar") []])),Func ("StyledText","black") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","blackChar") []])),Func ("StyledText","blue") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","blueChar") []])),Func ("StyledText","cyan") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","cyanChar") []])),Func ("StyledText","green") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","greenChar") []])),Func ("StyledText","magenta") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","magentaChar") []])),Func ("StyledText","red") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","redChar") []])),Func ("StyledText","white") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","whiteChar") []])),Func ("StyledText","yellow") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","yellowChar") []])),Func ("StyledText","bgBlack") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","bgBlackChar") []])),Func ("StyledText","bgBlue") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","bgBlueChar") []])),Func ("StyledText","bgCyan") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","bgCyanChar") []])),Func ("StyledText","bgGreen") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","bgGreenChar") []])),Func ("StyledText","bgMagenta") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","bgMagentaChar") []])),Func ("StyledText","bgRed") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","bgRedChar") []])),Func ("StyledText","bgWhite") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","bgWhiteChar") []])),Func ("StyledText","bgYellow") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","encl") [Comb FuncCall ("StyledText","bgYellowChar") []])),Func ("StyledText","encl") 2 Private (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Comb ConsCall ("Prelude",":") [Var 1,Comb FuncCall ("Prelude","++") [Var 2,Comb ConsCall ("Prelude",":") [Comb FuncCall ("StyledText","endChar") [],Comb ConsCall ("Prelude","[]") []]]])),Func ("StyledText","boldS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","boldChar") []])),Func ("StyledText","underlineS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","underlineChar") []])),Func ("StyledText","blackS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","blackChar") []])),Func ("StyledText","blueS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","blueChar") []])),Func ("StyledText","cyanS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","cyanChar") []])),Func ("StyledText","greenS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","greenChar") []])),Func ("StyledText","magentaS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","magentaChar") []])),Func ("StyledText","redS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","redChar") []])),Func ("StyledText","whiteS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","whiteChar") []])),Func ("StyledText","yellowS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","yellowChar") []])),Func ("StyledText","bgBlackS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","bgBlackChar") []])),Func ("StyledText","bgBlueS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","bgBlueChar") []])),Func ("StyledText","bgCyanS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","bgCyanChar") []])),Func ("StyledText","bgGreenS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","bgGreenChar") []])),Func ("StyledText","bgMagentaS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","bgMagentaChar") []])),Func ("StyledText","bgRedS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","bgRedChar") []])),Func ("StyledText","bgWhiteS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","bgWhiteChar") []])),Func ("StyledText","bgYellowS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Comb (FuncPartCall 1) ("StyledText","enclS") [Comb FuncCall ("StyledText","bgYellowChar") []])),Func ("StyledText","enclS") 2 Private (FuncType (TCons ("Prelude","Char") []) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Prelude",":") [Var 1],Comb FuncCall ("Prelude",".") [Var 2,Comb (ConsPartCall 1) ("Prelude",":") [Comb FuncCall ("StyledText","endChar") []]]])),Func ("StyledText","boldDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","boldChar") []])),Func ("StyledText","underlineDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","underlineChar") []])),Func ("StyledText","blackDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","blackChar") []])),Func ("StyledText","blueDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","blueChar") []])),Func ("StyledText","cyanDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","cyanChar") []])),Func ("StyledText","greenDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","greenChar") []])),Func ("StyledText","magentaDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","magentaChar") []])),Func ("StyledText","redDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","redChar") []])),Func ("StyledText","whiteDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","whiteChar") []])),Func ("StyledText","yellowDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","yellowChar") []])),Func ("StyledText","bgBlackDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","bgBlackChar") []])),Func ("StyledText","bgBlueDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","bgBlueChar") []])),Func ("StyledText","bgCyanDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","bgCyanChar") []])),Func ("StyledText","bgGreenDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","bgGreenChar") []])),Func ("StyledText","bgMagentaDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","bgMagentaChar") []])),Func ("StyledText","bgRedDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","bgRedChar") []])),Func ("StyledText","bgWhiteDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","bgWhiteChar") []])),Func ("StyledText","bgYellowDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Comb FuncCall ("StyledText","enclDoc") [Comb FuncCall ("StyledText","bgYellowChar") []])),Func ("StyledText","enclDoc") 1 Private (FuncType (TCons ("Prelude","Char") []) (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") []))) (Rule [1] (Comb (FuncPartCall 1) ("Pretty","enclose") [Comb FuncCall ("Pretty","char") [Var 1],Comb FuncCall ("Pretty","char") [Comb FuncCall ("StyledText","endChar") []]])),Func ("StyledText","plainText") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Comb (FuncPartCall 1) ("StyledText","special") []]])),Func ("StyledText","special") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Comb FuncCall ("Prelude","ord") [Var 1]],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Intc  5),Comb ConsCall ("Prelude",":") [Lit (Intc  6),Comb ConsCall ("Prelude",":") [Lit (Intc  7),Comb ConsCall ("Prelude","[]") []]]],Comb FuncCall ("Prelude","enumFromTo") [Lit (Intc  16),Lit (Intc  31)]]])),Func ("StyledText","interpret") 6 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (FuncType (TVar 1) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 1))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,,)") [TVar 0,TVar 0,TVar 0]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 1))))))) (Rule [1,2,3,4,5,6] (Case  Flex (Var 1) [Branch (Pattern ("Prelude",":") [7,8]) (Case  Flex (Var 8) [Branch (Pattern ("Prelude",":") [9,10]) (Case  Flex (Var 5) [Branch (Pattern ("Prelude",":") [11,12]) (Case  Flex (Var 11) [Branch (Pattern ("Prelude","(,,)") [13,14,15]) (Let [(16,Comb FuncCall ("Prelude","$") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Var 13],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Var 14],Var 15]]])] (Let [(17,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("StyledText","special") []],Var 6])] (Let [(18,Comb FuncCall ("StyledText","interpret._#selFP3#xs") [Var 17])] (Let [(19,Comb FuncCall ("StyledText","interpret._#selFP4#ys") [Var 17])] (Let [(20,Comb FuncCall ("Prelude","ord") [Comb FuncCall ("Prelude","head") [Var 19]])] (Let [(21,Comb FuncCall ("Prelude","!!") [Var 10,Comb FuncCall ("Prelude","-") [Var 20,Lit (Intc  16)]])] (Case  Rigid (Comb FuncCall ("Prelude","null") [Var 19]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Var 16,Var 18]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 20,Lit (Intc  5)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","apply") [Var 2,Comb FuncCall ("Prelude","apply") [Var 16,Var 18]],Comb FuncCall ("StyledText","interpret") [Var 1,Var 2,Var 3,Var 4,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,,)") [Var 7,Var 14,Var 15],Comb ConsCall ("Prelude",":") [Var 11,Var 12]],Comb FuncCall ("Prelude","tail") [Var 19]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 20,Lit (Intc  6)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","apply") [Var 2,Comb FuncCall ("Prelude","apply") [Var 16,Var 18]],Comb FuncCall ("StyledText","interpret") [Var 1,Var 2,Var 3,Var 4,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,,)") [Var 9,Var 14,Var 15],Comb ConsCall ("Prelude",":") [Var 11,Var 12]],Comb FuncCall ("Prelude","tail") [Var 19]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 20,Lit (Intc  7)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","apply") [Var 2,Comb FuncCall ("Prelude","apply") [Var 16,Var 18]],Comb FuncCall ("StyledText","interpret") [Var 1,Var 2,Var 3,Var 4,Var 12,Comb FuncCall ("Prelude","tail") [Var 19]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","<") [Var 20,Lit (Intc  24)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","apply") [Var 2,Comb FuncCall ("Prelude","apply") [Var 16,Var 18]],Comb FuncCall ("StyledText","interpret") [Var 1,Var 2,Var 3,Var 4,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,,)") [Var 13,Var 21,Var 15],Comb ConsCall ("Prelude",":") [Var 11,Var 12]],Comb FuncCall ("Prelude","tail") [Var 19]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","apply") [Var 2,Comb FuncCall ("Prelude","apply") [Var 16,Var 18]],Comb FuncCall ("StyledText","interpret") [Var 1,Var 2,Var 3,Var 4,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,,)") [Var 13,Var 14,Var 21],Comb ConsCall ("Prelude",":") [Var 11,Var 12]],Comb FuncCall ("Prelude","tail") [Var 19]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])])])))))))])])])])),Func ("StyledText","interpret._#selFP3#xs") 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 ("StyledText","interpret._#selFP4#ys") 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 ("StyledText","printStyledText") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","putStrLn") [],Comb FuncCall ("StyledText","toAnsiString") []])),Func ("StyledText","toAnsiString") 0 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("StyledText","interpret") [Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bold") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","underline") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","black") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","blue") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","cyan") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","green") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","magenta") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","red") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","white") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","yellow") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bgBlack") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bgBlue") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bgCyan") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bgGreen") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bgMagenta") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bgRed") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bgWhite") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("AnsiCodes","bgYellow") [],Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]],Comb (FuncPartCall 2) ("Prelude","++") [],Comb (FuncPartCall 2) ("Prelude",".") [],Comb (FuncPartCall 1) ("Prelude","id") [],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,,)") [Comb (FuncPartCall 1) ("Prelude","id") [],Comb (FuncPartCall 1) ("Prelude","id") [],Comb (FuncPartCall 1) ("Prelude","id") []],Comb ConsCall ("Prelude","[]") []]]))] []
diff --git a/src/lib/Curry/Module/.curry/StyledText.fint b/src/lib/Curry/Module/.curry/StyledText.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/StyledText.fint
@@ -0,0 +1,1 @@
+Prog "StyledText" ["AnsiCodes","Prelude","Pretty","Char"] [Type ("Pretty","Doc") Public [] [],TypeSyn ("StyledText","ShowS") Public [] (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))] [Func ("StyledText","bold") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","underline") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","black") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","blue") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","cyan") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","green") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","magenta") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","red") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","white") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","yellow") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","bgBlack") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","bgBlue") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","bgCyan") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","bgGreen") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","bgMagenta") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","bgRed") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","bgWhite") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","bgYellow") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","boldS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","underlineS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","blackS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","blueS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","cyanS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","greenS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","magentaS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","redS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","whiteS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","yellowS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","bgBlackS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","bgBlueS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","bgCyanS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","bgGreenS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","bgMagentaS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","bgRedS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","bgWhiteS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","bgYellowS") 0 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [] (Var 0)),Func ("StyledText","boldDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","underlineDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","blackDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","blueDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","cyanDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","greenDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","magentaDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","redDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","whiteDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","yellowDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","bgBlackDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","bgBlueDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","bgCyanDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","bgGreenDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","bgMagentaDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","bgRedDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","bgWhiteDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","bgYellowDoc") 0 Public (FuncType (TCons ("Pretty","Doc") []) (TCons ("Pretty","Doc") [])) (Rule [] (Var 0)),Func ("StyledText","plainText") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("StyledText","printStyledText") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/StyledText.uacy b/src/lib/Curry/Module/.curry/StyledText.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/StyledText.uacy
@@ -0,0 +1,85 @@
+CurryProg "StyledText"
+ ["Prelude","Char","Pretty","AnsiCodes"]
+ [CTypeSyn ("StyledText","ShowS") Public [] (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") []))]
+ [CFunc ("StyledText","bgBlack") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgBlackChar")))] []]),
+  CFunc ("StyledText","bgBlackChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 24)))] []]),
+  CFunc ("StyledText","bgBlackDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgBlackChar")))] []]),
+  CFunc ("StyledText","bgBlackS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgBlackChar")))] []]),
+  CFunc ("StyledText","bgBlue") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgBlueChar")))] []]),
+  CFunc ("StyledText","bgBlueChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 25)))] []]),
+  CFunc ("StyledText","bgBlueDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgBlueChar")))] []]),
+  CFunc ("StyledText","bgBlueS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgBlueChar")))] []]),
+  CFunc ("StyledText","bgCyan") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgCyanChar")))] []]),
+  CFunc ("StyledText","bgCyanChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 26)))] []]),
+  CFunc ("StyledText","bgCyanDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgCyanChar")))] []]),
+  CFunc ("StyledText","bgCyanS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgCyanChar")))] []]),
+  CFunc ("StyledText","bgGreen") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgGreenChar")))] []]),
+  CFunc ("StyledText","bgGreenChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 27)))] []]),
+  CFunc ("StyledText","bgGreenDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgGreenChar")))] []]),
+  CFunc ("StyledText","bgGreenS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgGreenChar")))] []]),
+  CFunc ("StyledText","bgMagenta") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgMagentaChar")))] []]),
+  CFunc ("StyledText","bgMagentaChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 28)))] []]),
+  CFunc ("StyledText","bgMagentaDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgMagentaChar")))] []]),
+  CFunc ("StyledText","bgMagentaS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgMagentaChar")))] []]),
+  CFunc ("StyledText","bgRed") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgRedChar")))] []]),
+  CFunc ("StyledText","bgRedChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 29)))] []]),
+  CFunc ("StyledText","bgRedDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgRedChar")))] []]),
+  CFunc ("StyledText","bgRedS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgRedChar")))] []]),
+  CFunc ("StyledText","bgWhite") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgWhiteChar")))] []]),
+  CFunc ("StyledText","bgWhiteChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 30)))] []]),
+  CFunc ("StyledText","bgWhiteDoc") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgWhiteChar")))] []]),
+  CFunc ("StyledText","bgWhiteS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgWhiteChar")))] []]),
+  CFunc ("StyledText","bgYellow") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","bgYellowChar")))] []]),
+  CFunc ("StyledText","bgYellowChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 31)))] []]),
+  CFunc ("StyledText","bgYellowDoc") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","bgYellowChar")))] []]),
+  CFunc ("StyledText","bgYellowS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","bgYellowChar")))] []]),
+  CFunc ("StyledText","black") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","blackChar")))] []]),
+  CFunc ("StyledText","blackChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 16)))] []]),
+  CFunc ("StyledText","blackDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","blackChar")))] []]),
+  CFunc ("StyledText","blackS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","blackChar")))] []]),
+  CFunc ("StyledText","blue") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","blueChar")))] []]),
+  CFunc ("StyledText","blueChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 17)))] []]),
+  CFunc ("StyledText","blueDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","blueChar")))] []]),
+  CFunc ("StyledText","blueS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","blueChar")))] []]),
+  CFunc ("StyledText","bold") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","boldChar")))] []]),
+  CFunc ("StyledText","boldChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 5)))] []]),
+  CFunc ("StyledText","boldDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","boldChar")))] []]),
+  CFunc ("StyledText","boldS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","boldChar")))] []]),
+  CFunc ("StyledText","cyan") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","cyanChar")))] []]),
+  CFunc ("StyledText","cyanChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 18)))] []]),
+  CFunc ("StyledText","cyanDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","cyanChar")))] []]),
+  CFunc ("StyledText","cyanS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","cyanChar")))] []]),
+  CFunc ("StyledText","encl") 2 Private (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") []))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"c"))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"s"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("StyledText","endChar"))) (CSymbol ("Prelude","[]")))))] []]),
+  CFunc ("StyledText","enclDoc") 1 Private (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") []))) (CRules CFlex [CRule [CPVar (0,"c")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Pretty","enclose")) (CApply (CSymbol ("Pretty","char")) (CVar (0,"c")))) (CApply (CSymbol ("Pretty","char")) (CSymbol ("StyledText","endChar"))))] []]),
+  CFunc ("StyledText","enclS") 2 Private (CFuncType (CTCons ("Prelude","Char") []) (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") []))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"c"))) (CVar (2,"x0"))))) (CApply (CApply (CSymbol ("Prelude",".")) (CVar (1,"s"))) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("StyledText","endChar"))) (CVar (3,"x0"))))))] []]),
+  CFunc ("StyledText","endChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 7)))] []]),
+  CFunc ("StyledText","green") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","greenChar")))] []]),
+  CFunc ("StyledText","greenChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 19)))] []]),
+  CFunc ("StyledText","greenDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","greenChar")))] []]),
+  CFunc ("StyledText","greenS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","greenChar")))] []]),
+  CFunc ("StyledText","interpret") 6 Private (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"b")]) (CFuncType (CFuncType (CTVar (1,"a")) (CFuncType (CTVar (1,"a")) (CTVar (1,"a")))) (CFuncType (CFuncType (CTVar (0,"b")) (CFuncType (CTVar (0,"b")) (CTVar (0,"b")))) (CFuncType (CFuncType (CTVar (0,"b")) (CFuncType (CTCons ("Prelude","String") []) (CTVar (1,"a")))) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,,)") [CTVar (0,"b"),CTVar (0,"b"),CTVar (0,"b")]]) (CFuncType (CTCons ("Prelude","String") []) (CTVar (1,"a")))))))) (CRules CFlex [CRule [CPAs (3,"convs") (CPComb ("Prelude",":") [CPVar (0,"b"),CPComb ("Prelude",":") [CPVar (1,"ul"),CPVar (2,"cs")]]),CPVar (4,"combine"),CPVar (5,"cst"),CPVar (6,"ast"),CPComb ("Prelude",":") [CPAs (10,"t") (CPComb ("Prelude","(,,)") [CPVar (7,"st"),CPVar (8,"fg"),CPVar (9,"bg")]),CPVar (11,"fs")],CPVar (12,"s")] [(CApply (CSymbol ("Prelude","null")) (CVar (15,"ys")),CApply (CVar (13,"f")) (CVar (14,"xs"))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (16,"code"))) (CLit (CIntc 5)),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (0,"b"))) (CVar (8,"fg"))) (CVar (9,"bg")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (10,"t"))) (CVar (11,"fs"))))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys"))))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (16,"code"))) (CLit (CIntc 6)),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (1,"ul"))) (CVar (8,"fg"))) (CVar (9,"bg")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (10,"t"))) (CVar (11,"fs"))))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys"))))),(CApply (CApply (CSymbol ("Prelude","==")) (CVar (16,"code"))) (CLit (CIntc 7)),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CVar (11,"fs"))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys"))))),(CApply (CApply (CSymbol ("Prelude","<")) (CVar (16,"code"))) (CLit (CIntc 24)),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (7,"st"))) (CVar (17,"g"))) (CVar (9,"bg")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (10,"t"))) (CVar (11,"fs"))))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys"))))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CSymbol ("Prelude","$")) (CApply (CVar (4,"combine")) (CApply (CVar (13,"f")) (CVar (14,"xs"))))) (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CVar (3,"convs"))) (CVar (4,"combine"))) (CVar (5,"cst"))) (CVar (6,"ast"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CVar (7,"st"))) (CVar (8,"fg"))) (CVar (17,"g")))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (10,"t"))) (CVar (11,"fs"))))) (CApply (CSymbol ("Prelude","tail")) (CVar (15,"ys")))))] [CLocalPat (CPVar (13,"f")) (CApply (CApply (CSymbol ("Prelude","$")) (CVar (6,"ast"))) (CApply (CApply (CVar (5,"cst")) (CVar (7,"st"))) (CApply (CApply (CVar (5,"cst")) (CVar (8,"fg"))) (CVar (9,"bg"))))) [],CLocalPat (CPComb ("Prelude","(,)") [CPVar (14,"xs"),CPVar (15,"ys")]) (CApply (CApply (CSymbol ("Prelude","break")) (CSymbol ("StyledText","special"))) (CVar (12,"s"))) [],CLocalPat (CPVar (16,"code")) (CApply (CSymbol ("Prelude","ord")) (CApply (CSymbol ("Prelude","head")) (CVar (15,"ys")))) [],CLocalPat (CPVar (17,"g")) (CApply (CApply (CSymbol ("Prelude","!!")) (CVar (2,"cs"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (16,"code"))) (CLit (CIntc 16)))) []]]),
+  CFunc ("StyledText","magenta") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","magentaChar")))] []]),
+  CFunc ("StyledText","magentaChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 20)))] []]),
+  CFunc ("StyledText","magentaDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","magentaChar")))] []]),
+  CFunc ("StyledText","magentaS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","magentaChar")))] []]),
+  CFunc ("StyledText","plainText") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","not"))) (CSymbol ("StyledText","special"))))] []]),
+  CFunc ("StyledText","printStyledText") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","putStrLn"))) (CSymbol ("StyledText","toAnsiString")))] []]),
+  CFunc ("StyledText","red") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","redChar")))] []]),
+  CFunc ("StyledText","redChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 21)))] []]),
+  CFunc ("StyledText","redDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","redChar")))] []]),
+  CFunc ("StyledText","redS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","redChar")))] []]),
+  CFunc ("StyledText","special") 1 Private (CFuncType (CTCons ("Prelude","Char") []) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","elem")) (CApply (CSymbol ("Prelude","ord")) (CVar (0,"n")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 5))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 6))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 7))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude","enumFromTo")) (CLit (CIntc 16))) (CLit (CIntc 31)))))] []]),
+  CFunc ("StyledText","toAnsiString") 0 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("StyledText","interpret")) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bold"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","underline"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","black"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","blue"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","cyan"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","green"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","magenta"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","red"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","white"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","yellow"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgBlack"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgBlue"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgCyan"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgGreen"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgMagenta"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgRed"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgWhite"))) (CApply (CApply (CSymbol ("Prelude",":")) (CSymbol ("AnsiCodes","bgYellow"))) (CSymbol ("Prelude","[]"))))))))))))))))))))) (CSymbol ("Prelude","++"))) (CSymbol ("Prelude","."))) (CSymbol ("Prelude","id"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CApply (CSymbol ("Prelude","(,,)")) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id"))) (CSymbol ("Prelude","id")))) (CSymbol ("Prelude","[]"))))] []]),
+  CFunc ("StyledText","underline") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","underlineChar")))] []]),
+  CFunc ("StyledText","underlineChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 6)))] []]),
+  CFunc ("StyledText","underlineDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","underlineChar")))] []]),
+  CFunc ("StyledText","underlineS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","underlineChar")))] []]),
+  CFunc ("StyledText","white") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","whiteChar")))] []]),
+  CFunc ("StyledText","whiteChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 22)))] []]),
+  CFunc ("StyledText","whiteDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","whiteChar")))] []]),
+  CFunc ("StyledText","whiteS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","whiteChar")))] []]),
+  CFunc ("StyledText","yellow") 0 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","encl")) (CSymbol ("StyledText","yellowChar")))] []]),
+  CFunc ("StyledText","yellowChar") 0 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","chr")) (CLit (CIntc 23)))] []]),
+  CFunc ("StyledText","yellowDoc") 0 Public (CFuncType (CTCons ("Pretty","Doc") []) (CTCons ("Pretty","Doc") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclDoc")) (CSymbol ("StyledText","yellowChar")))] []]),
+  CFunc ("StyledText","yellowS") 0 Public (CFuncType (CTCons ("StyledText","ShowS") []) (CTCons ("StyledText","ShowS") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CSymbol ("StyledText","enclS")) (CSymbol ("StyledText","yellowChar")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/System.acy b/src/lib/Curry/Module/.curry/System.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/System.acy
@@ -0,0 +1,21 @@
+CurryProg "System"
+ ["Prelude","Global"]
+ []
+ [CFunc ("System","environ") 0 Private (CTCons ("Global","Global") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Global","global")) (CSymbol ("Prelude","[]"))) (CSymbol ("Global","Temporary")))] []]),
+  CFunc ("System","exitWith") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"exitcode")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("System","prim_exitWith"))) (CVar (0,"exitcode")))] []]),
+  CFunc ("System","getArgs") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]) (CExternal "getArgs"),
+  CFunc ("System","getCPUTime") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "getCPUTime"),
+  CFunc ("System","getElapsedTime") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "getElapsedTime"),
+  CFunc ("System","getEnviron") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CRules CFlex [CRule [CPVar (0,"evar")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"envs")) (CApply (CSymbol ("Global","readGlobal")) (CSymbol ("System","environ"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("System","prim_getEnviron"))) (CVar (0,"evar")))) (CSymbol ("Prelude","return"))) (CApply (CApply (CSymbol ("Prelude","lookup")) (CVar (0,"evar"))) (CVar (1,"envs"))))])] []]),
+  CFunc ("System","getHostname") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CExternal "getHostname"),
+  CFunc ("System","getPID") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "getPID"),
+  CFunc ("System","getProgName") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CExternal "getProgName"),
+  CFunc ("System","prim_exitWith") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CExternal "prim_exitWith"),
+  CFunc ("System","prim_getEnviron") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]])) (CExternal "prim_getEnviron"),
+  CFunc ("System","prim_sleep") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_sleep"),
+  CFunc ("System","prim_system") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []])) (CExternal "prim_system"),
+  CFunc ("System","setEnviron") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"evar"),CPVar (1,"val")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"envs")) (CApply (CSymbol ("Global","readGlobal")) (CSymbol ("System","environ"))),CSExpr (CApply (CApply (CSymbol ("Global","writeGlobal")) (CSymbol ("System","environ"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"evar"))) (CVar (1,"val")))) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (3,"x0"))) (CVar (0,"evar"))))) (CSymbol ("Prelude","fst")))) (CVar (2,"envs")))))])] []]),
+  CFunc ("System","sleep") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("System","prim_sleep"))) (CVar (0,"n")))] []]),
+  CFunc ("System","system") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"cmd")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"envs")) (CApply (CSymbol ("Global","readGlobal")) (CSymbol ("System","environ"))),CSExpr (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("System","prim_system"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("System","set"))) (CVar (1,"envs")))) (CVar (0,"cmd"))))])] [CLocalFunc (CFunc ("System","set") 1 Private (CFuncType (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []],CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (1,"var"),CPVar (2,"val")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"var"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '='))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"val"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ';'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))] []]))]]),
+  CFunc ("System","unsetEnviron") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"evar")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"envs")) (CApply (CSymbol ("Global","readGlobal")) (CSymbol ("System","environ"))),CSExpr (CApply (CApply (CSymbol ("Global","writeGlobal")) (CSymbol ("System","environ"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (2,"x0"))) (CVar (0,"evar"))))) (CSymbol ("Prelude","fst")))) (CVar (1,"envs"))))])] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/System.cy b/src/lib/Curry/Module/.curry/System.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/System.cy
@@ -0,0 +1,39 @@
+Module "System"
+(Just (Exporting (8,14) [(Export (QualIdent Nothing (Ident "getCPUTime" 0))),(Export (QualIdent Nothing (Ident "getElapsedTime" 0))),(Export (QualIdent Nothing (Ident "getArgs" 0))),(Export (QualIdent Nothing (Ident "getEnviron" 0))),(Export (QualIdent Nothing (Ident "setEnviron" 0))),(Export (QualIdent Nothing (Ident "unsetEnviron" 0))),(Export (QualIdent Nothing (Ident "getHostname" 0))),(Export (QualIdent Nothing (Ident "getPID" 0))),(Export (QualIdent Nothing (Ident "getProgName" 0))),(Export (QualIdent Nothing (Ident "system" 0))),(Export (QualIdent Nothing (Ident "exitWith" 0))),(Export (QualIdent Nothing (Ident "sleep" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (13,1) "Global" False Nothing Nothing)
+,(TypeSig (17,1) [(Ident "getCPUTime" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))
+,(FlatExternalDecl (18,1) [(Ident "getCPUTime" 0)])
+,(TypeSig (22,1) [(Ident "getElapsedTime" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))
+,(FlatExternalDecl (23,1) [(Ident "getElapsedTime" 0)])
+,(TypeSig (28,1) [(Ident "getArgs" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []))]))
+,(FlatExternalDecl (29,1) [(Ident "getArgs" 0)])
+,(TypeSig (34,1) [(Ident "getEnviron" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FunctionDecl (35,1) (Ident "getEnviron" 0) [(Equation (35,1) (FunLhs (Ident "getEnviron" 0) [(VariablePattern (Ident "evar" 2))]) (SimpleRhs (35,19) (Do [(StmtBind (VariablePattern (Ident "envs" 4)) (Apply (Variable (QualIdent (Just "Global") (Ident "readGlobal" 0))) (Variable (QualIdent (Just "System") (Ident "environ" 0)))))] (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (InfixApply (Variable (QualIdent (Just "System") (Ident "prim_getEnviron" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "evar" 2)))))) (Variable (QualIdent (Just "Prelude") (Ident "return" 0)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "lookup" 0))) (Variable (QualIdent Nothing (Ident "evar" 2)))) (Variable (QualIdent Nothing (Ident "envs" 4))))))) []))])
+,(TypeSig (39,1) [(Ident "prim_getEnviron" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))
+,(FlatExternalDecl (40,1) [(Ident "prim_getEnviron" 0)])
+,(TypeSig (43,1) [(Ident "environ" 0)] (ConstructorType (QualIdent Nothing (Ident "Global" 0)) [(ListType (TupleType [(ConstructorType (QualIdent Nothing (Ident "String" 0)) []),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))]))
+,(FunctionDecl (44,1) (Ident "environ" 0) [(Equation (44,1) (FunLhs (Ident "environ" 0) []) (SimpleRhs (44,11) (Apply (Apply (Variable (QualIdent (Just "Global") (Ident "global" 0))) (List [])) (Constructor (QualIdent (Just "Global") (Ident "Temporary" 0)))) []))])
+,(TypeSig (52,1) [(Ident "setEnviron" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))))
+,(FunctionDecl (53,1) (Ident "setEnviron" 0) [(Equation (53,1) (FunLhs (Ident "setEnviron" 0) [(VariablePattern (Ident "evar" 7)),(VariablePattern (Ident "val" 7))]) (SimpleRhs (53,23) (Do [(StmtBind (VariablePattern (Ident "envs" 9)) (Apply (Variable (QualIdent (Just "Global") (Ident "readGlobal" 0))) (Variable (QualIdent (Just "System") (Ident "environ" 0)))))] (Apply (Apply (Variable (QualIdent (Just "Global") (Ident "writeGlobal" 0))) (Variable (QualIdent (Just "System") (Ident "environ" 0)))) (Paren (InfixApply (Tuple [(Variable (QualIdent Nothing (Ident "evar" 7))),(Variable (QualIdent Nothing (Ident "val" 7)))]) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Variable (QualIdent Nothing (Ident "evar" 7)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "fst" 0)))))) (Variable (QualIdent Nothing (Ident "envs" 9)))))))) []))])
+,(TypeSig (60,1) [(Ident "unsetEnviron" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (61,1) (Ident "unsetEnviron" 0) [(Equation (61,1) (FunLhs (Ident "unsetEnviron" 0) [(VariablePattern (Ident "evar" 10))]) (SimpleRhs (61,21) (Do [(StmtBind (VariablePattern (Ident "envs" 12)) (Apply (Variable (QualIdent (Just "Global") (Ident "readGlobal" 0))) (Variable (QualIdent (Just "System") (Ident "environ" 0)))))] (Apply (Apply (Variable (QualIdent (Just "Global") (Ident "writeGlobal" 0))) (Variable (QualIdent (Just "System") (Ident "environ" 0)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "filter" 0))) (Paren (InfixApply (RightSection (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Variable (QualIdent Nothing (Ident "evar" 10)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "fst" 0)))))) (Variable (QualIdent Nothing (Ident "envs" 12))))))) []))])
+,(TypeSig (67,1) [(Ident "getHostname" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))
+,(FlatExternalDecl (68,1) [(Ident "getHostname" 0)])
+,(TypeSig (72,1) [(Ident "getPID" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))
+,(FlatExternalDecl (73,1) [(Ident "getPID" 0)])
+,(TypeSig (79,1) [(Ident "getProgName" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))
+,(FlatExternalDecl (80,1) [(Ident "getProgName" 0)])
+,(TypeSig (86,1) [(Ident "system" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])))
+,(FunctionDecl (87,1) (Ident "system" 0) [(Equation (87,1) (FunLhs (Ident "system" 0) [(VariablePattern (Ident "cmd" 13))]) (SimpleRhs (87,14) (Do [(StmtBind (VariablePattern (Ident "envs" 17)) (Apply (Variable (QualIdent (Just "Global") (Ident "readGlobal" 0))) (Variable (QualIdent (Just "System") (Ident "environ" 0)))))] (InfixApply (Variable (QualIdent (Just "System") (Ident "prim_system" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Paren (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "concatMap" 0))) (Variable (QualIdent Nothing (Ident "set" 14)))) (Variable (QualIdent Nothing (Ident "envs" 17)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "cmd" 13))))))) [(FunctionDecl (91,4) (Ident "set" 14) [(Equation (91,4) (FunLhs (Ident "set" 14) [(TuplePattern [(VariablePattern (Ident "var" 15)),(VariablePattern (Ident "val" 15))])]) (SimpleRhs (91,20) (InfixApply (Literal (String "export ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "var" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String "=")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "val" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "; ")))))) []))])]))])
+,(TypeSig (93,1) [(Ident "prim_system" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])))
+,(FlatExternalDecl (94,1) [(Ident "prim_system" 0)])
+,(TypeSig (101,1) [(Ident "exitWith" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "_" 0))])))
+,(FunctionDecl (102,1) (Ident "exitWith" 0) [(Equation (102,1) (FunLhs (Ident "exitWith" 0) [(VariablePattern (Ident "exitcode" 18))]) (SimpleRhs (102,21) (InfixApply (Variable (QualIdent (Just "System") (Ident "prim_exitWith" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "exitcode" 18)))) []))])
+,(TypeSig (104,1) [(Ident "prim_exitWith" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "_" 0))])))
+,(FlatExternalDecl (105,1) [(Ident "prim_exitWith" 0)])
+,(TypeSig (111,1) [(Ident "sleep" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FunctionDecl (112,1) (Ident "sleep" 0) [(Equation (112,1) (FunLhs (Ident "sleep" 0) [(VariablePattern (Ident "n" 20))]) (SimpleRhs (112,11) (InfixApply (Variable (QualIdent (Just "System") (Ident "prim_sleep" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "n" 20)))) []))])
+,(TypeSig (114,1) [(Ident "prim_sleep" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))
+,(FlatExternalDecl (115,1) [(Ident "prim_sleep" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/System.efc b/src/lib/Curry/Module/.curry/System.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/System.efc
@@ -0,0 +1,1 @@
+Prog "System" ["Global","Prelude"] [] [Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]),"System","getCPUTime")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (External "System.getCPUTime"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]),"System","getElapsedTime")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (External "System.getElapsedTime"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"System","getArgs")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (External "System.getArgs"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"System","getEnviron")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"Global","readGlobal")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]),"System","environ")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"System","getEnviron._#lambda2")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"System","getEnviron._#lambda2")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])))),"Prelude","maybe")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"System","prim_getEnviron")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"Prelude","return")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","lookup")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]])),"System","prim_getEnviron")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]])) (External "System.prim_getEnviron"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]),"System","environ")) 0 Private (TCons ((Nothing,Nothing,"Global","Global")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (FuncType (TCons (Nothing,Nothing,"Global","GlobalSpec") []) (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]))),"Global","global")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) [],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Global","GlobalSpec") []),"Global","Temporary")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"System","setEnviron")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"Global","readGlobal")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]),"System","environ")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"System","setEnviron._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"System","setEnviron._#lambda3")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Global","writeGlobal")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]),"System","environ")) [],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","fst")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),3))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"System","unsetEnviron")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"Global","readGlobal")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]),"System","environ")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"System","unsetEnviron._#lambda4")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"System","unsetEnviron._#lambda4")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Global","writeGlobal")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]),"System","environ")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","filter")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","flip")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","fst")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2))]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"System","getHostname")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (External "System.getHostname"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]),"System","getPID")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (External "System.getPID"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"System","getProgName")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (External "System.getProgName"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"System","system")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]])),"Global","readGlobal")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Global","Global") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]]),"System","environ")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"System","system._#lambda5")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"System","system.set.14")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '='),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ';'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"System","system._#lambda5")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []],TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"System","prim_system")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","concatMap")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"System","system.set.14")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []],TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []])),"System","prim_system")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []])) (External "System.prim_system"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"System","exitWith")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"System","prim_exitWith")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"System","prim_exitWith")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (External "System.prim_exitWith"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"System","sleep")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"System","prim_sleep")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"System","prim_sleep")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "System.prim_sleep")] []
diff --git a/src/lib/Curry/Module/.curry/System.fcy b/src/lib/Curry/Module/.curry/System.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/System.fcy
@@ -0,0 +1,1 @@
+Prog "System" ["Global","Prelude"] [] [Func ("System","getCPUTime") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "System.getCPUTime"),Func ("System","getElapsedTime") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "System.getElapsedTime"),Func ("System","getArgs") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (External "System.getArgs"),Func ("System","getEnviron") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Global","readGlobal") [Comb FuncCall ("System","environ") []],Comb (FuncPartCall 1) ("System","getEnviron._#lambda2") [Var 1]])),Func ("System","getEnviron._#lambda2") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude","maybe") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("System","prim_getEnviron") [],Var 1],Comb (FuncPartCall 1) ("Prelude","return") [],Comb FuncCall ("Prelude","lookup") [Var 1,Var 2]])),Func ("System","prim_getEnviron") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (External "System.prim_getEnviron"),Func ("System","environ") 0 Private (TCons ("Global","Global") [TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]]) (Rule [] (Comb FuncCall ("Global","global") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Global","Temporary") []])),Func ("System","setEnviron") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Global","readGlobal") [Comb FuncCall ("System","environ") []],Comb (FuncPartCall 1) ("System","setEnviron._#lambda3") [Var 1,Var 2]])),Func ("System","setEnviron._#lambda3") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Global","writeGlobal") [Comb FuncCall ("System","environ") [],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Var 1,Var 2],Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Var 1],Comb (FuncPartCall 1) ("Prelude","fst") []],Var 3]]])),Func ("System","unsetEnviron") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Global","readGlobal") [Comb FuncCall ("System","environ") []],Comb (FuncPartCall 1) ("System","unsetEnviron._#lambda4") [Var 1]])),Func ("System","unsetEnviron._#lambda4") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Global","writeGlobal") [Comb FuncCall ("System","environ") [],Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Var 1],Comb (FuncPartCall 1) ("Prelude","fst") []],Var 2]])),Func ("System","getHostname") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (External "System.getHostname"),Func ("System","getPID") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "System.getPID"),Func ("System","getProgName") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (External "System.getProgName"),Func ("System","system") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Global","readGlobal") [Comb FuncCall ("System","environ") []],Comb (FuncPartCall 1) ("System","system._#lambda5") [Var 1]])),Func ("System","system.set.14") 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]) (Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  '='),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Var 3,Comb ConsCall ("Prelude",":") [Lit (Charc  ';'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]])])),Func ("System","system._#lambda5") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("System","prim_system") [],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("System","system.set.14") []],Var 2],Var 1]])),Func ("System","prim_system") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])) (External "System.prim_system"),Func ("System","exitWith") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("System","prim_exitWith") [],Var 1])),Func ("System","prim_exitWith") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TVar 0])) (External "System.prim_exitWith"),Func ("System","sleep") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("System","prim_sleep") [],Var 1])),Func ("System","prim_sleep") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "System.prim_sleep")] []
diff --git a/src/lib/Curry/Module/.curry/System.fint b/src/lib/Curry/Module/.curry/System.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/System.fint
@@ -0,0 +1,1 @@
+Prog "System" ["Global","Prelude"] [] [Func ("System","getCPUTime") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "System.getCPUTime"),Func ("System","getElapsedTime") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "System.getElapsedTime"),Func ("System","getArgs") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (External "System.getArgs"),Func ("System","getEnviron") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("System","setEnviron") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0)),Func ("System","unsetEnviron") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("System","getHostname") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (External "System.getHostname"),Func ("System","getPID") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "System.getPID"),Func ("System","getProgName") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (External "System.getProgName"),Func ("System","system") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])) (Rule [] (Var 0)),Func ("System","exitWith") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TVar 0])) (Rule [] (Var 0)),Func ("System","sleep") 1 Public (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/System.uacy b/src/lib/Curry/Module/.curry/System.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/System.uacy
@@ -0,0 +1,21 @@
+CurryProg "System"
+ ["Prelude","Global"]
+ []
+ [CFunc ("System","environ") 0 Private (CTCons ("Global","Global") [CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTCons ("Prelude","String") [],CTCons ("Prelude","String") []]]]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Global","global")) (CSymbol ("Prelude","[]"))) (CSymbol ("Global","Temporary")))] []]),
+  CFunc ("System","exitWith") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTVar (0,"_")])) (CRules CFlex [CRule [CPVar (0,"exitcode")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("System","prim_exitWith"))) (CVar (0,"exitcode")))] []]),
+  CFunc ("System","getArgs") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]]) (CExternal "getArgs"),
+  CFunc ("System","getCPUTime") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "getCPUTime"),
+  CFunc ("System","getElapsedTime") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "getElapsedTime"),
+  CFunc ("System","getEnviron") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])) (CRules CFlex [CRule [CPVar (0,"evar")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"envs")) (CApply (CSymbol ("Global","readGlobal")) (CSymbol ("System","environ"))),CSExpr (CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("System","prim_getEnviron"))) (CVar (0,"evar")))) (CSymbol ("Prelude","return"))) (CApply (CApply (CSymbol ("Prelude","lookup")) (CVar (0,"evar"))) (CVar (1,"envs"))))])] []]),
+  CFunc ("System","getHostname") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []]) (CExternal "getHostname"),
+  CFunc ("System","getPID") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "getPID"),
+  CFunc ("System","getProgName") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []]) (CExternal "getProgName"),
+  CFunc ("System","prim_exitWith") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTVar (0,"_")])) (CExternal "prim_exitWith"),
+  CFunc ("System","prim_getEnviron") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","String") []])) (CExternal "prim_getEnviron"),
+  CFunc ("System","prim_sleep") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "prim_sleep"),
+  CFunc ("System","prim_system") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []])) (CExternal "prim_system"),
+  CFunc ("System","setEnviron") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"evar"),CPVar (1,"val")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"envs")) (CApply (CSymbol ("Global","readGlobal")) (CSymbol ("System","environ"))),CSExpr (CApply (CApply (CSymbol ("Global","writeGlobal")) (CSymbol ("System","environ"))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"evar"))) (CVar (1,"val")))) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (3,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (3,"x0"))) (CVar (0,"evar"))))) (CSymbol ("Prelude","fst")))) (CVar (2,"envs")))))])] []]),
+  CFunc ("System","sleep") 1 Public (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("System","prim_sleep"))) (CVar (0,"n")))] []]),
+  CFunc ("System","system") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []])) (CRules CFlex [CRule [CPVar (0,"cmd")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"envs")) (CApply (CSymbol ("Global","readGlobal")) (CSymbol ("System","environ"))),CSExpr (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("System","prim_system"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","concatMap")) (CSymbol ("System","set"))) (CVar (1,"envs")))) (CVar (0,"cmd"))))])] [CLocalFunc (CFunc ("System","set") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPComb ("Prelude","(,)") [CPVar (1,"var"),CPVar (2,"val")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"var"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '='))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (2,"val"))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ';'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))] []]))]]),
+  CFunc ("System","unsetEnviron") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"evar")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"envs")) (CApply (CSymbol ("Global","readGlobal")) (CSymbol ("System","environ"))),CSExpr (CApply (CApply (CSymbol ("Global","writeGlobal")) (CSymbol ("System","environ"))) (CApply (CApply (CSymbol ("Prelude","filter")) (CApply (CApply (CSymbol ("Prelude",".")) (CLambda [CPVar (2,"x0")] (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (2,"x0"))) (CVar (0,"evar"))))) (CSymbol ("Prelude","fst")))) (CVar (1,"envs"))))])] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/TableRBT.acy b/src/lib/Curry/Module/.curry/TableRBT.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/TableRBT.acy
@@ -0,0 +1,10 @@
+CurryProg "TableRBT"
+ ["Prelude","RedBlackTree"]
+ [CTypeSyn ("TableRBT","TableRBT") Public [(0,"key"),(1,"a")] (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"a")]])]
+ [CFunc ("TableRBT","deleteRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"key")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","delete")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CSymbol ("Prelude","failed"))))] []]),
+  CFunc ("TableRBT","emptyTableRBT") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPVar (0,"lt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("RedBlackTree","empty")) (CLambda [CPVar (1,"x"),CPVar (2,"y")] (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("Prelude","fst")) (CVar (1,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (2,"y")))))) (CLambda [CPVar (3,"x"),CPVar (4,"y")] (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("Prelude","fst")) (CVar (3,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (4,"y")))))) (CLambda [CPVar (5,"x"),CPVar (6,"y")] (CApply (CApply (CVar (0,"lt")) (CApply (CSymbol ("Prelude","fst")) (CVar (5,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (6,"y"))))))] []]),
+  CFunc ("TableRBT","isEmptyTable") 0 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","isEmpty"))] []]),
+  CFunc ("TableRBT","lookupRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","Maybe") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"k")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CApply (CSymbol ("Prelude","maybe")) (CSymbol ("Prelude","Nothing"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","Just"))) (CSymbol ("Prelude","snd"))))) (CApply (CSymbol ("RedBlackTree","lookup")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CSymbol ("Prelude","failed")))))] []]),
+  CFunc ("TableRBT","tableRBT2list") 0 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","tree2list"))] []]),
+  CFunc ("TableRBT","updateRBT") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])))) (CRules CFlex [CRule [CPVar (0,"k"),CPVar (1,"e")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","update")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"e"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/TableRBT.cy b/src/lib/Curry/Module/.curry/TableRBT.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/TableRBT.cy
@@ -0,0 +1,18 @@
+Module "TableRBT"
+Nothing
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (15,1) "RedBlackTree" True (Just "RBT") Nothing)
+,(TypeDecl (20,1) (Ident "TableRBT" 0) [(Ident "key" 0),(Ident "a" 0)] (ConstructorType (QualIdent (Just "RBT") (Ident "RedBlackTree" 0)) [(TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "a" 0))])]))
+,(TypeSig (23,1) [(Ident "emptyTableRBT" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))) (ConstructorType (QualIdent Nothing (Ident "TableRBT" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "_" 0))])))
+,(FunctionDecl (24,1) (Ident "emptyTableRBT" 0) [(Equation (24,1) (FunLhs (Ident "emptyTableRBT" 0) [(VariablePattern (Ident "lt" 2))]) (SimpleRhs (24,20) (Apply (Apply (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "empty" 0))) (Paren (Lambda [(VariablePattern (Ident "x" 4)),(VariablePattern (Ident "y" 4))] (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Variable (QualIdent Nothing (Ident "x" 4)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Variable (QualIdent Nothing (Ident "y" 4)))))))) (Paren (Lambda [(VariablePattern (Ident "x" 5)),(VariablePattern (Ident "y" 5))] (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Variable (QualIdent Nothing (Ident "x" 5)))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Variable (QualIdent Nothing (Ident "y" 5)))))))) (Paren (Lambda [(VariablePattern (Ident "x" 6)),(VariablePattern (Ident "y" 6))] (Apply (Apply (Variable (QualIdent Nothing (Ident "lt" 2))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Variable (QualIdent Nothing (Ident "x" 6)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (Variable (QualIdent Nothing (Ident "y" 6))))))))) []))])
+,(TypeSig (29,1) [(Ident "isEmptyTable" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "TableRBT" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (30,1) (Ident "isEmptyTable" 0) [(Equation (30,1) (FunLhs (Ident "isEmptyTable" 0) []) (SimpleRhs (30,16) (Variable (QualIdent (Just "RedBlackTree") (Ident "isEmpty" 0))) []))])
+,(TypeSig (37,1) [(Ident "lookupRBT" 0)] (ArrowType (VariableType (Ident "key" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "TableRBT" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (38,1) (Ident "lookupRBT" 0) [(Equation (38,1) (FunLhs (Ident "lookupRBT" 0) [(VariablePattern (Ident "k" 9))]) (SimpleRhs (38,15) (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "Nothing" 0)))) (Paren (InfixApply (Constructor (QualIdent (Just "Prelude") (Ident "Just" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent (Just "Prelude") (Ident "snd" 0)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "lookup" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "k" 9))),(Variable (QualIdent (Just "Prelude") (Ident "failed" 0)))]))) []))])
+,(TypeSig (41,1) [(Ident "updateRBT" 0)] (ArrowType (VariableType (Ident "key" 0)) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "TableRBT" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "TableRBT" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (42,1) (Ident "updateRBT" 0) [(Equation (42,1) (FunLhs (Ident "updateRBT" 0) [(VariablePattern (Ident "k" 11)),(VariablePattern (Ident "e" 11))]) (SimpleRhs (42,17) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "update" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "k" 11))),(Variable (QualIdent Nothing (Ident "e" 11)))])) []))])
+,(TypeSig (45,1) [(Ident "tableRBT2list" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "TableRBT" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "a" 0))]) (ListType (TupleType [(VariableType (Ident "key" 0)),(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (46,1) (Ident "tableRBT2list" 0) [(Equation (46,1) (FunLhs (Ident "tableRBT2list" 0) []) (SimpleRhs (46,17) (Variable (QualIdent (Just "RedBlackTree") (Ident "tree2list" 0))) []))])
+,(TypeSig (48,1) [(Ident "deleteRBT" 0)] (ArrowType (VariableType (Ident "key" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "TableRBT" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "TableRBT" 0)) [(VariableType (Ident "key" 0)),(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (49,1) (Ident "deleteRBT" 0) [(Equation (49,1) (FunLhs (Ident "deleteRBT" 0) [(VariablePattern (Ident "key" 15))]) (SimpleRhs (49,17) (Apply (Variable (QualIdent (Just "RedBlackTree") (Ident "delete" 0))) (Tuple [(Variable (QualIdent Nothing (Ident "key" 15))),(Variable (QualIdent (Just "Prelude") (Ident "failed" 0)))])) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/TableRBT.efc b/src/lib/Curry/Module/.curry/TableRBT.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/TableRBT.efc
@@ -0,0 +1,1 @@
+Prog "TableRBT" ["Prelude","RedBlackTree"] [TypeSyn ((Nothing,Nothing,"TableRBT","TableRBT")) Public [0,1] (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"TableRBT","emptyTableRBT")) 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))),"RedBlackTree","empty")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"TableRBT","emptyTableRBT._#lambda2")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"TableRBT","emptyTableRBT._#lambda3")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"TableRBT","emptyTableRBT._#lambda4")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"TableRBT","emptyTableRBT._#lambda2")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"TableRBT","emptyTableRBT._#lambda3")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"TableRBT","emptyTableRBT._#lambda4")) 3 Private (FuncType (FuncType (TVar 22) (FuncType (TVar 22) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"TableRBT","isEmptyTable")) 0 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isEmpty")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"TableRBT","lookupRBT")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1]))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"Prelude","maybe")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),"Prelude","Nothing")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),"Prelude","Just")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 1)),"Prelude","snd")) []]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"RedBlackTree","lookup")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 13) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (TVar 13),"Prelude","failed")) []]]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))),"TableRBT","updateRBT")) 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"RedBlackTree","update")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 1),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"TableRBT","tableRBT2list")) 0 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"RedBlackTree","tree2list")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"TableRBT","deleteRBT")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]))) (Rule [(Just (TVar 0),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"RedBlackTree","delete")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 3) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (TVar 3),"Prelude","failed")) []]]))] []
diff --git a/src/lib/Curry/Module/.curry/TableRBT.fcy b/src/lib/Curry/Module/.curry/TableRBT.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/TableRBT.fcy
@@ -0,0 +1,1 @@
+Prog "TableRBT" ["Prelude","RedBlackTree"] [TypeSyn ("TableRBT","TableRBT") Public [0,1] (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])] [Func ("TableRBT","emptyTableRBT") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [1] (Comb FuncCall ("RedBlackTree","empty") [Comb (FuncPartCall 2) ("TableRBT","emptyTableRBT._#lambda2") [],Comb (FuncPartCall 2) ("TableRBT","emptyTableRBT._#lambda3") [],Comb (FuncPartCall 2) ("TableRBT","emptyTableRBT._#lambda4") [Var 1]])),Func ("TableRBT","emptyTableRBT._#lambda2") 2 Private (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","fst") [Var 1],Comb FuncCall ("Prelude","fst") [Var 2]])),Func ("TableRBT","emptyTableRBT._#lambda3") 2 Private (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","fst") [Var 1],Comb FuncCall ("Prelude","fst") [Var 2]])),Func ("TableRBT","emptyTableRBT._#lambda4") 3 Private (FuncType (FuncType (TVar 22) (FuncType (TVar 22) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Comb FuncCall ("Prelude","fst") [Var 2]],Comb FuncCall ("Prelude","fst") [Var 3]])),Func ("TableRBT","isEmptyTable") 0 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","Bool") [])) (Rule [] (Comb (FuncPartCall 1) ("RedBlackTree","isEmpty") [])),Func ("TableRBT","lookupRBT") 1 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","Maybe") [TVar 1]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","maybe") [Comb ConsCall ("Prelude","Nothing") [],Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Prelude","Just") [],Comb (FuncPartCall 1) ("Prelude","snd") []]],Comb (FuncPartCall 1) ("RedBlackTree","lookup") [Comb ConsCall ("Prelude","(,)") [Var 1,Comb FuncCall ("Prelude","failed") []]]])),Func ("TableRBT","updateRBT") 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])))) (Rule [1,2] (Comb (FuncPartCall 1) ("RedBlackTree","update") [Comb ConsCall ("Prelude","(,)") [Var 1,Var 2]])),Func ("TableRBT","tableRBT2list") 0 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Comb (FuncPartCall 1) ("RedBlackTree","tree2list") [])),Func ("TableRBT","deleteRBT") 1 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]))) (Rule [1] (Comb (FuncPartCall 1) ("RedBlackTree","delete") [Comb ConsCall ("Prelude","(,)") [Var 1,Comb FuncCall ("Prelude","failed") []]]))] []
diff --git a/src/lib/Curry/Module/.curry/TableRBT.fint b/src/lib/Curry/Module/.curry/TableRBT.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/TableRBT.fint
@@ -0,0 +1,1 @@
+Prog "TableRBT" ["Prelude","RedBlackTree"] [TypeSyn ("TableRBT","TableRBT") Public [0,1] (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])] [Func ("TableRBT","emptyTableRBT") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Var 0)),Func ("TableRBT","isEmptyTable") 0 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("TableRBT","lookupRBT") 1 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","Maybe") [TVar 1]))) (Rule [] (Var 0)),Func ("TableRBT","updateRBT") 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])))) (Rule [] (Var 0)),Func ("TableRBT","tableRBT2list") 0 Public (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])) (Rule [] (Var 0)),Func ("TableRBT","deleteRBT") 1 Public (FuncType (TVar 0) (FuncType (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/TableRBT.uacy b/src/lib/Curry/Module/.curry/TableRBT.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/TableRBT.uacy
@@ -0,0 +1,10 @@
+CurryProg "TableRBT"
+ ["Prelude","RedBlackTree"]
+ [CTypeSyn ("TableRBT","TableRBT") Public [(0,"key"),(1,"a")] (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"a")]])]
+ [CFunc ("TableRBT","deleteRBT") 1 Public (CFuncType (CTVar (0,"key")) (CFuncType (CTCons ("TableRBT","TableRBT") [CTVar (0,"key"),CTVar (1,"a")]) (CTCons ("TableRBT","TableRBT") [CTVar (0,"key"),CTVar (1,"a")]))) (CRules CFlex [CRule [CPVar (0,"key")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","delete")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CSymbol ("Prelude","failed"))))] []]),
+  CFunc ("TableRBT","emptyTableRBT") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("TableRBT","TableRBT") [CTVar (0,"a"),CTVar (1,"_")])) (CRules CFlex [CRule [CPVar (0,"lt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("RedBlackTree","empty")) (CLambda [CPVar (1,"x"),CPVar (2,"y")] (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("Prelude","fst")) (CVar (1,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (2,"y")))))) (CLambda [CPVar (3,"x"),CPVar (4,"y")] (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("Prelude","fst")) (CVar (3,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (4,"y")))))) (CLambda [CPVar (5,"x"),CPVar (6,"y")] (CApply (CApply (CVar (0,"lt")) (CApply (CSymbol ("Prelude","fst")) (CVar (5,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (6,"y"))))))] []]),
+  CFunc ("TableRBT","isEmptyTable") 0 Public (CFuncType (CTCons ("TableRBT","TableRBT") [CTVar (0,"_"),CTVar (0,"_")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","isEmpty"))] []]),
+  CFunc ("TableRBT","lookupRBT") 1 Public (CFuncType (CTVar (0,"key")) (CFuncType (CTCons ("TableRBT","TableRBT") [CTVar (0,"key"),CTVar (1,"a")]) (CTCons ("Prelude","Maybe") [CTVar (1,"a")]))) (CRules CFlex [CRule [CPVar (0,"k")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CApply (CSymbol ("Prelude","maybe")) (CSymbol ("Prelude","Nothing"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","Just"))) (CSymbol ("Prelude","snd"))))) (CApply (CSymbol ("RedBlackTree","lookup")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CSymbol ("Prelude","failed")))))] []]),
+  CFunc ("TableRBT","tableRBT2list") 0 Public (CFuncType (CTCons ("TableRBT","TableRBT") [CTVar (0,"key"),CTVar (1,"a")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"a")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","tree2list"))] []]),
+  CFunc ("TableRBT","updateRBT") 2 Public (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (1,"a")) (CFuncType (CTCons ("TableRBT","TableRBT") [CTVar (0,"key"),CTVar (1,"a")]) (CTCons ("TableRBT","TableRBT") [CTVar (0,"key"),CTVar (1,"a")])))) (CRules CFlex [CRule [CPVar (0,"k"),CPVar (1,"e")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","update")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"e"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Time.acy b/src/lib/Curry/Module/.curry/Time.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Time.acy
@@ -0,0 +1,35 @@
+CurryProg "Time"
+ ["Prelude"]
+ [CType ("Time","ClockTime") Public [] [CCons ("Time","CTime") 1 Private [CTCons ("Prelude","Int") []]],
+  CType ("Time","CalendarTime") Public [] [CCons ("Time","CalendarTime") 7 Public [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]]]
+ [CFunc ("Time","addDays") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPComb ("Time","CTime") [CPVar (1,"ctime")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Time","CTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"ctime"))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CLit (CIntc 86400)))))] []]),
+  CFunc ("Time","addHours") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPComb ("Time","CTime") [CPVar (1,"ctime")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Time","CTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"ctime"))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CLit (CIntc 3600)))))] []]),
+  CFunc ("Time","addMinutes") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPComb ("Time","CTime") [CPVar (1,"ctime")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Time","CTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"ctime"))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CLit (CIntc 60)))))] []]),
+  CFunc ("Time","addMonths") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"ctime")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Time","CalendarTime") [CPVar (2,"y"),CPVar (3,"mo"),CPVar (4,"d"),CPVar (5,"h"),CPVar (6,"mi"),CPVar (7,"s"),CPVar (8,"tz")]) (CApply (CSymbol ("Time","toUTCTime")) (CVar (1,"ctime"))) [],CLocalPat (CPVar (9,"nmo")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"mo"))) (CLit (CIntc 1)))) (CVar (0,"n")))) (CLit (CIntc 12)))) (CLit (CIntc 1))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (9,"nmo"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Time","addYears")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"mo"))) (CLit (CIntc 1)))) (CVar (0,"n")))) (CLit (CIntc 12)))) (CApply (CSymbol ("Time","toClockTime")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Time","CalendarTime")) (CVar (2,"y"))) (CVar (9,"nmo"))) (CVar (4,"d"))) (CVar (5,"h"))) (CVar (6,"mi"))) (CVar (7,"s"))) (CVar (8,"tz")))))) (CApply (CApply (CSymbol ("Time","addYears")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"mo"))) (CLit (CIntc 1)))) (CVar (0,"n")))) (CLit (CIntc 12)))) (CLit (CIntc 1)))) (CApply (CSymbol ("Time","toClockTime")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Time","CalendarTime")) (CVar (2,"y"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (9,"nmo"))) (CLit (CIntc 12)))) (CVar (4,"d"))) (CVar (5,"h"))) (CVar (6,"mi"))) (CVar (7,"s"))) (CVar (8,"tz")))))))] []]),
+  CFunc ("Time","addSeconds") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPComb ("Time","CTime") [CPVar (1,"ctime")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Time","CTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"ctime"))) (CVar (0,"n"))))] []]),
+  CFunc ("Time","addYears") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"ctime")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CVar (1,"ctime"))) (CLetDecl [CLocalPat (CPComb ("Time","CalendarTime") [CPVar (2,"y"),CPVar (3,"mo"),CPVar (4,"d"),CPVar (5,"h"),CPVar (6,"mi"),CPVar (7,"s"),CPVar (8,"tz")]) (CApply (CSymbol ("Time","toUTCTime")) (CVar (1,"ctime"))) []] (CApply (CSymbol ("Time","toClockTime")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Time","CalendarTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"y"))) (CVar (0,"n")))) (CVar (3,"mo"))) (CVar (4,"d"))) (CVar (5,"h"))) (CVar (6,"mi"))) (CVar (7,"s"))) (CVar (8,"tz"))))))] []]),
+  CFunc ("Time","calendarTimeToString") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPAs (7,"ctime") (CPComb ("Time","CalendarTime") [CPVar (0,"y"),CPVar (1,"mo"),CPVar (2,"d"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","!!")) (CVar (8,"shortMonths"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"mo"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"d")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Time","toTimeString")) (CVar (7,"ctime")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Prelude","show")) (CVar (0,"y")))))))))] [CLocalPat (CPVar (8,"shortMonths")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'D'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","[]")))))))))))))) []]]),
+  CFunc ("Time","clockTimeToInt") 1 Public (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CTime") [CPVar (0,"i")]] [(CSymbol ("Prelude","success"),CVar (0,"i"))] []]),
+  CFunc ("Time","compareCalendarTime") 2 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"ct1"),CPVar (1,"ct2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Time","compareClockTime")) (CApply (CSymbol ("Time","toClockTime")) (CVar (0,"ct1")))) (CApply (CSymbol ("Time","toClockTime")) (CVar (1,"ct2"))))] []]),
+  CFunc ("Time","compareClockTime") 2 Public (CFuncType (CTCons ("Time","ClockTime") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPComb ("Time","CTime") [CPVar (0,"time1")],CPComb ("Time","CTime") [CPVar (1,"time2")]] [(CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"time1"))) (CVar (1,"time2")),CSymbol ("Prelude","LT")),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (0,"time1"))) (CVar (1,"time2")),CSymbol ("Prelude","GT")),(CSymbol ("Prelude","otherwise"),CSymbol ("Prelude","EQ"))] []]),
+  CFunc ("Time","compareDate") 0 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("Time","compareCalendarTime"))] []]),
+  CFunc ("Time","ctDay") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"d"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"d"))] []]),
+  CFunc ("Time","ctHour") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"h"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (3,"h"))] []]),
+  CFunc ("Time","ctMin") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"m"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (4,"m"))] []]),
+  CFunc ("Time","ctMonth") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"m"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"m"))] []]),
+  CFunc ("Time","ctSec") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"s"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (5,"s"))] []]),
+  CFunc ("Time","ctTZ") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"tz")]] [(CSymbol ("Prelude","success"),CVar (6,"tz"))] []]),
+  CFunc ("Time","ctYear") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"y"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"y"))] []]),
+  CFunc ("Time","daysOfMonth") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"mo"),CPVar (1,"yr")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (0,"mo"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","!!")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 28))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 30))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 30))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 30))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 30))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CSymbol ("Prelude","[]"))))))))))))))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (0,"mo"))) (CLit (CIntc 1))))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"yr"))) (CLit (CIntc 4)))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"yr"))) (CLit (CIntc 100)))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"yr"))) (CLit (CIntc 400)))) (CLit (CIntc 0)))))) (CLit (CIntc 29))) (CLit (CIntc 28))))] []]),
+  CFunc ("Time","getClockTime") 0 Public (CTCons ("Prelude","IO") [CTCons ("Time","ClockTime") []]) (CExternal "getClockTime"),
+  CFunc ("Time","getLocalTime") 0 Public (CTCons ("Prelude","IO") [CTCons ("Time","CalendarTime") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (0,"ctime")) (CSymbol ("Time","getClockTime")),CSExpr (CApply (CSymbol ("Time","toCalendarTime")) (CVar (0,"ctime")))])] []]),
+  CFunc ("Time","prim_toCalendarTime") 1 Private (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Prelude","IO") [CTCons ("Time","CalendarTime") []])) (CExternal "prim_toCalendarTime"),
+  CFunc ("Time","prim_toClockTime") 1 Private (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Time","ClockTime") [])) (CExternal "prim_toClockTime"),
+  CFunc ("Time","prim_toUTCTime") 1 Private (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","CalendarTime") [])) (CExternal "prim_toUTCTime"),
+  CFunc ("Time","toCalendarTime") 1 Public (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Prelude","IO") [CTCons ("Time","CalendarTime") []])) (CRules CFlex [CRule [CPVar (0,"ctime")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Time","prim_toCalendarTime"))) (CVar (0,"ctime")))] []]),
+  CFunc ("Time","toClockTime") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Time","ClockTime") [])) (CRules CFlex [CRule [CPVar (0,"d")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Time","prim_toClockTime"))) (CVar (0,"d")))] []]),
+  CFunc ("Time","toDayString") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"y"),CPVar (1,"mo"),CPVar (2,"d"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","!!")) (CVar (7,"longMonths"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"mo"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"d")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","show")) (CVar (0,"y")))))))] [CLocalPat (CPVar (7,"longMonths")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]"))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]"))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'D'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))) (CSymbol ("Prelude","[]")))))))))))))) []]]),
+  CFunc ("Time","toTimeString") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"h"),CPVar (4,"mi"),CPVar (5,"s"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Time","digit2")) (CVar (3,"h")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Time","digit2")) (CVar (4,"mi")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Time","digit2")) (CVar (5,"s")))))))] [CLocalFunc (CFunc ("Time","digit2") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (7,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (7,"n"))) (CLit (CIntc 10)))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '0'))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))) (CVar (7,"n"))))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","show")) (CVar (7,"n"))))] []]))]]),
+  CFunc ("Time","toUTCTime") 1 Public (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","CalendarTime") [])) (CRules CFlex [CRule [CPVar (0,"ctime")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Time","prim_toUTCTime"))) (CVar (0,"ctime")))] []]),
+  CFunc ("Time","validDate") 3 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"y"),CPVar (1,"m"),CPVar (2,"d")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (1,"m"))) (CLit (CIntc 13)))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (2,"d"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (2,"d"))) (CApply (CApply (CSymbol ("Time","daysOfMonth")) (CVar (1,"m"))) (CVar (0,"y")))))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Time.cy b/src/lib/Curry/Module/.curry/Time.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Time.cy
@@ -0,0 +1,66 @@
+Module "Time"
+(Just (Exporting (8,12) [(Export (QualIdent Nothing (Ident "ClockTime" 0))),(ExportTypeAll (QualIdent Nothing (Ident "CalendarTime" 0))),(Export (QualIdent Nothing (Ident "ctYear" 0))),(Export (QualIdent Nothing (Ident "ctMonth" 0))),(Export (QualIdent Nothing (Ident "ctDay" 0))),(Export (QualIdent Nothing (Ident "ctHour" 0))),(Export (QualIdent Nothing (Ident "ctMin" 0))),(Export (QualIdent Nothing (Ident "ctSec" 0))),(Export (QualIdent Nothing (Ident "ctTZ" 0))),(Export (QualIdent Nothing (Ident "getClockTime" 0))),(Export (QualIdent Nothing (Ident "getLocalTime" 0))),(Export (QualIdent Nothing (Ident "toUTCTime" 0))),(Export (QualIdent Nothing (Ident "toClockTime" 0))),(Export (QualIdent Nothing (Ident "toCalendarTime" 0))),(Export (QualIdent Nothing (Ident "clockTimeToInt" 0))),(Export (QualIdent Nothing (Ident "calendarTimeToString" 0))),(Export (QualIdent Nothing (Ident "toDayString" 0))),(Export (QualIdent Nothing (Ident "toTimeString" 0))),(Export (QualIdent Nothing (Ident "addSeconds" 0))),(Export (QualIdent Nothing (Ident "addMinutes" 0))),(Export (QualIdent Nothing (Ident "addHours" 0))),(Export (QualIdent Nothing (Ident "addDays" 0))),(Export (QualIdent Nothing (Ident "addMonths" 0))),(Export (QualIdent Nothing (Ident "addYears" 0))),(Export (QualIdent Nothing (Ident "daysOfMonth" 0))),(Export (QualIdent Nothing (Ident "validDate" 0))),(Export (QualIdent Nothing (Ident "compareCalendarTime" 0))),(Export (QualIdent Nothing (Ident "compareClockTime" 0))),(Export (QualIdent Nothing (Ident "compareDate" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(DataDecl (18,1) (Ident "ClockTime" 0) [] [(ConstrDecl (18,18) [] (Ident "CTime" 0) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])])
+,(DataDecl (24,1) (Ident "CalendarTime" 0) [] [(ConstrDecl (24,21) [] (Ident "CalendarTime" 0) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])])])
+,(TypeSig (27,1) [(Ident "ctYear" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (28,1) (Ident "ctYear" 0) [(Equation (28,1) (FunLhs (Ident "ctYear" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "y" 2)),(VariablePattern (Ident "_" 3)),(VariablePattern (Ident "_" 4)),(VariablePattern (Ident "_" 5)),(VariablePattern (Ident "_" 6)),(VariablePattern (Ident "_" 7)),(VariablePattern (Ident "_" 8))]))]) (SimpleRhs (28,39) (Variable (QualIdent Nothing (Ident "y" 2))) []))])
+,(TypeSig (31,1) [(Ident "ctMonth" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (32,1) (Ident "ctMonth" 0) [(Equation (32,1) (FunLhs (Ident "ctMonth" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "_" 11)),(VariablePattern (Ident "m" 10)),(VariablePattern (Ident "_" 12)),(VariablePattern (Ident "_" 13)),(VariablePattern (Ident "_" 14)),(VariablePattern (Ident "_" 15)),(VariablePattern (Ident "_" 16))]))]) (SimpleRhs (32,40) (Variable (QualIdent Nothing (Ident "m" 10))) []))])
+,(TypeSig (35,1) [(Ident "ctDay" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (36,1) (Ident "ctDay" 0) [(Equation (36,1) (FunLhs (Ident "ctDay" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "_" 19)),(VariablePattern (Ident "_" 20)),(VariablePattern (Ident "d" 18)),(VariablePattern (Ident "_" 21)),(VariablePattern (Ident "_" 22)),(VariablePattern (Ident "_" 23)),(VariablePattern (Ident "_" 24))]))]) (SimpleRhs (36,38) (Variable (QualIdent Nothing (Ident "d" 18))) []))])
+,(TypeSig (39,1) [(Ident "ctHour" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (40,1) (Ident "ctHour" 0) [(Equation (40,1) (FunLhs (Ident "ctHour" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "_" 27)),(VariablePattern (Ident "_" 28)),(VariablePattern (Ident "_" 29)),(VariablePattern (Ident "h" 26)),(VariablePattern (Ident "_" 30)),(VariablePattern (Ident "_" 31)),(VariablePattern (Ident "_" 32))]))]) (SimpleRhs (40,39) (Variable (QualIdent Nothing (Ident "h" 26))) []))])
+,(TypeSig (43,1) [(Ident "ctMin" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (44,1) (Ident "ctMin" 0) [(Equation (44,1) (FunLhs (Ident "ctMin" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "_" 35)),(VariablePattern (Ident "_" 36)),(VariablePattern (Ident "_" 37)),(VariablePattern (Ident "_" 38)),(VariablePattern (Ident "m" 34)),(VariablePattern (Ident "_" 39)),(VariablePattern (Ident "_" 40))]))]) (SimpleRhs (44,38) (Variable (QualIdent Nothing (Ident "m" 34))) []))])
+,(TypeSig (47,1) [(Ident "ctSec" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (48,1) (Ident "ctSec" 0) [(Equation (48,1) (FunLhs (Ident "ctSec" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "_" 43)),(VariablePattern (Ident "_" 44)),(VariablePattern (Ident "_" 45)),(VariablePattern (Ident "_" 46)),(VariablePattern (Ident "_" 47)),(VariablePattern (Ident "s" 42)),(VariablePattern (Ident "_" 48))]))]) (SimpleRhs (48,38) (Variable (QualIdent Nothing (Ident "s" 42))) []))])
+,(TypeSig (52,1) [(Ident "ctTZ" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (53,1) (Ident "ctTZ" 0) [(Equation (53,1) (FunLhs (Ident "ctTZ" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "_" 51)),(VariablePattern (Ident "_" 52)),(VariablePattern (Ident "_" 53)),(VariablePattern (Ident "_" 54)),(VariablePattern (Ident "_" 55)),(VariablePattern (Ident "_" 56)),(VariablePattern (Ident "tz" 50))]))]) (SimpleRhs (53,38) (Variable (QualIdent Nothing (Ident "tz" 50))) []))])
+,(TypeSig (57,1) [(Ident "getClockTime" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) [])]))
+,(FlatExternalDecl (58,1) [(Ident "getClockTime" 0)])
+,(TypeSig (61,1) [(Ident "getLocalTime" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) [])]))
+,(FunctionDecl (62,1) (Ident "getLocalTime" 0) [(Equation (62,1) (FunLhs (Ident "getLocalTime" 0) []) (SimpleRhs (62,16) (Do [(StmtBind (VariablePattern (Ident "ctime" 60)) (Variable (QualIdent (Just "Time") (Ident "getClockTime" 0))))] (Apply (Variable (QualIdent (Just "Time") (Ident "toCalendarTime" 0))) (Variable (QualIdent Nothing (Ident "ctime" 60))))) []))])
+,(TypeSig (69,1) [(Ident "clockTimeToInt" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])))
+,(FunctionDecl (70,1) (Ident "clockTimeToInt" 0) [(Equation (70,1) (FunLhs (Ident "clockTimeToInt" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CTime" 0)) [(VariablePattern (Ident "i" 61))]))]) (SimpleRhs (70,28) (Variable (QualIdent Nothing (Ident "i" 61))) []))])
+,(TypeSig (75,1) [(Ident "toCalendarTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) [])])))
+,(FunctionDecl (76,1) (Ident "toCalendarTime" 0) [(Equation (76,1) (FunLhs (Ident "toCalendarTime" 0) [(VariablePattern (Ident "ctime" 63))]) (SimpleRhs (76,24) (InfixApply (Variable (QualIdent (Just "Time") (Ident "prim_toCalendarTime" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "ctime" 63)))) []))])
+,(TypeSig (78,1) [(Ident "prim_toCalendarTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) [])])))
+,(FlatExternalDecl (79,1) [(Ident "prim_toCalendarTime" 0)])
+,(TypeSig (83,1) [(Ident "toUTCTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) [])))
+,(FunctionDecl (84,1) (Ident "toUTCTime" 0) [(Equation (84,1) (FunLhs (Ident "toUTCTime" 0) [(VariablePattern (Ident "ctime" 65))]) (SimpleRhs (84,19) (InfixApply (Variable (QualIdent (Just "Time") (Ident "prim_toUTCTime" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "ctime" 65)))) []))])
+,(TypeSig (86,1) [(Ident "prim_toUTCTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) [])))
+,(FlatExternalDecl (87,1) [(Ident "prim_toUTCTime" 0)])
+,(TypeSig (90,1) [(Ident "toClockTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) [])))
+,(FunctionDecl (91,1) (Ident "toClockTime" 0) [(Equation (91,1) (FunLhs (Ident "toClockTime" 0) [(VariablePattern (Ident "d" 67))]) (SimpleRhs (91,17) (InfixApply (Variable (QualIdent (Just "Time") (Ident "prim_toClockTime" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "d" 67)))) []))])
+,(TypeSig (93,1) [(Ident "prim_toClockTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) [])))
+,(FlatExternalDecl (94,1) [(Ident "prim_toClockTime" 0)])
+,(TypeSig (97,1) [(Ident "calendarTimeToString" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (98,1) (Ident "calendarTimeToString" 0) [(Equation (98,1) (FunLhs (Ident "calendarTimeToString" 0) [(AsPattern (Ident "ctime" 69) (ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "y" 69)),(VariablePattern (Ident "mo" 69)),(VariablePattern (Ident "d" 69)),(VariablePattern (Ident "_" 70)),(VariablePattern (Ident "_" 71)),(VariablePattern (Ident "_" 72)),(VariablePattern (Ident "_" 73))])))]) (SimpleRhs (99,5) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "shortMonths" 74))) (InfixOp (QualIdent (Just "Prelude") (Ident "!!" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mo" 69))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 76) 1))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "d" 69)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Time") (Ident "toTimeString" 0))) (Variable (QualIdent Nothing (Ident "ctime" 69)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "y" 69)))))))))) [(PatternDecl (101,9) (VariablePattern (Ident "shortMonths" 74)) (SimpleRhs (101,23) (List [(Literal (String "Jan")),(Literal (String "Feb")),(Literal (String "Mar")),(Literal (String "Apr")),(Literal (String "May")),(Literal (String "Jun")),(Literal (String "Jul")),(Literal (String "Aug")),(Literal (String "Sep")),(Literal (String "Oct")),(Literal (String "Nov")),(Literal (String "Dec"))]) []))]))])
+,(TypeSig (106,1) [(Ident "toDayString" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (107,1) (Ident "toDayString" 0) [(Equation (107,1) (FunLhs (Ident "toDayString" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "y" 77)),(VariablePattern (Ident "mo" 77)),(VariablePattern (Ident "d" 77)),(VariablePattern (Ident "_" 78)),(VariablePattern (Ident "_" 79)),(VariablePattern (Ident "_" 80)),(VariablePattern (Ident "_" 81))]))]) (SimpleRhs (108,5) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "longMonths" 82))) (InfixOp (QualIdent (Just "Prelude") (Ident "!!" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mo" 77))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 84) 1))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String " ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "d" 77)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ", ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "y" 77)))))))) [(PatternDecl (109,9) (VariablePattern (Ident "longMonths" 82)) (SimpleRhs (109,22) (List [(Literal (String "January")),(Literal (String "February")),(Literal (String "March")),(Literal (String "April")),(Literal (String "May")),(Literal (String "June")),(Literal (String "July")),(Literal (String "August")),(Literal (String "September")),(Literal (String "October")),(Literal (String "November")),(Literal (String "December"))]) []))]))])
+,(TypeSig (113,1) [(Ident "toTimeString" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (114,1) (Ident "toTimeString" 0) [(Equation (114,1) (FunLhs (Ident "toTimeString" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "_" 86)),(VariablePattern (Ident "_" 87)),(VariablePattern (Ident "_" 88)),(VariablePattern (Ident "h" 85)),(VariablePattern (Ident "mi" 85)),(VariablePattern (Ident "s" 85)),(VariablePattern (Ident "_" 89))]))]) (SimpleRhs (115,4) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "digit2" 90))) (Variable (QualIdent Nothing (Ident "h" 85)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ":")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "digit2" 90))) (Variable (QualIdent Nothing (Ident "mi" 85)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (String ":")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Apply (Variable (QualIdent Nothing (Ident "digit2" 90))) (Variable (QualIdent Nothing (Ident "s" 85)))))))) [(FunctionDecl (116,9) (Ident "digit2" 90) [(Equation (116,9) (FunLhs (Ident "digit2" 90) [(VariablePattern (Ident "n" 91))]) (SimpleRhs (116,20) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 91))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Literal (Int (Ident "_" 93) 10))) (List [(Literal (Char '0')),(Apply (Variable (QualIdent (Just "Prelude") (Ident "chr" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "ord" 0))) (Literal (Char '0'))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "n" 91))))))]) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "n" 91))))) []))])]))])
+,(TypeSig (120,1) [(Ident "addSeconds" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []))))
+,(FunctionDecl (121,1) (Ident "addSeconds" 0) [(Equation (121,1) (FunLhs (Ident "addSeconds" 0) [(VariablePattern (Ident "n" 94)),(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CTime" 0)) [(VariablePattern (Ident "ctime" 94))]))]) (SimpleRhs (121,30) (Apply (Constructor (QualIdent (Just "Time") (Ident "CTime" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ctime" 94))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "n" 94)))))) []))])
+,(TypeSig (124,1) [(Ident "addMinutes" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []))))
+,(FunctionDecl (125,1) (Ident "addMinutes" 0) [(Equation (125,1) (FunLhs (Ident "addMinutes" 0) [(VariablePattern (Ident "n" 96)),(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CTime" 0)) [(VariablePattern (Ident "ctime" 96))]))]) (SimpleRhs (125,30) (Apply (Constructor (QualIdent (Just "Time") (Ident "CTime" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ctime" 96))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 96))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Literal (Int (Ident "_" 98) 60))))))) []))])
+,(TypeSig (128,1) [(Ident "addHours" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []))))
+,(FunctionDecl (129,1) (Ident "addHours" 0) [(Equation (129,1) (FunLhs (Ident "addHours" 0) [(VariablePattern (Ident "n" 99)),(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CTime" 0)) [(VariablePattern (Ident "ctime" 99))]))]) (SimpleRhs (129,28) (Apply (Constructor (QualIdent (Just "Time") (Ident "CTime" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ctime" 99))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 99))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Literal (Int (Ident "_" 101) 3600))))))) []))])
+,(TypeSig (132,1) [(Ident "addDays" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []))))
+,(FunctionDecl (133,1) (Ident "addDays" 0) [(Equation (133,1) (FunLhs (Ident "addDays" 0) [(VariablePattern (Ident "n" 102)),(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CTime" 0)) [(VariablePattern (Ident "ctime" 102))]))]) (SimpleRhs (133,27) (Apply (Constructor (QualIdent (Just "Time") (Ident "CTime" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ctime" 102))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "n" 102))) (InfixOp (QualIdent (Just "Prelude") (Ident "*" 0))) (Literal (Int (Ident "_" 104) 86400))))))) []))])
+,(TypeSig (136,1) [(Ident "addMonths" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []))))
+,(FunctionDecl (137,1) (Ident "addMonths" 0) [(Equation (137,1) (FunLhs (Ident "addMonths" 0) [(VariablePattern (Ident "n" 105)),(VariablePattern (Ident "ctime" 105))]) (SimpleRhs (138,2) (Let [(PatternDecl (138,6) (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "y" 107)),(VariablePattern (Ident "mo" 107)),(VariablePattern (Ident "d" 107)),(VariablePattern (Ident "h" 107)),(VariablePattern (Ident "mi" 107)),(VariablePattern (Ident "s" 107)),(VariablePattern (Ident "tz" 107))]) (SimpleRhs (138,38) (Apply (Variable (QualIdent (Just "Time") (Ident "toUTCTime" 0))) (Variable (QualIdent Nothing (Ident "ctime" 105)))) [])),(PatternDecl (139,6) (VariablePattern (Ident "nmo" 107)) (SimpleRhs (139,12) (InfixApply (InfixApply (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "mo" 107))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 110) 1))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "n" 105))))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 111) 12))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 112) 1))) []))] (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "nmo" 107))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Literal (Int (Ident "_" 113) 0))) (Apply (Apply (Variable (QualIdent (Just "Time") (Ident "addYears" 0))) (Paren (InfixApply (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "mo" 107))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 114) 1))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "n" 105))))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 115) 12))))) (Paren (Apply (Variable (QualIdent (Just "Time") (Ident "toClockTime" 0))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "Time") (Ident "CalendarTime" 0))) (Variable (QualIdent Nothing (Ident "y" 107)))) (Variable (QualIdent Nothing (Ident "nmo" 107)))) (Variable (QualIdent Nothing (Ident "d" 107)))) (Variable (QualIdent Nothing (Ident "h" 107)))) (Variable (QualIdent Nothing (Ident "mi" 107)))) (Variable (QualIdent Nothing (Ident "s" 107)))) (Variable (QualIdent Nothing (Ident "tz" 107)))))))) (Apply (Apply (Variable (QualIdent (Just "Time") (Ident "addYears" 0))) (Paren (InfixApply (InfixApply (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "mo" 107))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 116) 1))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "n" 105))))) (InfixOp (QualIdent (Just "Prelude") (Ident "div" 0))) (Literal (Int (Ident "_" 117) 12))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 118) 1))))) (Paren (Apply (Variable (QualIdent (Just "Time") (Ident "toClockTime" 0))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "Time") (Ident "CalendarTime" 0))) (Variable (QualIdent Nothing (Ident "y" 107)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "nmo" 107))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 119) 12))))) (Variable (QualIdent Nothing (Ident "d" 107)))) (Variable (QualIdent Nothing (Ident "h" 107)))) (Variable (QualIdent Nothing (Ident "mi" 107)))) (Variable (QualIdent Nothing (Ident "s" 107)))) (Variable (QualIdent Nothing (Ident "tz" 107)))))))))) []))])
+,(TypeSig (148,1) [(Ident "addYears" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []))))
+,(FunctionDecl (149,1) (Ident "addYears" 0) [(Equation (149,1) (FunLhs (Ident "addYears" 0) [(VariablePattern (Ident "n" 120)),(VariablePattern (Ident "ctime" 120))]) (SimpleRhs (149,20) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "n" 120))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 122) 0))) (Variable (QualIdent Nothing (Ident "ctime" 120))) (Let [(PatternDecl (150,7) (ConstructorPattern (QualIdent (Just "Time") (Ident "CalendarTime" 0)) [(VariablePattern (Ident "y" 123)),(VariablePattern (Ident "mo" 123)),(VariablePattern (Ident "d" 123)),(VariablePattern (Ident "h" 123)),(VariablePattern (Ident "mi" 123)),(VariablePattern (Ident "s" 123)),(VariablePattern (Ident "tz" 123))]) (SimpleRhs (150,39) (Apply (Variable (QualIdent (Just "Time") (Ident "toUTCTime" 0))) (Variable (QualIdent Nothing (Ident "ctime" 120)))) []))] (Apply (Variable (QualIdent (Just "Time") (Ident "toClockTime" 0))) (Paren (Apply (Apply (Apply (Apply (Apply (Apply (Apply (Constructor (QualIdent (Just "Time") (Ident "CalendarTime" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "y" 123))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "n" 120)))))) (Variable (QualIdent Nothing (Ident "mo" 123)))) (Variable (QualIdent Nothing (Ident "d" 123)))) (Variable (QualIdent Nothing (Ident "h" 123)))) (Variable (QualIdent Nothing (Ident "mi" 123)))) (Variable (QualIdent Nothing (Ident "s" 123)))) (Variable (QualIdent Nothing (Ident "tz" 123)))))))) []))])
+,(TypeSig (154,1) [(Ident "daysOfMonth" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))))
+,(FunctionDecl (155,1) (Ident "daysOfMonth" 0) [(Equation (155,1) (FunLhs (Ident "daysOfMonth" 0) [(VariablePattern (Ident "mo" 125)),(VariablePattern (Ident "yr" 125))]) (SimpleRhs (156,3) (IfThenElse (InfixApply (Variable (QualIdent Nothing (Ident "mo" 125))) (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Literal (Int (Ident "_" 127) 2))) (InfixApply (List [(Literal (Int (Ident "_" 128) 31)),(Literal (Int (Ident "_" 129) 28)),(Literal (Int (Ident "_" 130) 31)),(Literal (Int (Ident "_" 131) 30)),(Literal (Int (Ident "_" 132) 31)),(Literal (Int (Ident "_" 133) 30)),(Literal (Int (Ident "_" 134) 31)),(Literal (Int (Ident "_" 135) 31)),(Literal (Int (Ident "_" 136) 30)),(Literal (Int (Ident "_" 137) 31)),(Literal (Int (Ident "_" 138) 30)),(Literal (Int (Ident "_" 139) 31))]) (InfixOp (QualIdent (Just "Prelude") (Ident "!!" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mo" 125))) (InfixOp (QualIdent (Just "Prelude") (Ident "-" 0))) (Literal (Int (Ident "_" 140) 1))))) (IfThenElse (InfixApply (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "yr" 125))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 141) 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 142) 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (Paren (InfixApply (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "yr" 125))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 143) 100))) (InfixOp (QualIdent (Just "Prelude") (Ident "/=" 0))) (Literal (Int (Ident "_" 144) 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "||" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "yr" 125))) (InfixOp (QualIdent (Just "Prelude") (Ident "mod" 0))) (Literal (Int (Ident "_" 145) 400))) (InfixOp (QualIdent (Just "Prelude") (Ident "==" 0))) (Literal (Int (Ident "_" 146) 0)))))) (Literal (Int (Ident "_" 147) 29)) (Literal (Int (Ident "_" 148) 28)))) []))])
+,(TypeSig (163,1) [(Ident "validDate" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))))
+,(FunctionDecl (164,1) (Ident "validDate" 0) [(Equation (164,1) (FunLhs (Ident "validDate" 0) [(VariablePattern (Ident "y" 149)),(VariablePattern (Ident "m" 149)),(VariablePattern (Ident "d" 149))]) (SimpleRhs (164,19) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "m" 149))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Literal (Int (Ident "_" 151) 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "m" 149))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Literal (Int (Ident "_" 152) 13))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "d" 149))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Literal (Int (Ident "_" 153) 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "&&" 0))) (InfixApply (Variable (QualIdent Nothing (Ident "d" 149))) (InfixOp (QualIdent (Just "Prelude") (Ident "<=" 0))) (Apply (Apply (Variable (QualIdent (Just "Time") (Ident "daysOfMonth" 0))) (Variable (QualIdent Nothing (Ident "m" 149)))) (Variable (QualIdent Nothing (Ident "y" 149)))))))) []))])
+,(TypeSig (167,1) [(Ident "compareDate" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (168,1) (Ident "compareDate" 0) [(Equation (168,1) (FunLhs (Ident "compareDate" 0) []) (SimpleRhs (168,15) (Variable (QualIdent (Just "Time") (Ident "compareCalendarTime" 0))) []))])
+,(TypeSig (171,1) [(Ident "compareCalendarTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "CalendarTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (172,1) (Ident "compareCalendarTime" 0) [(Equation (172,1) (FunLhs (Ident "compareCalendarTime" 0) [(VariablePattern (Ident "ct1" 156)),(VariablePattern (Ident "ct2" 156))]) (SimpleRhs (173,3) (Apply (Apply (Variable (QualIdent (Just "Time") (Ident "compareClockTime" 0))) (Paren (Apply (Variable (QualIdent (Just "Time") (Ident "toClockTime" 0))) (Variable (QualIdent Nothing (Ident "ct1" 156)))))) (Paren (Apply (Variable (QualIdent (Just "Time") (Ident "toClockTime" 0))) (Variable (QualIdent Nothing (Ident "ct2" 156)))))) []))])
+,(TypeSig (176,1) [(Ident "compareClockTime" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "ClockTime" 0)) []) (ConstructorType (QualIdent Nothing (Ident "Ordering" 0)) []))))
+,(FunctionDecl (177,1) (Ident "compareClockTime" 0) [(Equation (177,1) (FunLhs (Ident "compareClockTime" 0) [(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CTime" 0)) [(VariablePattern (Ident "time1" 158))])),(ParenPattern (ConstructorPattern (QualIdent (Just "Time") (Ident "CTime" 0)) [(VariablePattern (Ident "time2" 158))]))]) (GuardedRhs [(CondExpr (178,2) (InfixApply (Variable (QualIdent Nothing (Ident "time1" 158))) (InfixOp (QualIdent (Just "Prelude") (Ident "<" 0))) (Variable (QualIdent Nothing (Ident "time2" 158)))) (Constructor (QualIdent (Just "Prelude") (Ident "LT" 0)))),(CondExpr (179,2) (InfixApply (Variable (QualIdent Nothing (Ident "time1" 158))) (InfixOp (QualIdent (Just "Prelude") (Ident ">" 0))) (Variable (QualIdent Nothing (Ident "time2" 158)))) (Constructor (QualIdent (Just "Prelude") (Ident "GT" 0)))),(CondExpr (180,2) (Variable (QualIdent (Just "Prelude") (Ident "otherwise" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "EQ" 0))))] []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Time.efc b/src/lib/Curry/Module/.curry/Time.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Time.efc
@@ -0,0 +1,1 @@
+Prog "Time" ["Prelude"] [Type ((Nothing,Nothing,"Time","ClockTime")) Public [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) 1 Private [TCons ((Nothing,Nothing,"Prelude","Int")) []]],Type ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) Public [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) 7 Public [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","Int")) []]]] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","ctYear")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","ctMonth")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","ctDay")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","ctHour")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","ctMin")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","ctSec")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","ctTZ")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)))])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []]),"Time","getClockTime")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Time","ClockTime")) []]) (External "Time.getClockTime"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []]),"Time","getLocalTime")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Time","CalendarTime")) []]) (Rule [] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","ClockTime") []]),"Time","getClockTime")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []])),"Time","getLocalTime._#lambda2")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []])),"Time","getLocalTime._#lambda2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Time","CalendarTime")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []])),"Time","toCalendarTime")) [Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","clockTimeToInt")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []])),"Time","toCalendarTime")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Time","CalendarTime")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []])) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []])),"Time","prim_toCalendarTime")) [],Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Time","CalendarTime") []])),"Time","prim_toCalendarTime")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Time","CalendarTime")) []])) (External "Time.prim_toCalendarTime"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])),"Time","toUTCTime")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Time","CalendarTime")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","CalendarTime") []))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])),"Time","prim_toUTCTime")) [],Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])),"Time","prim_toUTCTime")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Time","CalendarTime")) [])) (External "Time.prim_toUTCTime"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","toClockTime")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Time","ClockTime")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])) (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","prim_toClockTime")) [],Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","prim_toClockTime")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Time","ClockTime")) [])) (External "Time.prim_toClockTime"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Time","calendarTimeToString")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),9),Comb ConsCall ((Nothing,Just (FuncType (TVar 84) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 84]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 84]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 27) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 27]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 27]))),"Prelude",":")) [Lit (Charc  'J'),Comb ConsCall ((Nothing,Just (FuncType (TVar 26) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 26]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 26]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TVar 25) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 25]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 25]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (TVar 24),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 83) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 83]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 83]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 31) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 31]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 31]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TVar 30) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 30]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 30]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 29) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 29]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 29]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (TVar 28),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 82) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 82]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 82]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 35) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 35]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 35]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TVar 34) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 34]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 34]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TVar 33) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 33]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 33]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (TVar 32),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 81) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 81]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 81]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 39) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TVar 38) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 38]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 38]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TVar 37) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (TVar 36),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 80) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 80]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 80]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 43) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TVar 42) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TVar 41) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 41]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 41]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (TVar 40),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 47) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]))),"Prelude",":")) [Lit (Charc  'J'),Comb ConsCall ((Nothing,Just (FuncType (TVar 46) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 46]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 46]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 45) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (TVar 44),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 78) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 78]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 78]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 51) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 51]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 51]))),"Prelude",":")) [Lit (Charc  'J'),Comb ConsCall ((Nothing,Just (FuncType (TVar 50) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 49) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 49]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 49]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (TVar 48),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 77) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 77]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 77]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 55) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 55]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 55]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TVar 54) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 54]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 54]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 53) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (TVar 52),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 76) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 76]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 76]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 59) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 59]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 59]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TVar 58) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 58]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 58]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 57) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 57]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 57]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (TVar 56),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 75) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 75]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 75]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 63) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 63]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 63]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TVar 62) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 62]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 62]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TVar 61) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 61]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 61]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TVar 60),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 74) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 74]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 74]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 67) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 67]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 67]))),"Prelude",":")) [Lit (Charc  'N'),Comb ConsCall ((Nothing,Just (FuncType (TVar 66) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TVar 65) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 65]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 65]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (TVar 64),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 73) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 73]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 71) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 71]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 71]))),"Prelude",":")) [Lit (Charc  'D'),Comb ConsCall ((Nothing,Just (FuncType (TVar 70) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 70]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 70]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 69) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 69]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 69]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (TVar 68),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (TVar 72),"Prelude","[]")) []]]]]]]]]]]]])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","!!")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),9)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  1)]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Time","toTimeString")) [Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]]]]]]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Time","toDayString")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),9),Comb ConsCall ((Nothing,Just (FuncType (TVar 121) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 121]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 121]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 30) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 30]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 30]))),"Prelude",":")) [Lit (Charc  'J'),Comb ConsCall ((Nothing,Just (FuncType (TVar 29) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 29]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 29]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TVar 28) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 28]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 28]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TVar 27) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 27]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 27]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 26) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 26]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 26]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TVar 25) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 25]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 25]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TVar 24) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 24]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 24]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (TVar 23),"Prelude","[]")) []]]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 120) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 120]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 120]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 39) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 39]))),"Prelude",":")) [Lit (Charc  'F'),Comb ConsCall ((Nothing,Just (FuncType (TVar 38) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 38]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 38]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 37) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 37]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TVar 36) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 36]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 36]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TVar 35) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 35]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 35]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 34) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 34]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 34]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TVar 33) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 33]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 33]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TVar 32) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 32]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 32]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (TVar 31),"Prelude","[]")) []]]]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 119) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 119]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 45) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TVar 44) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 44]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 44]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TVar 43) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 43]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TVar 42) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 42]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TVar 41) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 41]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 41]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (TVar 40),"Prelude","[]")) []]]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 118) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 118]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 118]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 51) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 51]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 51]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TVar 50) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TVar 49) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 49]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 49]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TVar 48) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 48]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 48]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TVar 47) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (TVar 46),"Prelude","[]")) []]]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 117) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 117]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 117]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 55) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 55]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 55]))),"Prelude",":")) [Lit (Charc  'M'),Comb ConsCall ((Nothing,Just (FuncType (TVar 54) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 54]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 54]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TVar 53) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (TVar 52),"Prelude","[]")) []]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 116) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 116]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 116]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 60) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 60]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 60]))),"Prelude",":")) [Lit (Charc  'J'),Comb ConsCall ((Nothing,Just (FuncType (TVar 59) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 59]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 59]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 58) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 58]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 58]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TVar 57) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 57]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 57]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TVar 56),"Prelude","[]")) []]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 115) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 115]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 115]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 65) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 65]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 65]))),"Prelude",":")) [Lit (Charc  'J'),Comb ConsCall ((Nothing,Just (FuncType (TVar 64) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 64]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 64]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 63) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 63]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 63]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TVar 62) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 62]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 62]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (TVar 61),"Prelude","[]")) []]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 114) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 114]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 114]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 72) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 72]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 72]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TVar 71) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 71]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 71]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 70) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 70]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 70]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TVar 69) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 69]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 69]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TVar 68) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 68]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 68]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TVar 67) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 67]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 67]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TVar 66),"Prelude","[]")) []]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 113) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 113]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 113]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 82) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 82]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 82]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TVar 81) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 81]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 81]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 80) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 80]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 80]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TVar 79) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 79]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TVar 78) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 78]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 78]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 77) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 77]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 77]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TVar 76) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 76]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 76]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TVar 75) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 75]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 75]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 74) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 74]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 74]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (TVar 73),"Prelude","[]")) []]]]]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 112) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 112]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 112]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 90) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 90]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 90]))),"Prelude",":")) [Lit (Charc  'O'),Comb ConsCall ((Nothing,Just (FuncType (TVar 89) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 89]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 89]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TVar 88) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 88]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 88]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TVar 87) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 87]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 87]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TVar 86) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 86]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 86]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TVar 85) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 85]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 85]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 84) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 84]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 84]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (TVar 83),"Prelude","[]")) []]]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 111) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 111]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 111]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 99) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 99]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 99]))),"Prelude",":")) [Lit (Charc  'N'),Comb ConsCall ((Nothing,Just (FuncType (TVar 98) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 98]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 98]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TVar 97) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 97]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 97]))),"Prelude",":")) [Lit (Charc  'v'),Comb ConsCall ((Nothing,Just (FuncType (TVar 96) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 96]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 96]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 95) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 95]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 95]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TVar 94) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 94]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 94]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TVar 93) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 93]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 93]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 92) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 92]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 92]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (TVar 91),"Prelude","[]")) []]]]]]]]],Comb ConsCall ((Nothing,Just (FuncType (TVar 110) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 110]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 110]))),"Prelude",":")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 108) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 108]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 108]))),"Prelude",":")) [Lit (Charc  'D'),Comb ConsCall ((Nothing,Just (FuncType (TVar 107) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 107]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 107]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 106) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 106]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 106]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TVar 105) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 105]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 105]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 104) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 104]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 104]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TVar 103) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 103]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 103]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TVar 102) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 102]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 102]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 101) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 101]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 101]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (TVar 100),"Prelude","[]")) []]]]]]]]],Comb ConsCall ((Nothing,Just (TVar 109),"Prelude","[]")) []]]]]]]]]]]]])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","!!")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),9)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  1)]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]]]]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Time","toTimeString")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Time","toTimeString.digit2.90")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Time","toTimeString.digit2.90")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Time","toTimeString.digit2.90")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7))]]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Time","toTimeString.digit2.90")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  10)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '0'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Char") [])),"Prelude","chr")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","ord")) [Lit (Charc  '0')],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Time","addSeconds")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Time","ClockTime")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Time","addMinutes")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Time","ClockTime")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  60)]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Time","addHours")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Time","ClockTime")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  3600)]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Time","addDays")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Time","ClockTime")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  86400)]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Time","addMonths")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Time","ClockTime")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2)] (Let [((Just (TVar 0),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])),"Time","toUTCTime")) [Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP3#y")) [Var ((Just (TVar 0),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP4#mo")) [Var ((Just (TVar 0),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP5#d")) [Var ((Just (TVar 0),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP6#h")) [Var ((Just (TVar 0),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP7#mi")) [Var ((Just (TVar 0),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP8#s")) [Var ((Just (TVar 0),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP9#tz")) [Var ((Just (TVar 0),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Lit (Intc  12)],Lit (Intc  1)])] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Time","addYears")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Lit (Intc  12)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","toClockTime")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),10))]]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Time","addYears")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Lit (Intc  12)],Lit (Intc  1)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","toClockTime")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),11)),Lit (Intc  12)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),10))]]])]))))))))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP3#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP4#mo")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP5#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP6#h")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP7#mi")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP8#s")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addMonths._#selFP9#tz")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") []))),"Time","addYears")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Time","ClockTime")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TVar 1),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])),"Time","toUTCTime")) [Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP11#y")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP12#mo")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP13#d")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP14#h")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP15#mi")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP16#s")) [Var ((Just (TVar 1),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP17#tz")) [Var ((Just (TVar 1),3))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","toClockTime")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),10))]])))))))))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP11#y")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP12#mo")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP13#d")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP14#h")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP15#mi")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP16#s")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Time","addYears._#selFP17#tz")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","CalendarTime") [])))))))),"Time","CalendarTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),8)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Time","daysOfMonth")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  2)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","!!")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  31),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  28),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  31),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  30),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  31),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  30),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  31),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  31),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  30),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  31),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  30),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Lit (Intc  31),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc  1)]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  4)],Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","||")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  100)],Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  400)],Lit (Intc  0)]]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc  29)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Lit (Intc  28))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Time","validDate")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc  13)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc  0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Time","daysOfMonth")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Time","compareDate")) 0 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Time","compareCalendarTime")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Time","compareCalendarTime")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (FuncType (TCons ((Nothing,Nothing,"Time","CalendarTime")) []) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1),(Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Time","compareClockTime")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","toClockTime")) [Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","CalendarTime") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","toClockTime")) [Var ((Just (TCons (Nothing,Nothing,"Time","CalendarTime") []),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (FuncType (TCons (Nothing,Nothing,"Time","ClockTime") []) (TCons (Nothing,Nothing,"Prelude","Ordering") []))),"Time","compareClockTime")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (FuncType (TCons ((Nothing,Nothing,"Time","ClockTime")) []) (TCons ((Nothing,Nothing,"Prelude","Ordering")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1),(Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Time","ClockTime") []),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Time","ClockTime") [])),"Time","CTime")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)]) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","LT")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","GT")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","EQ")) []),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Ordering") []),"Prelude","failed")) [])])])])])]))] []
diff --git a/src/lib/Curry/Module/.curry/Time.fcy b/src/lib/Curry/Module/.curry/Time.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Time.fcy
@@ -0,0 +1,1 @@
+Prog "Time" ["Prelude"] [Type ("Time","ClockTime") Public [] [Cons ("Time","CTime") 1 Private [TCons ("Prelude","Int") []]],Type ("Time","CalendarTime") Public [] [Cons ("Time","CalendarTime") 7 Public [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]]] [Func ("Time","ctYear") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 2)])),Func ("Time","ctMonth") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 3)])),Func ("Time","ctDay") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 4)])),Func ("Time","ctHour") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 5)])),Func ("Time","ctMin") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 6)])),Func ("Time","ctSec") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 7)])),Func ("Time","ctTZ") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 8)])),Func ("Time","getClockTime") 0 Public (TCons ("Prelude","IO") [TCons ("Time","ClockTime") []]) (External "Time.getClockTime"),Func ("Time","getLocalTime") 0 Public (TCons ("Prelude","IO") [TCons ("Time","CalendarTime") []]) (Rule [] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Time","getClockTime") [],Comb (FuncPartCall 1) ("Time","getLocalTime._#lambda2") []])),Func ("Time","getLocalTime._#lambda2") 1 Private (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","IO") [TCons ("Time","CalendarTime") []])) (Rule [1] (Comb FuncCall ("Time","toCalendarTime") [Var 1])),Func ("Time","clockTimeToInt") 1 Public (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CTime") [2]) (Var 2)])),Func ("Time","toCalendarTime") 1 Public (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","IO") [TCons ("Time","CalendarTime") []])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Time","prim_toCalendarTime") [],Var 1])),Func ("Time","prim_toCalendarTime") 1 Private (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","IO") [TCons ("Time","CalendarTime") []])) (External "Time.prim_toCalendarTime"),Func ("Time","toUTCTime") 1 Public (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","CalendarTime") [])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Time","prim_toUTCTime") [],Var 1])),Func ("Time","prim_toUTCTime") 1 Private (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","CalendarTime") [])) (External "Time.prim_toUTCTime"),Func ("Time","toClockTime") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Time","ClockTime") [])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Time","prim_toClockTime") [],Var 1])),Func ("Time","prim_toClockTime") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Time","ClockTime") [])) (External "Time.prim_toClockTime"),Func ("Time","calendarTimeToString") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Let [(9,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'J'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'J'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'J'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'D'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]])] (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","!!") [Var 9,Comb FuncCall ("Prelude","-") [Var 3,Lit (Intc  1)]],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 4],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Time","toTimeString") [Var 1],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","show") [Var 2]]]]]]]))])),Func ("Time","toDayString") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Let [(9,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'J'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),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","[]") []]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'J'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'J'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'D'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]],Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]])] (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","!!") [Var 9,Comb FuncCall ("Prelude","-") [Var 3,Lit (Intc  1)]],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 4],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Prelude","show") [Var 2]]]]]))])),Func ("Time","toTimeString") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Time","toTimeString.digit2.90") [Var 5],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Time","toTimeString.digit2.90") [Var 6],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Time","toTimeString.digit2.90") [Var 7]]]]])])),Func ("Time","toTimeString.digit2.90") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","<") [Var 1,Lit (Intc  10)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Lit (Charc  '0'),Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","chr") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","ord") [Lit (Charc  '0')],Var 1]],Comb ConsCall ("Prelude","[]") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","show") [Var 1])])),Func ("Time","addSeconds") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Time","CTime") [3]) (Comb ConsCall ("Time","CTime") [Comb FuncCall ("Prelude","+") [Var 3,Var 1]])])),Func ("Time","addMinutes") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Time","CTime") [3]) (Comb ConsCall ("Time","CTime") [Comb FuncCall ("Prelude","+") [Var 3,Comb FuncCall ("Prelude","*") [Var 1,Lit (Intc  60)]]])])),Func ("Time","addHours") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Time","CTime") [3]) (Comb ConsCall ("Time","CTime") [Comb FuncCall ("Prelude","+") [Var 3,Comb FuncCall ("Prelude","*") [Var 1,Lit (Intc  3600)]]])])),Func ("Time","addDays") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Time","CTime") [3]) (Comb ConsCall ("Time","CTime") [Comb FuncCall ("Prelude","+") [Var 3,Comb FuncCall ("Prelude","*") [Var 1,Lit (Intc  86400)]]])])),Func ("Time","addMonths") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [1,2] (Let [(3,Comb FuncCall ("Time","toUTCTime") [Var 2])] (Let [(4,Comb FuncCall ("Time","addMonths._#selFP3#y") [Var 3])] (Let [(5,Comb FuncCall ("Time","addMonths._#selFP4#mo") [Var 3])] (Let [(6,Comb FuncCall ("Time","addMonths._#selFP5#d") [Var 3])] (Let [(7,Comb FuncCall ("Time","addMonths._#selFP6#h") [Var 3])] (Let [(8,Comb FuncCall ("Time","addMonths._#selFP7#mi") [Var 3])] (Let [(9,Comb FuncCall ("Time","addMonths._#selFP8#s") [Var 3])] (Let [(10,Comb FuncCall ("Time","addMonths._#selFP9#tz") [Var 3])] (Let [(11,Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","mod") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Var 5,Lit (Intc  1)],Var 1],Lit (Intc  12)],Lit (Intc  1)])] (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 11,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Time","addYears") [Comb FuncCall ("Prelude","div") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Var 5,Lit (Intc  1)],Var 1],Lit (Intc  12)],Comb FuncCall ("Time","toClockTime") [Comb ConsCall ("Time","CalendarTime") [Var 4,Var 11,Var 6,Var 7,Var 8,Var 9,Var 10]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Time","addYears") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","div") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Var 5,Lit (Intc  1)],Var 1],Lit (Intc  12)],Lit (Intc  1)],Comb FuncCall ("Time","toClockTime") [Comb ConsCall ("Time","CalendarTime") [Var 4,Comb FuncCall ("Prelude","+") [Var 11,Lit (Intc  12)],Var 6,Var 7,Var 8,Var 9,Var 10]]])]))))))))))),Func ("Time","addMonths._#selFP3#y") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 2)])),Func ("Time","addMonths._#selFP4#mo") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 3)])),Func ("Time","addMonths._#selFP5#d") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 4)])),Func ("Time","addMonths._#selFP6#h") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 5)])),Func ("Time","addMonths._#selFP7#mi") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 6)])),Func ("Time","addMonths._#selFP8#s") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 7)])),Func ("Time","addMonths._#selFP9#tz") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 8)])),Func ("Time","addYears") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Let [(3,Comb FuncCall ("Time","toUTCTime") [Var 2])] (Let [(4,Comb FuncCall ("Time","addYears._#selFP11#y") [Var 3])] (Let [(5,Comb FuncCall ("Time","addYears._#selFP12#mo") [Var 3])] (Let [(6,Comb FuncCall ("Time","addYears._#selFP13#d") [Var 3])] (Let [(7,Comb FuncCall ("Time","addYears._#selFP14#h") [Var 3])] (Let [(8,Comb FuncCall ("Time","addYears._#selFP15#mi") [Var 3])] (Let [(9,Comb FuncCall ("Time","addYears._#selFP16#s") [Var 3])] (Let [(10,Comb FuncCall ("Time","addYears._#selFP17#tz") [Var 3])] (Comb FuncCall ("Time","toClockTime") [Comb ConsCall ("Time","CalendarTime") [Comb FuncCall ("Prelude","+") [Var 4,Var 1],Var 5,Var 6,Var 7,Var 8,Var 9,Var 10]])))))))))])),Func ("Time","addYears._#selFP11#y") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 2)])),Func ("Time","addYears._#selFP12#mo") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 3)])),Func ("Time","addYears._#selFP13#d") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 4)])),Func ("Time","addYears._#selFP14#h") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 5)])),Func ("Time","addYears._#selFP15#mi") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 6)])),Func ("Time","addYears._#selFP16#s") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 7)])),Func ("Time","addYears._#selFP17#tz") 1 Private (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Time","CalendarTime") [2,3,4,5,6,7,8]) (Var 8)])),Func ("Time","daysOfMonth") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","/=") [Var 1,Lit (Intc  2)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","!!") [Comb ConsCall ("Prelude",":") [Lit (Intc  31),Comb ConsCall ("Prelude",":") [Lit (Intc  28),Comb ConsCall ("Prelude",":") [Lit (Intc  31),Comb ConsCall ("Prelude",":") [Lit (Intc  30),Comb ConsCall ("Prelude",":") [Lit (Intc  31),Comb ConsCall ("Prelude",":") [Lit (Intc  30),Comb ConsCall ("Prelude",":") [Lit (Intc  31),Comb ConsCall ("Prelude",":") [Lit (Intc  31),Comb ConsCall ("Prelude",":") [Lit (Intc  30),Comb ConsCall ("Prelude",":") [Lit (Intc  31),Comb ConsCall ("Prelude",":") [Lit (Intc  30),Comb ConsCall ("Prelude",":") [Lit (Intc  31),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]],Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 2,Lit (Intc  4)],Lit (Intc  0)],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","/=") [Comb FuncCall ("Prelude","mod") [Var 2,Lit (Intc  100)],Lit (Intc  0)],Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","mod") [Var 2,Lit (Intc  400)],Lit (Intc  0)]]]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  29)),Branch (Pattern ("Prelude","False") []) (Lit (Intc  28))])])),Func ("Time","validDate") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">") [Var 2,Lit (Intc  0)],Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","<") [Var 2,Lit (Intc  13)],Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">") [Var 3,Lit (Intc  0)],Comb FuncCall ("Prelude","<=") [Var 3,Comb FuncCall ("Time","daysOfMonth") [Var 2,Var 1]]]]])),Func ("Time","compareDate") 0 Public (FuncType (TCons ("Time","CalendarTime") []) (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Comb (FuncPartCall 2) ("Time","compareCalendarTime") [])),Func ("Time","compareCalendarTime") 2 Public (FuncType (TCons ("Time","CalendarTime") []) (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Comb FuncCall ("Time","compareClockTime") [Comb FuncCall ("Time","toClockTime") [Var 1],Comb FuncCall ("Time","toClockTime") [Var 2]])),Func ("Time","compareClockTime") 2 Public (FuncType (TCons ("Time","ClockTime") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","Ordering") []))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Time","CTime") [3]) (Case  Flex (Var 2) [Branch (Pattern ("Time","CTime") [4]) (Case  Rigid (Comb FuncCall ("Prelude","<") [Var 3,Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","LT") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude",">") [Var 3,Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","GT") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","EQ") []),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])]))] []
diff --git a/src/lib/Curry/Module/.curry/Time.fint b/src/lib/Curry/Module/.curry/Time.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Time.fint
@@ -0,0 +1,1 @@
+Prog "Time" ["Prelude"] [Type ("Time","ClockTime") Public [] [],Type ("Time","CalendarTime") Public [] [Cons ("Time","CalendarTime") 7 Public [TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]]] [Func ("Time","ctYear") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Time","ctMonth") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Time","ctDay") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Time","ctHour") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Time","ctMin") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Time","ctSec") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Time","ctTZ") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Time","getClockTime") 0 Public (TCons ("Prelude","IO") [TCons ("Time","ClockTime") []]) (External "Time.getClockTime"),Func ("Time","getLocalTime") 0 Public (TCons ("Prelude","IO") [TCons ("Time","CalendarTime") []]) (Rule [] (Var 0)),Func ("Time","clockTimeToInt") 1 Public (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Time","toCalendarTime") 1 Public (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","IO") [TCons ("Time","CalendarTime") []])) (Rule [] (Var 0)),Func ("Time","toUTCTime") 1 Public (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","CalendarTime") [])) (Rule [] (Var 0)),Func ("Time","toClockTime") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Time","ClockTime") [])) (Rule [] (Var 0)),Func ("Time","calendarTimeToString") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Time","toDayString") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Time","toTimeString") 1 Public (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Time","addSeconds") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [] (Var 0)),Func ("Time","addMinutes") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [] (Var 0)),Func ("Time","addHours") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [] (Var 0)),Func ("Time","addDays") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [] (Var 0)),Func ("Time","addMonths") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [] (Var 0)),Func ("Time","addYears") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Time","ClockTime") []))) (Rule [] (Var 0)),Func ("Time","daysOfMonth") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [] (Var 0)),Func ("Time","validDate") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") [])))) (Rule [] (Var 0)),Func ("Time","compareDate") 0 Public (FuncType (TCons ("Time","CalendarTime") []) (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0)),Func ("Time","compareCalendarTime") 2 Public (FuncType (TCons ("Time","CalendarTime") []) (FuncType (TCons ("Time","CalendarTime") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0)),Func ("Time","compareClockTime") 2 Public (FuncType (TCons ("Time","ClockTime") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","Ordering") []))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Time.uacy b/src/lib/Curry/Module/.curry/Time.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Time.uacy
@@ -0,0 +1,35 @@
+CurryProg "Time"
+ ["Prelude"]
+ [CType ("Time","ClockTime") Public [] [CCons ("Time","CTime") 1 Private [CTCons ("Prelude","Int") []]],
+  CType ("Time","CalendarTime") Public [] [CCons ("Time","CalendarTime") 7 Public [CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") [],CTCons ("Prelude","Int") []]]]
+ [CFunc ("Time","addDays") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPComb ("Time","CTime") [CPVar (1,"ctime")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Time","CTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"ctime"))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CLit (CIntc 86400)))))] []]),
+  CFunc ("Time","addHours") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPComb ("Time","CTime") [CPVar (1,"ctime")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Time","CTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"ctime"))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CLit (CIntc 3600)))))] []]),
+  CFunc ("Time","addMinutes") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPComb ("Time","CTime") [CPVar (1,"ctime")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Time","CTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"ctime"))) (CApply (CApply (CSymbol ("Prelude","*")) (CVar (0,"n"))) (CLit (CIntc 60)))))] []]),
+  CFunc ("Time","addMonths") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"ctime")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPComb ("Time","CalendarTime") [CPVar (2,"y"),CPVar (3,"mo"),CPVar (4,"d"),CPVar (5,"h"),CPVar (6,"mi"),CPVar (7,"s"),CPVar (8,"tz")]) (CApply (CSymbol ("Time","toUTCTime")) (CVar (1,"ctime"))) [],CLocalPat (CPVar (9,"nmo")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","mod")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"mo"))) (CLit (CIntc 1)))) (CVar (0,"n")))) (CLit (CIntc 12)))) (CLit (CIntc 1))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (9,"nmo"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Time","addYears")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"mo"))) (CLit (CIntc 1)))) (CVar (0,"n")))) (CLit (CIntc 12)))) (CApply (CSymbol ("Time","toClockTime")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Time","CalendarTime")) (CVar (2,"y"))) (CVar (9,"nmo"))) (CVar (4,"d"))) (CVar (5,"h"))) (CVar (6,"mi"))) (CVar (7,"s"))) (CVar (8,"tz")))))) (CApply (CApply (CSymbol ("Time","addYears")) (CApply (CApply (CSymbol ("Prelude","-")) (CApply (CApply (CSymbol ("Prelude","div")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (3,"mo"))) (CLit (CIntc 1)))) (CVar (0,"n")))) (CLit (CIntc 12)))) (CLit (CIntc 1)))) (CApply (CSymbol ("Time","toClockTime")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Time","CalendarTime")) (CVar (2,"y"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (9,"nmo"))) (CLit (CIntc 12)))) (CVar (4,"d"))) (CVar (5,"h"))) (CVar (6,"mi"))) (CVar (7,"s"))) (CVar (8,"tz")))))))] []]),
+  CFunc ("Time","addSeconds") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPComb ("Time","CTime") [CPVar (1,"ctime")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Time","CTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (1,"ctime"))) (CVar (0,"n"))))] []]),
+  CFunc ("Time","addYears") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","ClockTime") []))) (CRules CFlex [CRule [CPVar (0,"n"),CPVar (1,"ctime")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (0,"n"))) (CLit (CIntc 0)))) (CVar (1,"ctime"))) (CLetDecl [CLocalPat (CPComb ("Time","CalendarTime") [CPVar (2,"y"),CPVar (3,"mo"),CPVar (4,"d"),CPVar (5,"h"),CPVar (6,"mi"),CPVar (7,"s"),CPVar (8,"tz")]) (CApply (CSymbol ("Time","toUTCTime")) (CVar (1,"ctime"))) []] (CApply (CSymbol ("Time","toClockTime")) (CApply (CApply (CApply (CApply (CApply (CApply (CApply (CSymbol ("Time","CalendarTime")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (2,"y"))) (CVar (0,"n")))) (CVar (3,"mo"))) (CVar (4,"d"))) (CVar (5,"h"))) (CVar (6,"mi"))) (CVar (7,"s"))) (CVar (8,"tz"))))))] []]),
+  CFunc ("Time","calendarTimeToString") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPAs (7,"ctime") (CPComb ("Time","CalendarTime") [CPVar (0,"y"),CPVar (1,"mo"),CPVar (2,"d"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")])] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","!!")) (CVar (8,"shortMonths"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"mo"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"d")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Time","toTimeString")) (CVar (7,"ctime")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Prelude","show")) (CVar (0,"y")))))))))] [CLocalPat (CPVar (8,"shortMonths")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'D'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CSymbol ("Prelude","[]")))))) (CSymbol ("Prelude","[]")))))))))))))) []]]),
+  CFunc ("Time","clockTimeToInt") 1 Public (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CTime") [CPVar (0,"i")]] [(CSymbol ("Prelude","success"),CVar (0,"i"))] []]),
+  CFunc ("Time","compareCalendarTime") 2 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPVar (0,"ct1"),CPVar (1,"ct2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Time","compareClockTime")) (CApply (CSymbol ("Time","toClockTime")) (CVar (0,"ct1")))) (CApply (CSymbol ("Time","toClockTime")) (CVar (1,"ct2"))))] []]),
+  CFunc ("Time","compareClockTime") 2 Public (CFuncType (CTCons ("Time","ClockTime") []) (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [CPComb ("Time","CTime") [CPVar (0,"time1")],CPComb ("Time","CTime") [CPVar (1,"time2")]] [(CApply (CApply (CSymbol ("Prelude","<")) (CVar (0,"time1"))) (CVar (1,"time2")),CSymbol ("Prelude","LT")),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (0,"time1"))) (CVar (1,"time2")),CSymbol ("Prelude","GT")),(CSymbol ("Prelude","otherwise"),CSymbol ("Prelude","EQ"))] []]),
+  CFunc ("Time","compareDate") 0 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Ordering") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("Time","compareCalendarTime"))] []]),
+  CFunc ("Time","ctDay") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"d"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"d"))] []]),
+  CFunc ("Time","ctHour") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"h"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (3,"h"))] []]),
+  CFunc ("Time","ctMin") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"m"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (4,"m"))] []]),
+  CFunc ("Time","ctMonth") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"m"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (1,"m"))] []]),
+  CFunc ("Time","ctSec") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"s"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (5,"s"))] []]),
+  CFunc ("Time","ctTZ") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"tz")]] [(CSymbol ("Prelude","success"),CVar (6,"tz"))] []]),
+  CFunc ("Time","ctYear") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"y"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"y"))] []]),
+  CFunc ("Time","daysOfMonth") 2 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") []))) (CRules CFlex [CRule [CPVar (0,"mo"),CPVar (1,"yr")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (0,"mo"))) (CLit (CIntc 2)))) (CApply (CApply (CSymbol ("Prelude","!!")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 28))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 30))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 30))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 30))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 30))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CIntc 31))) (CSymbol ("Prelude","[]"))))))))))))))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (0,"mo"))) (CLit (CIntc 1))))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"yr"))) (CLit (CIntc 4)))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","||")) (CApply (CApply (CSymbol ("Prelude","/=")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"yr"))) (CLit (CIntc 100)))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CApply (CSymbol ("Prelude","mod")) (CVar (1,"yr"))) (CLit (CIntc 400)))) (CLit (CIntc 0)))))) (CLit (CIntc 29))) (CLit (CIntc 28))))] []]),
+  CFunc ("Time","getClockTime") 0 Public (CTCons ("Prelude","IO") [CTCons ("Time","ClockTime") []]) (CExternal "getClockTime"),
+  CFunc ("Time","getLocalTime") 0 Public (CTCons ("Prelude","IO") [CTCons ("Time","CalendarTime") []]) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (0,"ctime")) (CSymbol ("Time","getClockTime")),CSExpr (CApply (CSymbol ("Time","toCalendarTime")) (CVar (0,"ctime")))])] []]),
+  CFunc ("Time","prim_toCalendarTime") 1 Private (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Prelude","IO") [CTCons ("Time","CalendarTime") []])) (CExternal "prim_toCalendarTime"),
+  CFunc ("Time","prim_toClockTime") 1 Private (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Time","ClockTime") [])) (CExternal "prim_toClockTime"),
+  CFunc ("Time","prim_toUTCTime") 1 Private (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","CalendarTime") [])) (CExternal "prim_toUTCTime"),
+  CFunc ("Time","toCalendarTime") 1 Public (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Prelude","IO") [CTCons ("Time","CalendarTime") []])) (CRules CFlex [CRule [CPVar (0,"ctime")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Time","prim_toCalendarTime"))) (CVar (0,"ctime")))] []]),
+  CFunc ("Time","toClockTime") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Time","ClockTime") [])) (CRules CFlex [CRule [CPVar (0,"d")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Time","prim_toClockTime"))) (CVar (0,"d")))] []]),
+  CFunc ("Time","toDayString") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"y"),CPVar (1,"mo"),CPVar (2,"d"),CPVar (3,"_"),CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude","!!")) (CVar (7,"longMonths"))) (CApply (CApply (CSymbol ("Prelude","-")) (CVar (1,"mo"))) (CLit (CIntc 1))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"d")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","show")) (CVar (0,"y")))))))] [CLocalPat (CPVar (7,"longMonths")) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'F'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]"))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CSymbol ("Prelude","[]")))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]")))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'J'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]"))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CSymbol ("Prelude","[]"))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'v'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'D'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))) (CSymbol ("Prelude","[]")))))))))))))) []]]),
+  CFunc ("Time","toTimeString") 1 Public (CFuncType (CTCons ("Time","CalendarTime") []) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPComb ("Time","CalendarTime") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"h"),CPVar (4,"mi"),CPVar (5,"s"),CPVar (6,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Time","digit2")) (CVar (3,"h")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Time","digit2")) (CVar (4,"mi")))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CSymbol ("Prelude","[]")))) (CApply (CSymbol ("Time","digit2")) (CVar (5,"s")))))))] [CLocalFunc (CFunc ("Time","digit2") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (7,"n")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (7,"n"))) (CLit (CIntc 10)))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '0'))) (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CSymbol ("Prelude","chr")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CSymbol ("Prelude","ord")) (CLit (CCharc '0')))) (CVar (7,"n"))))) (CSymbol ("Prelude","[]"))))) (CApply (CSymbol ("Prelude","show")) (CVar (7,"n"))))] []]))]]),
+  CFunc ("Time","toUTCTime") 1 Public (CFuncType (CTCons ("Time","ClockTime") []) (CTCons ("Time","CalendarTime") [])) (CRules CFlex [CRule [CPVar (0,"ctime")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Time","prim_toUTCTime"))) (CVar (0,"ctime")))] []]),
+  CFunc ("Time","validDate") 3 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"y"),CPVar (1,"m"),CPVar (2,"d")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (1,"m"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","<")) (CVar (1,"m"))) (CLit (CIntc 13)))) (CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude",">")) (CVar (2,"d"))) (CLit (CIntc 0)))) (CApply (CApply (CSymbol ("Prelude","<=")) (CVar (2,"d"))) (CApply (CApply (CSymbol ("Time","daysOfMonth")) (CVar (1,"m"))) (CVar (0,"y")))))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Traversal.acy b/src/lib/Curry/Module/.curry/Traversal.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Traversal.acy
@@ -0,0 +1,27 @@
+CurryProg "Traversal"
+ ["Prelude"]
+ [CTypeSyn ("Traversal","Traversable") Public [(0,"a"),(1,"b")] (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])),
+  CTypeSyn ("Traversal","FunList") Private [(0,"a")] (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))]
+ [CFunc ("Traversal","childFamilies") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (1,"b"))])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Traversal","childFamiliesFL")) (CVar (0,"tra"))) (CVar (1,"trb"))) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Traversal","childFamiliesFL") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (1,"b"))])) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb"),CPVar (2,"x"),CPVar (3,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Traversal","concatFL")) (CApply (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("Traversal","familyFL")) (CVar (1,"trb")))) (CApply (CApply (CSymbol ("Traversal","children")) (CVar (0,"tra"))) (CVar (2,"x"))))) (CVar (3,"xs")))] []]),
+  CFunc ("Traversal","children") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"tr")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","fst"))) (CVar (0,"tr")))] []]),
+  CFunc ("Traversal","concatFL") 2 Private (CFuncType (CTCons ("Prelude","[]") [CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CVar (1,"x")) (CApply (CApply (CSymbol ("Traversal","concatFL")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []]),
+  CFunc ("Traversal","evalChildFamilies") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (1,"b"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Traversal","mapChildren")) (CVar (0,"tra")))) (CApply (CSymbol ("Traversal","evalFamily")) (CVar (1,"trb"))))] []]),
+  CFunc ("Traversal","evalChildFamiliesIO") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (1,"b"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTVar (1,"b")]])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Traversal","mapChildrenIO")) (CVar (0,"tra")))) (CApply (CSymbol ("Traversal","evalFamilyIO")) (CVar (1,"trb"))))] []]),
+  CFunc ("Traversal","evalFamily") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (0,"a")])) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Traversal","mapFamily")) (CVar (0,"tr"))) (CSymbol ("Traversal","g")))] [CLocalFunc (CFunc ("Traversal","g") 1 Private (CFuncType (CTVar (1,"_100")) (CTVar (1,"_100"))) (CRules CFlex [CRule [CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Traversal","mapFamily")) (CVar (0,"tr"))) (CSymbol ("Traversal","g")))) (CApply (CVar (1,"f")) (CVar (2,"x"))))] []]))]]),
+  CFunc ("Traversal","evalFamilyIO") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTVar (0,"a")]])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Traversal","mapFamilyIO")) (CVar (0,"tr"))) (CSymbol ("Traversal","g")))] [CLocalFunc (CFunc ("Traversal","g") 1 Private (CFuncType (CTVar (1,"_202")) (CTCons ("Prelude","IO") [CTVar (1,"_202")])) (CRules CFlex [CRule [CPVar (2,"a")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CVar (1,"f")) (CVar (2,"a")))) (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CSymbol ("Prelude","return")) (CVar (2,"a")))) (CApply (CApply (CSymbol ("Traversal","mapFamilyIO")) (CVar (0,"tr"))) (CSymbol ("Traversal","g")))))] []]))]]),
+  CFunc ("Traversal","family") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Traversal","familyFL")) (CVar (0,"tr"))) (CVar (1,"x"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Traversal","familyFL") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))])) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"x"),CPVar (2,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CApply (CApply (CSymbol ("Traversal","childFamiliesFL")) (CVar (0,"tr"))) (CVar (0,"tr"))) (CVar (1,"x"))) (CVar (2,"xs"))))] []]),
+  CFunc ("Traversal","fold") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Traversal","foldChildren")) (CVar (0,"tr"))) (CVar (0,"tr"))) (CVar (1,"f"))) (CVar (1,"f")))] []]),
+  CFunc ("Traversal","foldChildren") 5 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (1,"b"))])) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (2,"c")]) (CTVar (3,"d")))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","[]") [CTVar (2,"c")]) (CTVar (2,"c")))) (CFuncType (CTVar (0,"a")) (CTVar (3,"d"))))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb"),CPVar (2,"f"),CPVar (3,"g"),CPVar (4,"a")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (2,"f")) (CVar (4,"a"))) (CApply (CApply (CSymbol ("Prelude","map")) (CApply (CApply (CSymbol ("Traversal","fold")) (CVar (1,"trb"))) (CVar (3,"g")))) (CApply (CApply (CSymbol ("Traversal","children")) (CVar (0,"tra"))) (CVar (4,"a")))))] []]),
+  CFunc ("Traversal","liftIO") 2 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"ioa")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CVar (1,"ioa"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CVar (0,"f"))))] []]),
+  CFunc ("Traversal","mapChildFamilies") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (1,"b"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Traversal","mapChildren")) (CVar (0,"tra")))) (CApply (CSymbol ("Traversal","mapFamily")) (CVar (1,"trb"))))] []]),
+  CFunc ("Traversal","mapChildFamiliesIO") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (1,"b"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Traversal","mapChildrenIO")) (CVar (0,"tra")))) (CApply (CSymbol ("Traversal","mapFamilyIO")) (CVar (1,"trb"))))] []]),
+  CFunc ("Traversal","mapChildren") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Traversal","replaceChildren")) (CVar (0,"tr"))) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","map")) (CVar (1,"f"))) (CApply (CApply (CSymbol ("Traversal","children")) (CVar (0,"tr"))) (CVar (2,"x")))))] []]),
+  CFunc ("Traversal","mapChildrenIO") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f"),CPVar (2,"a")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Traversal","replaceChildrenIO")) (CVar (0,"tr"))) (CVar (2,"a"))) (CApply (CApply (CSymbol ("Prelude","mapIO")) (CVar (1,"f"))) (CApply (CApply (CSymbol ("Traversal","children")) (CVar (0,"tr"))) (CVar (2,"a")))))] []]),
+  CFunc ("Traversal","mapFamily") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CVar (1,"f"))) (CApply (CApply (CApply (CSymbol ("Traversal","mapChildFamilies")) (CVar (0,"tr"))) (CVar (0,"tr"))) (CVar (1,"f"))))] []]),
+  CFunc ("Traversal","mapFamilyIO") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (0,"a")],CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))])) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f"),CPVar (2,"a")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CApply (CSymbol ("Traversal","mapChildFamiliesIO")) (CVar (0,"tr"))) (CVar (0,"tr"))) (CVar (1,"f"))) (CVar (2,"a")))) (CVar (1,"f")))] []]),
+  CFunc ("Traversal","noChildren") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CApply (CSymbol ("Prelude","const")) (CVar (0,"x"))))] []]),
+  CFunc ("Traversal","replaceChildren") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"tr")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","snd"))) (CVar (0,"tr")))] []]),
+  CFunc ("Traversal","replaceChildrenIO") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (1,"b")]]) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Traversal","liftIO"))) (CApply (CSymbol ("Traversal","replaceChildren")) (CVar (0,"tr"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Traversal.cy b/src/lib/Curry/Module/.curry/Traversal.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Traversal.cy
@@ -0,0 +1,50 @@
+Module "Traversal"
+(Just (Exporting (11,18) [(Export (QualIdent Nothing (Ident "Traversable" 0))),(Export (QualIdent Nothing (Ident "noChildren" 0))),(Export (QualIdent Nothing (Ident "children" 0))),(Export (QualIdent Nothing (Ident "replaceChildren" 0))),(Export (QualIdent Nothing (Ident "mapChildren" 0))),(Export (QualIdent Nothing (Ident "family" 0))),(Export (QualIdent Nothing (Ident "childFamilies" 0))),(Export (QualIdent Nothing (Ident "mapFamily" 0))),(Export (QualIdent Nothing (Ident "mapChildFamilies" 0))),(Export (QualIdent Nothing (Ident "evalFamily" 0))),(Export (QualIdent Nothing (Ident "evalChildFamilies" 0))),(Export (QualIdent Nothing (Ident "fold" 0))),(Export (QualIdent Nothing (Ident "foldChildren" 0))),(Export (QualIdent Nothing (Ident "replaceChildrenIO" 0))),(Export (QualIdent Nothing (Ident "mapChildrenIO" 0))),(Export (QualIdent Nothing (Ident "mapFamilyIO" 0))),(Export (QualIdent Nothing (Ident "mapChildFamiliesIO" 0))),(Export (QualIdent Nothing (Ident "evalFamilyIO" 0))),(Export (QualIdent Nothing (Ident "evalChildFamiliesIO" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(TypeDecl (31,1) (Ident "Traversable" 0) [(Ident "a" 0),(Ident "b" 0)] (ArrowType (VariableType (Ident "a" 0)) (TupleType [(ListType (VariableType (Ident "b" 0))),(ArrowType (ListType (VariableType (Ident "b" 0))) (VariableType (Ident "a" 0)))])))
+,(TypeDecl (141,1) (Ident "FunList" 0) [(Ident "a" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (ListType (VariableType (Ident "a" 0)))))
+,(TypeSig (35,1) [(Ident "noChildren" 0)] (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "_" 0)),(VariableType (Ident "_" 0))]))
+,(FunctionDecl (36,1) (Ident "noChildren" 0) [(Equation (36,1) (FunLhs (Ident "noChildren" 0) [(VariablePattern (Ident "x" 2))]) (SimpleRhs (36,16) (Tuple [(List []),(Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Variable (QualIdent Nothing (Ident "x" 2))))]) []))])
+,(TypeSig (40,1) [(Ident "children" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ListType (VariableType (Ident "b" 0))))))
+,(FunctionDecl (41,1) (Ident "children" 0) [(Equation (41,1) (FunLhs (Ident "children" 0) [(VariablePattern (Ident "tr" 4))]) (SimpleRhs (41,15) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "fst" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent Nothing (Ident "tr" 4)))) []))])
+,(TypeSig (45,1) [(Ident "replaceChildren" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "b" 0))) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (46,1) (Ident "replaceChildren" 0) [(Equation (46,1) (FunLhs (Ident "replaceChildren" 0) [(VariablePattern (Ident "tr" 6))]) (SimpleRhs (46,22) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "snd" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent Nothing (Ident "tr" 6)))) []))])
+,(TypeSig (50,1) [(Ident "mapChildren" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (51,1) (Ident "mapChildren" 0) [(Equation (51,1) (FunLhs (Ident "mapChildren" 0) [(VariablePattern (Ident "tr" 8)),(VariablePattern (Ident "f" 8)),(VariablePattern (Ident "x" 8))]) (SimpleRhs (51,22) (Apply (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "replaceChildren" 0))) (Variable (QualIdent Nothing (Ident "tr" 8)))) (Variable (QualIdent Nothing (Ident "x" 8)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Variable (QualIdent Nothing (Ident "f" 8)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "children" 0))) (Variable (QualIdent Nothing (Ident "tr" 8)))) (Variable (QualIdent Nothing (Ident "x" 8)))))))) []))])
+,(TypeSig (55,1) [(Ident "family" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ListType (VariableType (Ident "a" 0))))))
+,(FunctionDecl (56,1) (Ident "family" 0) [(Equation (56,1) (FunLhs (Ident "family" 0) [(VariablePattern (Ident "tr" 10)),(VariablePattern (Ident "x" 10))]) (SimpleRhs (56,15) (Apply (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "familyFL" 0))) (Variable (QualIdent Nothing (Ident "tr" 10)))) (Variable (QualIdent Nothing (Ident "x" 10)))) (List [])) []))])
+,(TypeSig (61,1) [(Ident "childFamilies" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ListType (VariableType (Ident "b" 0)))))))
+,(FunctionDecl (62,1) (Ident "childFamilies" 0) [(Equation (62,1) (FunLhs (Ident "childFamilies" 0) [(VariablePattern (Ident "tra" 12)),(VariablePattern (Ident "trb" 12)),(VariablePattern (Ident "x" 12))]) (SimpleRhs (62,27) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "childFamiliesFL" 0))) (Variable (QualIdent Nothing (Ident "tra" 12)))) (Variable (QualIdent Nothing (Ident "trb" 12)))) (Variable (QualIdent Nothing (Ident "x" 12)))) (List [])) []))])
+,(TypeSig (67,1) [(Ident "mapFamily" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))]) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (68,1) (Ident "mapFamily" 0) [(Equation (68,1) (FunLhs (Ident "mapFamily" 0) [(VariablePattern (Ident "tr" 14)),(VariablePattern (Ident "f" 14))]) (SimpleRhs (68,18) (InfixApply (Variable (QualIdent Nothing (Ident "f" 14))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapChildFamilies" 0))) (Variable (QualIdent Nothing (Ident "tr" 14)))) (Variable (QualIdent Nothing (Ident "tr" 14)))) (Variable (QualIdent Nothing (Ident "f" 14))))) []))])
+,(TypeSig (74,1) [(Ident "mapChildFamilies" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))))
+,(FunctionDecl (75,1) (Ident "mapChildFamilies" 0) [(Equation (75,1) (FunLhs (Ident "mapChildFamilies" 0) [(VariablePattern (Ident "tra" 16)),(VariablePattern (Ident "trb" 16))]) (SimpleRhs (75,28) (InfixApply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapChildren" 0))) (Variable (QualIdent Nothing (Ident "tra" 16)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapFamily" 0))) (Variable (QualIdent Nothing (Ident "trb" 16))))) []))])
+,(TypeSig (82,1) [(Ident "evalFamily" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))]) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))])) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))))
+,(FunctionDecl (83,1) (Ident "evalFamily" 0) [(Equation (83,1) (FunLhs (Ident "evalFamily" 0) [(VariablePattern (Ident "tr" 18)),(VariablePattern (Ident "f" 18))]) (SimpleRhs (83,19) (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapFamily" 0))) (Variable (QualIdent Nothing (Ident "tr" 18)))) (Variable (QualIdent Nothing (Ident "g" 19)))) [(FunctionDecl (84,8) (Ident "g" 19) [(Equation (84,8) (FunLhs (Ident "g" 19) [(VariablePattern (Ident "x" 20))]) (SimpleRhs (84,14) (Apply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Variable (QualIdent Nothing (Ident "x" 20)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapFamily" 0))) (Variable (QualIdent Nothing (Ident "tr" 18)))) (Variable (QualIdent Nothing (Ident "g" 19)))))) (Paren (Apply (Variable (QualIdent Nothing (Ident "f" 18))) (Variable (QualIdent Nothing (Ident "x" 20)))))) []))])]))])
+,(TypeSig (90,1) [(Ident "evalChildFamilies" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "b" 0))])) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))))
+,(FunctionDecl (92,1) (Ident "evalChildFamilies" 0) [(Equation (92,1) (FunLhs (Ident "evalChildFamilies" 0) [(VariablePattern (Ident "tra" 22)),(VariablePattern (Ident "trb" 22))]) (SimpleRhs (92,29) (InfixApply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapChildren" 0))) (Variable (QualIdent Nothing (Ident "tra" 22)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Traversal") (Ident "evalFamily" 0))) (Variable (QualIdent Nothing (Ident "trb" 22))))) []))])
+,(TypeSig (96,1) [(Ident "fold" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))]) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "r" 0))) (VariableType (Ident "r" 0)))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "r" 0))))))
+,(FunctionDecl (97,1) (Ident "fold" 0) [(Equation (97,1) (FunLhs (Ident "fold" 0) [(VariablePattern (Ident "tr" 24)),(VariablePattern (Ident "f" 24))]) (SimpleRhs (97,13) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "foldChildren" 0))) (Variable (QualIdent Nothing (Ident "tr" 24)))) (Variable (QualIdent Nothing (Ident "tr" 24)))) (Variable (QualIdent Nothing (Ident "f" 24)))) (Variable (QualIdent Nothing (Ident "f" 24)))) []))])
+,(TypeSig (101,1) [(Ident "foldChildren" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ListType (VariableType (Ident "rb" 0))) (VariableType (Ident "ra" 0)))) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ArrowType (ListType (VariableType (Ident "rb" 0))) (VariableType (Ident "rb" 0)))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "ra" 0))))))))
+,(FunctionDecl (103,1) (Ident "foldChildren" 0) [(Equation (103,1) (FunLhs (Ident "foldChildren" 0) [(VariablePattern (Ident "tra" 26)),(VariablePattern (Ident "trb" 26)),(VariablePattern (Ident "f" 26)),(VariablePattern (Ident "g" 26)),(VariablePattern (Ident "a" 26))]) (SimpleRhs (103,30) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 26))) (Variable (QualIdent Nothing (Ident "a" 26)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "fold" 0))) (Variable (QualIdent Nothing (Ident "trb" 26)))) (Variable (QualIdent Nothing (Ident "g" 26)))))) (Paren (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "children" 0))) (Variable (QualIdent Nothing (Ident "tra" 26)))) (Variable (QualIdent Nothing (Ident "a" 26)))))))) []))])
+,(TypeSig (107,1) [(Ident "replaceChildrenIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (VariableType (Ident "b" 0)))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (108,1) (Ident "replaceChildrenIO" 0) [(Equation (108,1) (FunLhs (Ident "replaceChildrenIO" 0) [(VariablePattern (Ident "tr" 28))]) (SimpleRhs (108,24) (InfixApply (Variable (QualIdent (Just "Traversal") (Ident "liftIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Traversal") (Ident "replaceChildren" 0))) (Variable (QualIdent Nothing (Ident "tr" 28))))) []))])
+,(TypeSig (112,1) [(Ident "mapChildrenIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (113,1) (Ident "mapChildrenIO" 0) [(Equation (113,1) (FunLhs (Ident "mapChildrenIO" 0) [(VariablePattern (Ident "tr" 30)),(VariablePattern (Ident "f" 30)),(VariablePattern (Ident "a" 30))]) (SimpleRhs (113,24) (Apply (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "replaceChildrenIO" 0))) (Variable (QualIdent Nothing (Ident "tr" 30)))) (Variable (QualIdent Nothing (Ident "a" 30)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "mapIO" 0))) (Variable (QualIdent Nothing (Ident "f" 30)))) (Paren (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "children" 0))) (Variable (QualIdent Nothing (Ident "tr" 30)))) (Variable (QualIdent Nothing (Ident "a" 30)))))))) []))])
+,(TypeSig (117,1) [(Ident "mapFamilyIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))]) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (118,1) (Ident "mapFamilyIO" 0) [(Equation (118,1) (FunLhs (Ident "mapFamilyIO" 0) [(VariablePattern (Ident "tr" 32)),(VariablePattern (Ident "f" 32)),(VariablePattern (Ident "a" 32))]) (SimpleRhs (118,22) (InfixApply (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapChildFamiliesIO" 0))) (Variable (QualIdent Nothing (Ident "tr" 32)))) (Variable (QualIdent Nothing (Ident "tr" 32)))) (Variable (QualIdent Nothing (Ident "f" 32)))) (Variable (QualIdent Nothing (Ident "a" 32)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Variable (QualIdent Nothing (Ident "f" 32)))) []))])
+,(TypeSig (122,1) [(Ident "mapChildFamiliesIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))))))
+,(FunctionDecl (124,1) (Ident "mapChildFamiliesIO" 0) [(Equation (124,1) (FunLhs (Ident "mapChildFamiliesIO" 0) [(VariablePattern (Ident "tra" 34)),(VariablePattern (Ident "trb" 34))]) (SimpleRhs (124,30) (InfixApply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapChildrenIO" 0))) (Variable (QualIdent Nothing (Ident "tra" 34)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapFamilyIO" 0))) (Variable (QualIdent Nothing (Ident "trb" 34))))) []))])
+,(TypeSig (128,1) [(Ident "evalFamilyIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))]) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "a" 0))])])) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))))
+,(FunctionDecl (129,1) (Ident "evalFamilyIO" 0) [(Equation (129,1) (FunLhs (Ident "evalFamilyIO" 0) [(VariablePattern (Ident "tr" 36)),(VariablePattern (Ident "f" 36))]) (SimpleRhs (129,21) (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapFamilyIO" 0))) (Variable (QualIdent Nothing (Ident "tr" 36)))) (Variable (QualIdent Nothing (Ident "g" 37)))) [(FunctionDecl (130,8) (Ident "g" 37) [(Equation (130,8) (FunLhs (Ident "g" 37) [(VariablePattern (Ident "a" 38))]) (SimpleRhs (130,14) (InfixApply (Apply (Variable (QualIdent Nothing (Ident "f" 36))) (Variable (QualIdent Nothing (Ident "a" 38)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "maybe" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "a" 38)))))) (Paren (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapFamilyIO" 0))) (Variable (QualIdent Nothing (Ident "tr" 36)))) (Variable (QualIdent Nothing (Ident "g" 37))))))) []))])]))])
+,(TypeSig (134,1) [(Ident "evalChildFamiliesIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ArrowType (VariableType (Ident "b" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Maybe" 0)) [(VariableType (Ident "b" 0))])])) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))))))
+,(FunctionDecl (136,1) (Ident "evalChildFamiliesIO" 0) [(Equation (136,1) (FunLhs (Ident "evalChildFamiliesIO" 0) [(VariablePattern (Ident "tra" 40)),(VariablePattern (Ident "trb" 40))]) (SimpleRhs (136,31) (InfixApply (Apply (Variable (QualIdent (Just "Traversal") (Ident "mapChildrenIO" 0))) (Variable (QualIdent Nothing (Ident "tra" 40)))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Variable (QualIdent (Just "Traversal") (Ident "evalFamilyIO" 0))) (Variable (QualIdent Nothing (Ident "trb" 40))))) []))])
+,(TypeSig (143,1) [(Ident "concatFL" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "FunList" 0)) [(VariableType (Ident "a" 0))])) (ConstructorType (QualIdent Nothing (Ident "FunList" 0)) [(VariableType (Ident "a" 0))])))
+,(FunctionDecl (144,1) (Ident "concatFL" 0) [(Equation (144,1) (FunLhs (Ident "concatFL" 0) [(ListPattern []),(VariablePattern (Ident "ys" 42))]) (SimpleRhs (144,18) (Variable (QualIdent Nothing (Ident "ys" 42))) [])),(Equation (145,1) (FunLhs (Ident "concatFL" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "x" 44)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "xs" 44)))),(VariablePattern (Ident "ys" 44))]) (SimpleRhs (145,22) (Apply (Variable (QualIdent Nothing (Ident "x" 44))) (Paren (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "concatFL" 0))) (Variable (QualIdent Nothing (Ident "xs" 44)))) (Variable (QualIdent Nothing (Ident "ys" 44)))))) []))])
+,(TypeSig (147,1) [(Ident "familyFL" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "a" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "FunList" 0)) [(VariableType (Ident "a" 0))]))))
+,(FunctionDecl (148,1) (Ident "familyFL" 0) [(Equation (148,1) (FunLhs (Ident "familyFL" 0) [(VariablePattern (Ident "tr" 46)),(VariablePattern (Ident "x" 46)),(VariablePattern (Ident "xs" 46))]) (SimpleRhs (148,20) (InfixApply (Variable (QualIdent Nothing (Ident "x" 46))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "childFamiliesFL" 0))) (Variable (QualIdent Nothing (Ident "tr" 46)))) (Variable (QualIdent Nothing (Ident "tr" 46)))) (Variable (QualIdent Nothing (Ident "x" 46)))) (Variable (QualIdent Nothing (Ident "xs" 46))))) []))])
+,(TypeSig (150,1) [(Ident "childFamiliesFL" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "a" 0)),(VariableType (Ident "b" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Traversable" 0)) [(VariableType (Ident "b" 0)),(VariableType (Ident "b" 0))]) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "FunList" 0)) [(VariableType (Ident "b" 0))])))))
+,(FunctionDecl (151,1) (Ident "childFamiliesFL" 0) [(Equation (151,1) (FunLhs (Ident "childFamiliesFL" 0) [(VariablePattern (Ident "tra" 48)),(VariablePattern (Ident "trb" 48)),(VariablePattern (Ident "x" 48)),(VariablePattern (Ident "xs" 48))]) (SimpleRhs (151,32) (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "concatFL" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "map" 0))) (Paren (Apply (Variable (QualIdent (Just "Traversal") (Ident "familyFL" 0))) (Variable (QualIdent Nothing (Ident "trb" 48)))))) (Paren (Apply (Apply (Variable (QualIdent (Just "Traversal") (Ident "children" 0))) (Variable (QualIdent Nothing (Ident "tra" 48)))) (Variable (QualIdent Nothing (Ident "x" 48)))))))) (Variable (QualIdent Nothing (Ident "xs" 48)))) []))])
+,(TypeSig (153,1) [(Ident "liftIO" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))
+,(FunctionDecl (154,1) (Ident "liftIO" 0) [(Equation (154,1) (FunLhs (Ident "liftIO" 0) [(VariablePattern (Ident "f" 50)),(VariablePattern (Ident "ioa" 50))]) (SimpleRhs (154,16) (InfixApply (Variable (QualIdent Nothing (Ident "ioa" 50))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent Nothing (Ident "f" 50))))) []))])
+]
diff --git a/src/lib/Curry/Module/.curry/Traversal.efc b/src/lib/Curry/Module/.curry/Traversal.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Traversal.efc
@@ -0,0 +1,1 @@
+Prog "Traversal" ["Prelude"] [TypeSyn ((Nothing,Nothing,"Traversal","Traversable")) Public [0,1] (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])),TypeSyn ((Nothing,Nothing,"Traversal","FunList")) Private [0] (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))] [Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),"Traversal","noChildren")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (Rule [(Just (TVar 0),1)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 4) (FuncType (FuncType (TVar 6) (TVar 0)) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TVar 4),"Prelude","[]")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 6) (TVar 0))),"Prelude","const")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Traversal","children")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])),"Prelude","fst")) [],Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)))),"Traversal","replaceChildren")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0))) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0))))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0))),"Prelude","snd")) [],Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0)))),"Traversal","mapChildren")) 3 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0)))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TVar 1)),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)))),"Traversal","replaceChildren")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Var ((Just (TVar 0),3))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","map")) [Var ((Just (FuncType (TVar 1) (TVar 1)),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Traversal","children")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Var ((Just (TVar 0),3))]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Traversal","family")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Traversal","familyFL")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Var ((Just (TVar 0),2)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Traversal","childFamilies")) 3 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Traversal","childFamiliesFL")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1)),Var ((Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2)),Var ((Just (TVar 0),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))),"Traversal","mapFamily")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1),(Just (FuncType (TVar 0) (TVar 0)),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))),"Prelude",".")) [Var ((Just (FuncType (TVar 0) (TVar 0)),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0))))),"Traversal","mapChildFamilies")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1))],Var ((Just (FuncType (TVar 0) (TVar 0)),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0))))),"Traversal","mapChildFamilies")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0))))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0))))),"Prelude",".")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0)))),"Traversal","mapChildren")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 1) (TVar 1)))),"Traversal","mapFamily")) [Var ((Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])) (FuncType (TVar 0) (TVar 0)))),"Traversal","evalFamily")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0])) (FuncType (TVar 0) (TVar 0)))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1),(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))),"Traversal","mapFamily")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (TVar 0)))),"Traversal","evalFamily.g.19")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])),2)),Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 100])) (FuncType (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 100],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 100]) (TVar 100)])) (FuncType (TVar 100) (TVar 100)))),"Traversal","evalFamily.g.19")) 3 Private (FuncType (FuncType (TVar 100) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 100])) (FuncType (FuncType (TVar 100) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 100],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 100]) (TVar 100)])) (FuncType (TVar 100) (TVar 100)))) (Rule [(Just (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 100])),1),(Just (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 100],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 100]) (TVar 100)])),2),(Just (TVar 100),3)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 100) (FuncType (FuncType (TVar 100) (TVar 100)) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 100]) (TVar 100)))),"Prelude","maybe")) [Var ((Just (TVar 100),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 100],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 100]) (TVar 100)])) (FuncType (FuncType (TVar 100) (TVar 100)) (FuncType (TVar 100) (TVar 100)))),"Traversal","mapFamily")) [Var ((Just (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 100],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 100]) (TVar 100)])),2)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 100])) (FuncType (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 100],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 100]) (TVar 100)])) (FuncType (TVar 100) (TVar 100)))),"Traversal","evalFamily.g.19")) [Var ((Just (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 100])),1)),Var ((Just (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 100],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 100]) (TVar 100)])),2))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 100])) (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 100]))),"Prelude","apply")) [Var ((Just (FuncType (TVar 100) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 100])),1)),Var ((Just (TVar 100),3))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TVar 0) (TVar 0))))),"Traversal","evalChildFamilies")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1])) (FuncType (TVar 0) (TVar 0))))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0))) (FuncType (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TVar 1) (TVar 1))) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TVar 0) (TVar 0))))),"Prelude",".")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0)))),"Traversal","mapChildren")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TVar 1) (TVar 1)))),"Traversal","evalFamily")) [Var ((Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1))) (FuncType (TVar 0) (TVar 1)))),"Traversal","fold")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 1))) (FuncType (TVar 0) (TVar 1)))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1),(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1))),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1))) (FuncType (TVar 0) (TVar 1)))))),"Traversal","foldChildren")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1))),2)),Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1))),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 3))) (FuncType (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 2))) (FuncType (TVar 0) (TVar 3)))))),"Traversal","foldChildren")) 5 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]) (TVar 3))) (FuncType (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 2]) (TVar 2))) (FuncType (TVar 0) (TVar 3)))))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2),(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 3))),3),(Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 2))),4),(Just (TVar 0),5)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 3)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 3))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 3))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 3)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 3))),3)),Var ((Just (TVar 0),5))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TVar 2)) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]))),"Prelude","map")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 2))) (FuncType (TVar 1) (TVar 2)))),"Traversal","fold")) [Var ((Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2)),Var ((Just (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 2]) (TVar 2))),4))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Traversal","children")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Var ((Just (TVar 0),5))]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","replaceChildrenIO")) 1 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"Prelude",".")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Traversal","liftIO")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)))),"Traversal","replaceChildren")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","mapChildrenIO")) 3 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","replaceChildrenIO")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Var ((Just (TVar 0),3))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]]))),"Prelude","mapIO")) [Var ((Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Traversal","children")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Var ((Just (TVar 0),3))]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","mapFamilyIO")) 3 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1),(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"Traversal","mapChildFamiliesIO")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1))],Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),2))],Var ((Just (TVar 0),3))],Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),2))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"Traversal","mapChildFamiliesIO")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"Prelude",".")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","mapChildrenIO")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))),"Traversal","mapFamilyIO")) [Var ((Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","evalFamilyIO")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 0]])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1),(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]])),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","mapFamilyIO")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","evalFamilyIO.g.37")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]])),2)),Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]])) (FuncType (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 202],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 202]) (TVar 202)])) (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202])))),"Traversal","evalFamilyIO.g.37")) 3 Private (FuncType (FuncType (TVar 202) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 202]])) (FuncType (FuncType (TVar 202) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 202],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 202]) (TVar 202)])) (FuncType (TVar 202) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 202])))) (Rule [(Just (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]])),1),(Just (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 202],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 202]) (TVar 202)])),2),(Just (TVar 202),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]])) (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]]))),"Prelude","apply")) [Var ((Just (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]])),1)),Var ((Just (TVar 202),3))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202]) (FuncType (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202])))),"Prelude","maybe")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202])),"Prelude","return")) [Var ((Just (TVar 202),3))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 202],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 202]) (TVar 202)])) (FuncType (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202])) (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202])))),"Traversal","mapFamilyIO")) [Var ((Just (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 202],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 202]) (TVar 202)])),2)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]])) (FuncType (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 202],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 202]) (TVar 202)])) (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 202])))),"Traversal","evalFamilyIO.g.37")) [Var ((Just (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 202]])),1)),Var ((Just (FuncType (TVar 202) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 202],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 202]) (TVar 202)])),2))]]]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"Traversal","evalChildFamiliesIO")) 2 Public (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1]])) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]])) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"Prelude",".")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Traversal","mapChildrenIO")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]])) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))),"Traversal","evalFamilyIO")) [Var ((Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Traversal","concatFL")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))),Branch (Pattern ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]))),"Prelude",":")) [(Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Traversal","concatFL")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])))),"Traversal","familyFL")) 3 Private (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)] (Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))))),"Traversal","childFamiliesFL")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 0],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)])),1)),Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))))),"Traversal","childFamiliesFL")) 4 Private (FuncType (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1],FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 1]))))) (Rule [(Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1),(Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2),(Just (TVar 0),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),4)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Traversal","concatFL")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])]))),"Prelude","map")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])))),"Traversal","familyFL")) [Var ((Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 1)])),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]))),"Traversal","children")) [Var ((Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 1],FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]) (TVar 0)])),1))],Var ((Just (TVar 0),3))]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 1]),4))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Traversal","liftIO")) 2 Private (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1),(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])) (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])),"Prelude","return")) [],Var ((Just (FuncType (TVar 0) (TVar 1)),1))]]))] []
diff --git a/src/lib/Curry/Module/.curry/Traversal.fcy b/src/lib/Curry/Module/.curry/Traversal.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Traversal.fcy
@@ -0,0 +1,1 @@
+Prog "Traversal" ["Prelude"] [TypeSyn ("Traversal","Traversable") Public [0,1] (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])),TypeSyn ("Traversal","FunList") Private [0] (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))] [Func ("Traversal","noChildren") 1 Public (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (Rule [1] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb (FuncPartCall 1) ("Prelude","const") [Var 1]])),Func ("Traversal","children") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","fst") [],Var 1])),Func ("Traversal","replaceChildren") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","snd") [],Var 1])),Func ("Traversal","mapChildren") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","replaceChildren") [Var 1],Var 3],Comb FuncCall ("Prelude","map") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","children") [Var 1],Var 3]]])),Func ("Traversal","family") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Traversal","familyFL") [Var 1,Var 2,Comb ConsCall ("Prelude","[]") []])),Func ("Traversal","childFamilies") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1])))) (Rule [1,2,3] (Comb FuncCall ("Traversal","childFamiliesFL") [Var 1,Var 2,Var 3,Comb ConsCall ("Prelude","[]") []])),Func ("Traversal","mapFamily") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","mapChildFamilies") [Var 1,Var 1],Var 2]])),Func ("Traversal","mapChildFamilies") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0))))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","mapChildren") [Var 1],Comb (FuncPartCall 1) ("Traversal","mapFamily") [Var 2]])),Func ("Traversal","evalFamily") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 0])) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2] (Comb FuncCall ("Traversal","mapFamily") [Var 1,Comb (FuncPartCall 1) ("Traversal","evalFamily.g.19") [Var 2,Var 1]])),Func ("Traversal","evalFamily.g.19") 3 Private (FuncType (FuncType (TVar 100) (TCons ("Prelude","Maybe") [TVar 100])) (FuncType (FuncType (TVar 100) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 100],FuncType (TCons ("Prelude","[]") [TVar 100]) (TVar 100)])) (FuncType (TVar 100) (TVar 100)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","maybe") [Var 3,Comb FuncCall ("Traversal","mapFamily") [Var 2,Comb (FuncPartCall 1) ("Traversal","evalFamily.g.19") [Var 1,Var 2]],Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("Traversal","evalChildFamilies") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","Maybe") [TVar 1])) (FuncType (TVar 0) (TVar 0))))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","mapChildren") [Var 1],Comb (FuncPartCall 1) ("Traversal","evalFamily") [Var 2]])),Func ("Traversal","fold") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2] (Comb (FuncPartCall 1) ("Traversal","foldChildren") [Var 1,Var 1,Var 2,Var 2])),Func ("Traversal","foldChildren") 5 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TVar 3))) (FuncType (FuncType (TVar 1) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TVar 2))) (FuncType (TVar 0) (TVar 3)))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Var 5],Comb FuncCall ("Prelude","map") [Comb FuncCall ("Traversal","fold") [Var 2,Var 4],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","children") [Var 1],Var 5]]])),Func ("Traversal","replaceChildrenIO") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 1]]) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","liftIO") [],Comb FuncCall ("Traversal","replaceChildren") [Var 1]])),Func ("Traversal","mapChildrenIO") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","replaceChildrenIO") [Var 1],Var 3],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","mapIO") [Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","children") [Var 1],Var 3]]])),Func ("Traversal","mapFamilyIO") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","mapChildFamiliesIO") [Var 1,Var 1],Var 2],Var 3],Var 2])),Func ("Traversal","mapChildFamiliesIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","mapChildrenIO") [Var 1],Comb (FuncPartCall 2) ("Traversal","mapFamilyIO") [Var 2]])),Func ("Traversal","evalFamilyIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2] (Comb (FuncPartCall 1) ("Traversal","mapFamilyIO") [Var 1,Comb (FuncPartCall 1) ("Traversal","evalFamilyIO.g.37") [Var 2,Var 1]])),Func ("Traversal","evalFamilyIO.g.37") 3 Private (FuncType (FuncType (TVar 202) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 202]])) (FuncType (FuncType (TVar 202) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 202],FuncType (TCons ("Prelude","[]") [TVar 202]) (TVar 202)])) (FuncType (TVar 202) (TCons ("Prelude","IO") [TVar 202])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb (FuncPartCall 1) ("Prelude","maybe") [Comb FuncCall ("Prelude","return") [Var 3],Comb (FuncPartCall 1) ("Traversal","mapFamilyIO") [Var 2,Comb (FuncPartCall 1) ("Traversal","evalFamilyIO.g.37") [Var 1,Var 2]]]])),Func ("Traversal","evalChildFamiliesIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 1]])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","mapChildrenIO") [Var 1],Comb (FuncPartCall 1) ("Traversal","evalFamilyIO") [Var 2]])),Func ("Traversal","concatFL") 2 Private (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Traversal","concatFL") [Var 4,Var 2]])])),Func ("Traversal","familyFL") 3 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Comb ConsCall ("Prelude",":") [Var 2,Comb FuncCall ("Traversal","childFamiliesFL") [Var 1,Var 1,Var 2,Var 3]])),Func ("Traversal","childFamiliesFL") 4 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))))) (Rule [1,2,3,4] (Comb FuncCall ("Traversal","concatFL") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 2) ("Traversal","familyFL") [Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","children") [Var 1],Var 3]],Var 4])),Func ("Traversal","liftIO") 2 Private (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 1]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Var 2,Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 1]]))] []
diff --git a/src/lib/Curry/Module/.curry/Traversal.fint b/src/lib/Curry/Module/.curry/Traversal.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Traversal.fint
@@ -0,0 +1,1 @@
+Prog "Traversal" ["Prelude"] [TypeSyn ("Traversal","Traversable") Public [0,1] (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])),TypeSyn ("Traversal","FunList") Private [0] (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))] [Func ("Traversal","noChildren") 1 Public (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (Rule [] (Var 0)),Func ("Traversal","children") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1]))) (Rule [] (Var 0)),Func ("Traversal","replaceChildren") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)))) (Rule [] (Var 0)),Func ("Traversal","mapChildren") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("Traversal","family") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0]))) (Rule [] (Var 0)),Func ("Traversal","childFamilies") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1])))) (Rule [] (Var 0)),Func ("Traversal","mapFamily") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("Traversal","mapChildFamilies") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0))))) (Rule [] (Var 0)),Func ("Traversal","evalFamily") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 0])) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("Traversal","evalChildFamilies") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","Maybe") [TVar 1])) (FuncType (TVar 0) (TVar 0))))) (Rule [] (Var 0)),Func ("Traversal","fold") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))) (FuncType (TVar 0) (TVar 1)))) (Rule [] (Var 0)),Func ("Traversal","foldChildren") 5 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TVar 3))) (FuncType (FuncType (TVar 1) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TVar 2))) (FuncType (TVar 0) (TVar 3)))))) (Rule [] (Var 0)),Func ("Traversal","replaceChildrenIO") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 1]]) (TCons ("Prelude","IO") [TVar 0])))) (Rule [] (Var 0)),Func ("Traversal","mapChildrenIO") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [] (Var 0)),Func ("Traversal","mapFamilyIO") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [] (Var 0)),Func ("Traversal","mapChildFamiliesIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [] (Var 0)),Func ("Traversal","evalFamilyIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [] (Var 0)),Func ("Traversal","evalChildFamiliesIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 1]])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [] (Var 0))] []
diff --git a/src/lib/Curry/Module/.curry/Traversal.uacy b/src/lib/Curry/Module/.curry/Traversal.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Traversal.uacy
@@ -0,0 +1,27 @@
+CurryProg "Traversal"
+ ["Prelude"]
+ [CTypeSyn ("Traversal","Traversable") Public [(0,"a"),(1,"b")] (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","(,)") [CTCons ("Prelude","[]") [CTVar (1,"b")],CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))])),
+  CTypeSyn ("Traversal","FunList") Private [(0,"a")] (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))]
+ [CFunc ("Traversal","childFamilies") 3 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Traversal","Traversable") [CTVar (1,"b"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Traversal","childFamiliesFL")) (CVar (0,"tra"))) (CVar (1,"trb"))) (CVar (2,"x"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Traversal","childFamiliesFL") 4 Private (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Traversal","Traversable") [CTVar (1,"b"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Traversal","FunList") [CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb"),CPVar (2,"x"),CPVar (3,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Traversal","concatFL")) (CApply (CApply (CSymbol ("Prelude","map")) (CApply (CSymbol ("Traversal","familyFL")) (CVar (1,"trb")))) (CApply (CApply (CSymbol ("Traversal","children")) (CVar (0,"tra"))) (CVar (2,"x"))))) (CVar (3,"xs")))] []]),
+  CFunc ("Traversal","children") 1 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"tr")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","fst"))) (CVar (0,"tr")))] []]),
+  CFunc ("Traversal","concatFL") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Traversal","FunList") [CTVar (0,"a")]]) (CTCons ("Traversal","FunList") [CTVar (0,"a")])) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"ys")] [(CSymbol ("Prelude","success"),CVar (0,"ys"))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"x"),CPVar (2,"xs")],CPVar (3,"ys")] [(CSymbol ("Prelude","success"),CApply (CVar (1,"x")) (CApply (CApply (CSymbol ("Traversal","concatFL")) (CVar (2,"xs"))) (CVar (3,"ys"))))] []]),
+  CFunc ("Traversal","evalChildFamilies") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Traversal","Traversable") [CTVar (1,"b"),CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Traversal","mapChildren")) (CVar (0,"tra")))) (CApply (CSymbol ("Traversal","evalFamily")) (CVar (1,"trb"))))] []]),
+  CFunc ("Traversal","evalChildFamiliesIO") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Traversal","Traversable") [CTVar (1,"b"),CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTVar (1,"b")]])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Traversal","mapChildrenIO")) (CVar (0,"tra")))) (CApply (CSymbol ("Traversal","evalFamilyIO")) (CVar (1,"trb"))))] []]),
+  CFunc ("Traversal","evalFamily") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (0,"a")])) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Traversal","mapFamily")) (CVar (0,"tr"))) (CSymbol ("Traversal","g")))] [CLocalFunc (CFunc ("Traversal","g") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Traversal","mapFamily")) (CVar (0,"tr"))) (CSymbol ("Traversal","g")))) (CApply (CVar (1,"f")) (CVar (2,"x"))))] []]))]]),
+  CFunc ("Traversal","evalFamilyIO") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTCons ("Prelude","Maybe") [CTVar (0,"a")]])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Traversal","mapFamilyIO")) (CVar (0,"tr"))) (CSymbol ("Traversal","g")))] [CLocalFunc (CFunc ("Traversal","g") 1 Private (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (2,"a")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CVar (1,"f")) (CVar (2,"a")))) (CApply (CApply (CSymbol ("Prelude","maybe")) (CApply (CSymbol ("Prelude","return")) (CVar (2,"a")))) (CApply (CApply (CSymbol ("Traversal","mapFamilyIO")) (CVar (0,"tr"))) (CSymbol ("Traversal","g")))))] []]))]]),
+  CFunc ("Traversal","family") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Traversal","familyFL")) (CVar (0,"tr"))) (CVar (1,"x"))) (CSymbol ("Prelude","[]")))] []]),
+  CFunc ("Traversal","familyFL") 3 Private (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (0,"a")]) (CFuncType (CTVar (0,"a")) (CTCons ("Traversal","FunList") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"x"),CPVar (2,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"x"))) (CApply (CApply (CApply (CApply (CSymbol ("Traversal","childFamiliesFL")) (CVar (0,"tr"))) (CVar (0,"tr"))) (CVar (1,"x"))) (CVar (2,"xs"))))] []]),
+  CFunc ("Traversal","fold") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"r")]) (CTVar (1,"r")))) (CFuncType (CTVar (0,"a")) (CTVar (1,"r"))))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("Traversal","foldChildren")) (CVar (0,"tr"))) (CVar (0,"tr"))) (CVar (1,"f"))) (CVar (1,"f")))] []]),
+  CFunc ("Traversal","foldChildren") 5 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Traversal","Traversable") [CTVar (1,"b"),CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (2,"rb")]) (CTVar (3,"ra")))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("Prelude","[]") [CTVar (2,"rb")]) (CTVar (2,"rb")))) (CFuncType (CTVar (0,"a")) (CTVar (3,"ra"))))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb"),CPVar (2,"f"),CPVar (3,"g"),CPVar (4,"a")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (2,"f")) (CVar (4,"a"))) (CApply (CApply (CSymbol ("Prelude","map")) (CApply (CApply (CSymbol ("Traversal","fold")) (CVar (1,"trb"))) (CVar (3,"g")))) (CApply (CApply (CSymbol ("Traversal","children")) (CVar (0,"tra"))) (CVar (4,"a")))))] []]),
+  CFunc ("Traversal","liftIO") 2 Private (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"ioa")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CVar (1,"ioa"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CVar (0,"f"))))] []]),
+  CFunc ("Traversal","mapChildFamilies") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Traversal","Traversable") [CTVar (1,"b"),CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Traversal","mapChildren")) (CVar (0,"tra")))) (CApply (CSymbol ("Traversal","mapFamily")) (CVar (1,"trb"))))] []]),
+  CFunc ("Traversal","mapChildFamiliesIO") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Traversal","Traversable") [CTVar (1,"b"),CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"tra"),CPVar (1,"trb")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("Traversal","mapChildrenIO")) (CVar (0,"tra")))) (CApply (CSymbol ("Traversal","mapFamilyIO")) (CVar (1,"trb"))))] []]),
+  CFunc ("Traversal","mapChildren") 3 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (1,"b"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Traversal","replaceChildren")) (CVar (0,"tr"))) (CVar (2,"x"))) (CApply (CApply (CSymbol ("Prelude","map")) (CVar (1,"f"))) (CApply (CApply (CSymbol ("Traversal","children")) (CVar (0,"tr"))) (CVar (2,"x")))))] []]),
+  CFunc ("Traversal","mapChildrenIO") 3 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","IO") [CTVar (1,"b")])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f"),CPVar (2,"a")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Traversal","replaceChildrenIO")) (CVar (0,"tr"))) (CVar (2,"a"))) (CApply (CApply (CSymbol ("Prelude","mapIO")) (CVar (1,"f"))) (CApply (CApply (CSymbol ("Traversal","children")) (CVar (0,"tr"))) (CVar (2,"a")))))] []]),
+  CFunc ("Traversal","mapFamily") 2 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CVar (1,"f"))) (CApply (CApply (CApply (CSymbol ("Traversal","mapChildFamilies")) (CVar (0,"tr"))) (CVar (0,"tr"))) (CVar (1,"f"))))] []]),
+  CFunc ("Traversal","mapFamilyIO") 3 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (0,"a")]) (CFuncType (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr"),CPVar (1,"f"),CPVar (2,"a")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CApply (CSymbol ("Traversal","mapChildFamiliesIO")) (CVar (0,"tr"))) (CVar (0,"tr"))) (CVar (1,"f"))) (CVar (2,"a")))) (CVar (1,"f")))] []]),
+  CFunc ("Traversal","noChildren") 1 Public (CTCons ("Traversal","Traversable") [CTVar (0,"_"),CTVar (0,"_")]) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","[]"))) (CApply (CSymbol ("Prelude","const")) (CVar (0,"x"))))] []]),
+  CFunc ("Traversal","replaceChildren") 1 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","[]") [CTVar (1,"b")]) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"tr")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","snd"))) (CVar (0,"tr")))] []]),
+  CFunc ("Traversal","replaceChildrenIO") 1 Public (CFuncType (CTCons ("Traversal","Traversable") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTVar (1,"b")]]) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"tr")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Traversal","liftIO"))) (CApply (CSymbol ("Traversal","replaceChildren")) (CVar (0,"tr"))))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Unsafe.acy b/src/lib/Curry/Module/.curry/Unsafe.acy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Unsafe.acy
@@ -0,0 +1,29 @@
+CurryProg "Unsafe"
+ ["Prelude","Char","Meta"]
+ []
+ [CFunc ("Unsafe","generateChoice") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CExternal "generateChoice"),
+  CFunc ("Unsafe","identicalVar") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!")) (CApply (CApply (CSymbol ("Prelude","$!")) (CSymbol ("Unsafe","prim_identicalVar"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Unsafe","isVar") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"v")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CSymbol ("Meta","isFree")) (CVar (0,"v")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CApply (CSymbol ("Prelude","either")) (CApply (CSymbol ("Prelude","const")) (CSymbol ("Prelude","True")))) (CApply (CSymbol ("Prelude","const")) (CSymbol ("Prelude","False")))))))] []]),
+  CFunc ("Unsafe","nrOfChoices") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "nrOfChoices"),
+  CFunc ("Unsafe","orsWithOrRef") 2 Public (CFuncType (CTCons ("Meta","OrRef") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a")))) (CExternal "orsWithOrRef"),
+  CFunc ("Unsafe","prim_identicalVar") 2 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CExternal "prim_identicalVar"),
+  CFunc ("Unsafe","prim_isVar") 1 Private (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])) (CExternal "prim_isVar"),
+  CFunc ("Unsafe","prim_readsAnyQTerm") 1 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CExternal "prim_readsAnyQTerm"),
+  CFunc ("Unsafe","prim_readsAnyUnqualifiedTerm") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]))) (CExternal "prim_readsAnyUnqualifiedTerm"),
+  CFunc ("Unsafe","prim_showAnyQTerm") 1 Private (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CExternal "prim_showAnyQTerm"),
+  CFunc ("Unsafe","prim_showAnyTerm") 1 Private (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CExternal "prim_showAnyTerm"),
+  CFunc ("Unsafe","prim_unsafePerformIO") 1 Private (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTVar (0,"a"))) (CExternal "prim_unsafePerformIO"),
+  CFunc ("Unsafe","readAnyQTerm") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CCase (CVar (1,"result")) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"term"),CPVar (3,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (3,"tail")))) (CVar (2,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))),CBranch (CPVar (4,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))])] [CLocalPat (CPVar (1,"result")) (CApply (CSymbol ("Unsafe","readsAnyQTerm")) (CVar (0,"s"))) []]]),
+  CFunc ("Unsafe","readAnyUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"prefixes"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CCase (CVar (2,"result")) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (3,"term"),CPVar (4,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (4,"tail")))) (CVar (3,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CVar (4,"tail"))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))),CBranch (CPVar (5,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))])] [CLocalPat (CPVar (2,"result")) (CApply (CApply (CSymbol ("Unsafe","readsAnyUnqualifiedTerm")) (CVar (0,"prefixes"))) (CVar (1,"s"))) []]]),
+  CFunc ("Unsafe","readsAnyQTerm") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Unsafe","prim_readsAnyQTerm"))) (CVar (0,"s")))] []]),
+  CFunc ("Unsafe","readsAnyUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"prefix"),CPVar (2,"prefixes")],CPVar (3,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Unsafe","readsAnyUnqualifiedTermWithPrefixes")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"prefix"))) (CVar (2,"prefixes")))) (CVar (3,"s")))] []]),
+  CFunc ("Unsafe","readsAnyUnqualifiedTermWithPrefixes") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]]]))) (CRules CFlex [CRule [CPVar (0,"prefixes"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Unsafe","prim_readsAnyUnqualifiedTerm"))) (CVar (0,"prefixes")))) (CVar (1,"s")))] []]),
+  CFunc ("Unsafe","showAnyExpression") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CExternal "showAnyExpression"),
+  CFunc ("Unsafe","showAnyQExpression") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CExternal "showAnyQExpression"),
+  CFunc ("Unsafe","showAnyQTerm") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Unsafe","prim_showAnyQTerm"))) (CVar (0,"x")))] []]),
+  CFunc ("Unsafe","showAnyTerm") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Unsafe","prim_showAnyTerm"))) (CVar (0,"x")))] []]),
+  CFunc ("Unsafe","spawnConstraint") 2 Public (CFuncType (CTCons ("Prelude","Success") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "spawnConstraint"),
+  CFunc ("Unsafe","trace") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putStr")) (CVar (0,"s")))) (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))))] []]),
+  CFunc ("Unsafe","try") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Either") [CTVar (0,"a"),CTCons ("Prelude","(,)") [CTCons ("Meta","OrRef") [],CTCons ("Prelude","[]") [CTVar (0,"a")]]])) (CExternal "try"),
+  CFunc ("Unsafe","unsafePerformIO") 1 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"act")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Unsafe","prim_unsafePerformIO"))) (CVar (0,"act")))] []])]
+ []
diff --git a/src/lib/Curry/Module/.curry/Unsafe.cy b/src/lib/Curry/Module/.curry/Unsafe.cy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Unsafe.cy
@@ -0,0 +1,56 @@
+Module "Unsafe"
+(Just (Exporting (10,15) [(Export (QualIdent Nothing (Ident "unsafePerformIO" 0))),(Export (QualIdent Nothing (Ident "trace" 0))),(Export (QualIdent Nothing (Ident "spawnConstraint" 0))),(Export (QualIdent Nothing (Ident "isVar" 0))),(Export (QualIdent Nothing (Ident "identicalVar" 0))),(Export (QualIdent Nothing (Ident "showAnyTerm" 0))),(Export (QualIdent Nothing (Ident "showAnyQTerm" 0))),(Export (QualIdent Nothing (Ident "showAnyExpression" 0))),(Export (QualIdent Nothing (Ident "showAnyQExpression" 0))),(Export (QualIdent Nothing (Ident "readsAnyUnqualifiedTerm" 0))),(Export (QualIdent Nothing (Ident "readAnyUnqualifiedTerm" 0))),(Export (QualIdent Nothing (Ident "readsAnyQTerm" 0))),(Export (QualIdent Nothing (Ident "readAnyQTerm" 0))),(Export (QualIdent Nothing (Ident "generateChoice" 0))),(Export (QualIdent Nothing (Ident "OrRef" 0))),(Export (QualIdent Nothing (Ident "try" 0))),(Export (QualIdent Nothing (Ident "orsWithOrRef" 0))),(Export (QualIdent Nothing (Ident "nrOfChoices" 0)))]))
+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)
+,(ImportDecl (18,1) "Char" False Nothing (Just (Importing (18,12) [(Import (Ident "isSpace" 0))])))
+,(ImportDecl (19,1) "Meta" False Nothing Nothing)
+,(TypeSig (22,1) [(Ident "unsafePerformIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "a" 0))))
+,(FunctionDecl (23,1) (Ident "unsafePerformIO" 0) [(Equation (23,1) (FunLhs (Ident "unsafePerformIO" 0) [(VariablePattern (Ident "act" 2))]) (SimpleRhs (23,23) (InfixApply (Variable (QualIdent (Just "Unsafe") (Ident "prim_unsafePerformIO" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "act" 2)))) []))])
+,(TypeSig (25,1) [(Ident "prim_unsafePerformIO" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (VariableType (Ident "a" 0))))
+,(FlatExternalDecl (26,1) [(Ident "prim_unsafePerformIO" 0)])
+,(TypeSig (30,1) [(Ident "trace" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))
+,(FunctionDecl (31,1) (Ident "trace" 0) [(Equation (31,1) (FunLhs (Ident "trace" 0) [(VariablePattern (Ident "s" 4)),(VariablePattern (Ident "x" 4))]) (SimpleRhs (31,13) (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStr" 0))) (Variable (QualIdent Nothing (Ident "s" 4)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "x" 4))))))) []))])
+,(TypeSig (44,1) [(Ident "spawnConstraint" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Success" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))
+,(FlatExternalDecl (45,1) [(Ident "spawnConstraint" 0)])
+,(TypeSig (49,1) [(Ident "isVar" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FunctionDecl (50,1) (Ident "isVar" 0) [(Equation (50,1) (FunLhs (Ident "isVar" 0) [(VariablePattern (Ident "v" 6))]) (SimpleRhs (50,11) (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Meta") (Ident "isFree" 0))) (Variable (QualIdent Nothing (Ident "v" 6)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "either" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "const" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))))))))) []))])
+,(TypeSig (53,1) [(Ident "prim_isVar" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) [])))
+,(FlatExternalDecl (54,1) [(Ident "prim_isVar" 0)])
+,(TypeSig (62,1) [(Ident "identicalVar" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FunctionDecl (63,1) (Ident "identicalVar" 0) [(Equation (63,1) (FunLhs (Ident "identicalVar" 0) [(VariablePattern (Ident "x" 8)),(VariablePattern (Ident "y" 8))]) (SimpleRhs (63,20) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Unsafe") (Ident "prim_identicalVar" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!" 0))) (Variable (QualIdent Nothing (Ident "x" 8))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!" 0))) (Variable (QualIdent Nothing (Ident "y" 8)))) []))])
+,(TypeSig (66,1) [(Ident "prim_identicalVar" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Bool" 0)) []))))
+,(FlatExternalDecl (67,1) [(Ident "prim_identicalVar" 0)])
+,(TypeSig (78,1) [(Ident "showAnyTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (79,1) (Ident "showAnyTerm" 0) [(Equation (79,1) (FunLhs (Ident "showAnyTerm" 0) [(VariablePattern (Ident "x" 10))]) (SimpleRhs (79,17) (InfixApply (Variable (QualIdent (Just "Unsafe") (Ident "prim_showAnyTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Variable (QualIdent Nothing (Ident "x" 10)))) []))])
+,(TypeSig (81,1) [(Ident "prim_showAnyTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FlatExternalDecl (82,1) [(Ident "prim_showAnyTerm" 0)])
+,(TypeSig (92,1) [(Ident "showAnyQTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FunctionDecl (93,1) (Ident "showAnyQTerm" 0) [(Equation (93,1) (FunLhs (Ident "showAnyQTerm" 0) [(VariablePattern (Ident "x" 12))]) (SimpleRhs (93,18) (InfixApply (Variable (QualIdent (Just "Unsafe") (Ident "prim_showAnyQTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Variable (QualIdent Nothing (Ident "x" 12)))) []))])
+,(TypeSig (95,1) [(Ident "prim_showAnyQTerm" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FlatExternalDecl (96,1) [(Ident "prim_showAnyQTerm" 0)])
+,(TypeSig (105,1) [(Ident "readsAnyUnqualifiedTerm" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))))
+,(FunctionDecl (106,1) (Ident "readsAnyUnqualifiedTerm" 0) [(Equation (106,1) (FunLhs (Ident "readsAnyUnqualifiedTerm" 0) [(ListPattern []),(VariablePattern (Ident "_" 15))]) (SimpleRhs (107,3) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "ReadShowTerm.readsAnyUnqualifiedTerm: list of module prefixes is empty"))) [])),(Equation (108,1) (FunLhs (Ident "readsAnyUnqualifiedTerm" 0) [(ParenPattern (InfixPattern (VariablePattern (Ident "prefix" 17)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "prefixes" 17)))),(VariablePattern (Ident "s" 17))]) (SimpleRhs (109,3) (Apply (Apply (Variable (QualIdent (Just "Unsafe") (Ident "readsAnyUnqualifiedTermWithPrefixes" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "prefix" 17))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "prefixes" 17)))))) (Variable (QualIdent Nothing (Ident "s" 17)))) []))])
+,(TypeSig (111,1) [(Ident "readsAnyUnqualifiedTermWithPrefixes" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))))
+,(FunctionDecl (112,1) (Ident "readsAnyUnqualifiedTermWithPrefixes" 0) [(Equation (112,1) (FunLhs (Ident "readsAnyUnqualifiedTermWithPrefixes" 0) [(VariablePattern (Ident "prefixes" 19)),(VariablePattern (Ident "s" 19))]) (SimpleRhs (113,3) (InfixApply (Paren (InfixApply (Variable (QualIdent (Just "Unsafe") (Ident "prim_readsAnyUnqualifiedTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "prefixes" 19))))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 19)))) []))])
+,(TypeSig (115,1) [(Ident "prim_readsAnyUnqualifiedTerm" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])])))))
+,(FlatExternalDecl (116,1) [(Ident "prim_readsAnyUnqualifiedTerm" 0)])
+,(TypeSig (123,1) [(Ident "readAnyUnqualifiedTerm" 0)] (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "_" 0)))))
+,(FunctionDecl (124,1) (Ident "readAnyUnqualifiedTerm" 0) [(Equation (124,1) (FunLhs (Ident "readAnyUnqualifiedTerm" 0) [(VariablePattern (Ident "prefixes" 21)),(VariablePattern (Ident "s" 21))]) (SimpleRhs (124,37) (Case (Variable (QualIdent Nothing (Ident "result" 22))) [(Alt (125,3) (ListPattern [(TuplePattern [(VariablePattern (Ident "term" 24)),(VariablePattern (Ident "tail" 24))])]) (SimpleRhs (126,9) (IfThenElse (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "all" 0))) (Variable (QualIdent (Just "Char") (Ident "isSpace" 0)))) (Variable (QualIdent Nothing (Ident "tail" 24)))) (Variable (QualIdent Nothing (Ident "term" 24))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Paren (InfixApply (Literal (String "Unsafe.readAnyUnqualifiedTerm: no parse, unmatched string after term: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "tail" 24))))))) [])),(Alt (128,3) (ListPattern []) (SimpleRhs (128,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Unsafe.readAnyUnqualifiedTerm: no parse"))) [])),(Alt (129,3) (VariablePattern (Ident "_" 29)) (SimpleRhs (129,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Unsafe.readAnyUnqualifiedTerm: ambiguous parse"))) []))]) [(PatternDecl (130,8) (VariablePattern (Ident "result" 22)) (SimpleRhs (130,17) (Apply (Apply (Variable (QualIdent (Just "Unsafe") (Ident "readsAnyUnqualifiedTerm" 0))) (Variable (QualIdent Nothing (Ident "prefixes" 21)))) (Variable (QualIdent Nothing (Ident "s" 21)))) []))]))])
+,(TypeSig (138,1) [(Ident "readsAnyQTerm" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))))
+,(FunctionDecl (139,1) (Ident "readsAnyQTerm" 0) [(Equation (139,1) (FunLhs (Ident "readsAnyQTerm" 0) [(VariablePattern (Ident "s" 31))]) (SimpleRhs (139,19) (InfixApply (Variable (QualIdent (Just "Unsafe") (Ident "prim_readsAnyQTerm" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "s" 31)))) []))])
+,(TypeSig (141,1) [(Ident "prim_readsAnyQTerm" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ListType (TupleType [(VariableType (Ident "_" 0)),(ConstructorType (QualIdent Nothing (Ident "String" 0)) [])]))))
+,(FlatExternalDecl (142,1) [(Ident "prim_readsAnyQTerm" 0)])
+,(TypeSig (148,1) [(Ident "readAnyQTerm" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (VariableType (Ident "_" 0))))
+,(FunctionDecl (149,1) (Ident "readAnyQTerm" 0) [(Equation (149,1) (FunLhs (Ident "readAnyQTerm" 0) [(VariablePattern (Ident "s" 33))]) (SimpleRhs (149,18) (Case (Variable (QualIdent Nothing (Ident "result" 34))) [(Alt (150,3) (ListPattern [(TuplePattern [(VariablePattern (Ident "term" 36)),(VariablePattern (Ident "tail" 36))])]) (SimpleRhs (150,20) (IfThenElse (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "all" 0))) (Variable (QualIdent (Just "Char") (Ident "isSpace" 0)))) (Variable (QualIdent Nothing (Ident "tail" 36)))) (Variable (QualIdent Nothing (Ident "term" 36))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Unsafe.readAnyQTerm: no parse")))) [])),(Alt (152,3) (ListPattern []) (SimpleRhs (152,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Unsafe.readAnyQTerm: no parse"))) [])),(Alt (153,3) (VariablePattern (Ident "_" 41)) (SimpleRhs (153,10) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "Unsafe.readAnyQTerm: ambiguous parse"))) []))]) [(PatternDecl (154,8) (VariablePattern (Ident "result" 34)) (SimpleRhs (154,17) (Apply (Variable (QualIdent (Just "Unsafe") (Ident "readsAnyQTerm" 0))) (Variable (QualIdent Nothing (Ident "s" 33)))) []))]))])
+,(TypeSig (161,1) [(Ident "showAnyExpression" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FlatExternalDecl (162,1) [(Ident "showAnyExpression" 0)])
+,(TypeSig (168,1) [(Ident "showAnyQExpression" 0)] (ArrowType (VariableType (Ident "_" 0)) (ConstructorType (QualIdent Nothing (Ident "String" 0)) [])))
+,(FlatExternalDecl (169,1) [(Ident "showAnyQExpression" 0)])
+,(TypeSig (171,1) [(Ident "try" 0)] (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "Either" 0)) [(VariableType (Ident "a" 0)),(TupleType [(ConstructorType (QualIdent Nothing (Ident "OrRef" 0)) []),(ListType (VariableType (Ident "a" 0)))])])))
+,(FlatExternalDecl (172,1) [(Ident "try" 0)])
+,(TypeSig (174,1) [(Ident "orsWithOrRef" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "OrRef" 0)) []) (ArrowType (ListType (VariableType (Ident "a" 0))) (VariableType (Ident "a" 0)))))
+,(FlatExternalDecl (175,1) [(Ident "orsWithOrRef" 0)])
+,(TypeSig (177,1) [(Ident "generateChoice" 0)] (ArrowType (ListType (VariableType (Ident "a" 0))) (VariableType (Ident "a" 0))))
+,(FlatExternalDecl (178,1) [(Ident "generateChoice" 0)])
+,(TypeSig (180,1) [(Ident "nrOfChoices" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Int" 0)) [])]))
+,(FlatExternalDecl (181,1) [(Ident "nrOfChoices" 0)])
+]
diff --git a/src/lib/Curry/Module/.curry/Unsafe.efc b/src/lib/Curry/Module/.curry/Unsafe.efc
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Unsafe.efc
@@ -0,0 +1,1 @@
+Prog "Unsafe" ["Char","Meta","Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TVar 0)),"Unsafe","unsafePerformIO")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TVar 0))),"Prelude","$#")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TVar 0)),"Unsafe","prim_unsafePerformIO")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TVar 0)),"Unsafe","prim_unsafePerformIO")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (TVar 0)) (External "Unsafe.prim_unsafePerformIO"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 0) (TVar 0))),"Unsafe","trace")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 0) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TVar 0)),"Unsafe","unsafePerformIO")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Prelude","putStr")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))],Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Prelude","return")) [Var ((Just (TVar 0),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Success") []) (FuncType (TVar 0) (TVar 0))),"Unsafe","spawnConstraint")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Success")) []) (FuncType (TVar 0) (TVar 0))) (External "Unsafe.spawnConstraint"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Unsafe","isVar")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Unsafe","unsafePerformIO")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]])),"Meta","isFree")) [Var ((Just (TVar 0),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Bool") []])),"Prelude","return")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","either")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","const")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","const")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]]]]])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Unsafe","prim_isVar")) 1 Private (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (External "Unsafe.prim_isVar"),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Unsafe","identicalVar")) 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 0),1),(Just (TVar 0),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","$!")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","$!")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Unsafe","prim_identicalVar")) [],Var ((Just (TVar 0),1))],Var ((Just (TVar 0),2))])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Unsafe","prim_identicalVar")) 2 Private (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (External "Unsafe.prim_identicalVar"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Unsafe","showAnyTerm")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Unsafe","prim_showAnyTerm")) [],Var ((Just (TVar 0),1))])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Unsafe","prim_showAnyTerm")) 1 Private (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (External "Unsafe.prim_showAnyTerm"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Unsafe","showAnyQTerm")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Unsafe","prim_showAnyQTerm")) [],Var ((Just (TVar 0),1))])),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Unsafe","prim_showAnyQTerm")) 1 Private (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (External "Unsafe.prim_showAnyQTerm"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Unsafe","readsAnyUnqualifiedTerm")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'R'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'S'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'w'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Unsafe","readsAnyUnqualifiedTermWithPrefixes")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Unsafe","readsAnyUnqualifiedTermWithPrefixes")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","$##")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])))),"Prelude","$##")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Unsafe","prim_readsAnyUnqualifiedTerm")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Unsafe","prim_readsAnyUnqualifiedTerm")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]]))) (External "Unsafe.prim_readsAnyUnqualifiedTerm"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0))),"Unsafe","readAnyUnqualifiedTerm")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 95,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Unsafe","readsAnyUnqualifiedTerm")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))])] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),5)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),4))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","all")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isSpace")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),6))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ','),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'c'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'h'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),7))]])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),9)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 82,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'l'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Unsafe","readsAnyQTerm")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude","$##")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Unsafe","prim_readsAnyQTerm")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Unsafe","prim_readsAnyQTerm")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]])) (External "Unsafe.prim_readsAnyQTerm"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Unsafe","readAnyQTerm")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 114,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"Unsafe","readsAnyQTerm")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1))])] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]))),"Prelude","(,)")) [(Just (TVar 0),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6)]) (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Case  Rigid (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","all")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Char","isSpace")) []],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),6))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TVar 0),5))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'Q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),7),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'Q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'b'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'i'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'g'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'u'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 101,TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TVar 0)),"Prelude","error")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'U'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'f'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'd'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'A'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'y'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'Q'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'T'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'm'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ':'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'n'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'o'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'p'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'a'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'r'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  's'),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]))),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Unsafe","showAnyExpression")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (External "Unsafe.showAnyExpression"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Unsafe","showAnyQExpression")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []])) (External "Unsafe.showAnyQExpression"),Func ((Nothing,Just (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Either") [TVar 0,TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Meta","OrRef") [],TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]]])),"Unsafe","try")) 1 Public (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Either")) [TVar 0,TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Meta","OrRef")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]])) (External "Unsafe.try"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Meta","OrRef") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0))),"Unsafe","orsWithOrRef")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Meta","OrRef")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0))) (External "Unsafe.orsWithOrRef"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"Unsafe","generateChoice")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TVar 0)) (External "Unsafe.generateChoice"),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Unsafe","nrOfChoices")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (External "Unsafe.nrOfChoices")] []
diff --git a/src/lib/Curry/Module/.curry/Unsafe.fcy b/src/lib/Curry/Module/.curry/Unsafe.fcy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Unsafe.fcy
@@ -0,0 +1,1 @@
+Prog "Unsafe" ["Char","Meta","Prelude"] [] [Func ("Unsafe","unsafePerformIO") 1 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (TVar 0)) (Rule [1] (Comb FuncCall ("Prelude","$#") [Comb (FuncPartCall 1) ("Unsafe","prim_unsafePerformIO") [],Var 1])),Func ("Unsafe","prim_unsafePerformIO") 1 Private (FuncType (TCons ("Prelude","IO") [TVar 0]) (TVar 0)) (External "Unsafe.prim_unsafePerformIO"),Func ("Unsafe","trace") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStr") [Var 1],Comb FuncCall ("Prelude","return") [Var 2]]])),Func ("Unsafe","spawnConstraint") 2 Public (FuncType (TCons ("Prelude","Success") []) (FuncType (TVar 0) (TVar 0))) (External "Unsafe.spawnConstraint"),Func ("Unsafe","isVar") 1 Public (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Meta","isFree") [Var 1],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (FuncPartCall 1) ("Prelude","either") [Comb (FuncPartCall 1) ("Prelude","const") [Comb ConsCall ("Prelude","True") []],Comb (FuncPartCall 1) ("Prelude","const") [Comb ConsCall ("Prelude","False") []]]]]])),Func ("Unsafe","prim_isVar") 1 Private (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (External "Unsafe.prim_isVar"),Func ("Unsafe","identicalVar") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$!") [Comb FuncCall ("Prelude","$!") [Comb (FuncPartCall 2) ("Unsafe","prim_identicalVar") [],Var 1],Var 2])),Func ("Unsafe","prim_identicalVar") 2 Private (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (External "Unsafe.prim_identicalVar"),Func ("Unsafe","showAnyTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("Unsafe","prim_showAnyTerm") [],Var 1])),Func ("Unsafe","prim_showAnyTerm") 1 Private (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "Unsafe.prim_showAnyTerm"),Func ("Unsafe","showAnyQTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("Unsafe","prim_showAnyQTerm") [],Var 1])),Func ("Unsafe","prim_showAnyQTerm") 1 Private (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "Unsafe.prim_showAnyQTerm"),Func ("Unsafe","readsAnyUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","error") [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  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),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  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),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  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Unsafe","readsAnyUnqualifiedTermWithPrefixes") [Comb ConsCall ("Prelude",":") [Var 3,Var 4],Var 2])])),Func ("Unsafe","readsAnyUnqualifiedTermWithPrefixes") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [1,2] (Comb FuncCall ("Prelude","$##") [Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 2) ("Unsafe","prim_readsAnyUnqualifiedTerm") [],Var 1],Var 2])),Func ("Unsafe","prim_readsAnyUnqualifiedTerm") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (External "Unsafe.prim_readsAnyUnqualifiedTerm"),Func ("Unsafe","readAnyUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0))) (Rule [1,2] (Let [(3,Comb FuncCall ("Unsafe","readsAnyUnqualifiedTerm") [Var 1,Var 2])] (Case  Rigid (Var 3) [Branch (Pattern ("Prelude",":") [4,5]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","(,)") [6,7]) (Case  Rigid (Var 5) [Branch (Pattern ("Prelude","[]") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","all") [Comb (FuncPartCall 1) ("Char","isSpace") []],Var 7]) [Branch (Pattern ("Prelude","True") []) (Var 6),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","error") [Comb FuncCall ("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",":") [Lit (Charc  '.'),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  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ','),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),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  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),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  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Var 7]])]),Branch (Pattern ("Prelude",":") [8,9]) (Comb FuncCall ("Prelude","error") [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  '.'),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  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","error") [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  '.'),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  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]))),Func ("Unsafe","readsAnyQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [1] (Comb FuncCall ("Prelude","$##") [Comb (FuncPartCall 1) ("Unsafe","prim_readsAnyQTerm") [],Var 1])),Func ("Unsafe","prim_readsAnyQTerm") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (External "Unsafe.prim_readsAnyQTerm"),Func ("Unsafe","readAnyQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (Rule [1] (Let [(2,Comb FuncCall ("Unsafe","readsAnyQTerm") [Var 1])] (Case  Rigid (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","(,)") [5,6]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","[]") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","all") [Comb (FuncPartCall 1) ("Char","isSpace") []],Var 6]) [Branch (Pattern ("Prelude","True") []) (Var 5),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","error") [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  '.'),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  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'Q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]),Branch (Pattern ("Prelude",":") [7,8]) (Comb FuncCall ("Prelude","error") [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  '.'),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  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'Q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","error") [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  '.'),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  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  'Q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]))),Func ("Unsafe","showAnyExpression") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "Unsafe.showAnyExpression"),Func ("Unsafe","showAnyQExpression") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "Unsafe.showAnyQExpression"),Func ("Unsafe","try") 1 Public (FuncType (TVar 0) (TCons ("Prelude","Either") [TVar 0,TCons ("Prelude","(,)") [TCons ("Meta","OrRef") [],TCons ("Prelude","[]") [TVar 0]]])) (External "Unsafe.try"),Func ("Unsafe","orsWithOrRef") 2 Public (FuncType (TCons ("Meta","OrRef") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))) (External "Unsafe.orsWithOrRef"),Func ("Unsafe","generateChoice") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (External "Unsafe.generateChoice"),Func ("Unsafe","nrOfChoices") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "Unsafe.nrOfChoices")] []
diff --git a/src/lib/Curry/Module/.curry/Unsafe.fint b/src/lib/Curry/Module/.curry/Unsafe.fint
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Unsafe.fint
@@ -0,0 +1,1 @@
+Prog "Unsafe" ["Char","Meta","Prelude"] [Type ("Meta","OrRef") Public [] []] [Func ("Unsafe","unsafePerformIO") 1 Public (FuncType (TCons ("Prelude","IO") [TVar 0]) (TVar 0)) (Rule [] (Var 0)),Func ("Unsafe","trace") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("Unsafe","spawnConstraint") 2 Public (FuncType (TCons ("Prelude","Success") []) (FuncType (TVar 0) (TVar 0))) (External "Unsafe.spawnConstraint"),Func ("Unsafe","isVar") 1 Public (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Unsafe","identicalVar") 2 Public (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (Rule [] (Var 0)),Func ("Unsafe","showAnyTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Unsafe","showAnyQTerm") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Unsafe","readsAnyUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]))) (Rule [] (Var 0)),Func ("Unsafe","readAnyUnqualifiedTerm") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0))) (Rule [] (Var 0)),Func ("Unsafe","readsAnyQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [] (Var 0)),Func ("Unsafe","readAnyQTerm") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TVar 0)) (Rule [] (Var 0)),Func ("Unsafe","showAnyExpression") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "Unsafe.showAnyExpression"),Func ("Unsafe","showAnyQExpression") 1 Public (FuncType (TVar 0) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (External "Unsafe.showAnyQExpression"),Func ("Unsafe","try") 1 Public (FuncType (TVar 0) (TCons ("Prelude","Either") [TVar 0,TCons ("Prelude","(,)") [TCons ("Meta","OrRef") [],TCons ("Prelude","[]") [TVar 0]]])) (External "Unsafe.try"),Func ("Unsafe","orsWithOrRef") 2 Public (FuncType (TCons ("Meta","OrRef") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))) (External "Unsafe.orsWithOrRef"),Func ("Unsafe","generateChoice") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (External "Unsafe.generateChoice"),Func ("Unsafe","nrOfChoices") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","Int") []]) (External "Unsafe.nrOfChoices")] []
diff --git a/src/lib/Curry/Module/.curry/Unsafe.uacy b/src/lib/Curry/Module/.curry/Unsafe.uacy
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/.curry/Unsafe.uacy
@@ -0,0 +1,29 @@
+CurryProg "Unsafe"
+ ["Prelude","Char","Meta"]
+ []
+ [CFunc ("Unsafe","generateChoice") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a"))) (CExternal "generateChoice"),
+  CFunc ("Unsafe","identicalVar") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!")) (CApply (CApply (CSymbol ("Prelude","$!")) (CSymbol ("Unsafe","prim_identicalVar"))) (CVar (0,"x")))) (CVar (1,"y")))] []]),
+  CFunc ("Unsafe","isVar") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"v")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CSymbol ("Meta","isFree")) (CVar (0,"v")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CApply (CSymbol ("Prelude","either")) (CApply (CSymbol ("Prelude","const")) (CSymbol ("Prelude","True")))) (CApply (CSymbol ("Prelude","const")) (CSymbol ("Prelude","False")))))))] []]),
+  CFunc ("Unsafe","nrOfChoices") 0 Public (CTCons ("Prelude","IO") [CTCons ("Prelude","Int") []]) (CExternal "nrOfChoices"),
+  CFunc ("Unsafe","orsWithOrRef") 2 Public (CFuncType (CTCons ("Meta","OrRef") []) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTVar (0,"a")))) (CExternal "orsWithOrRef"),
+  CFunc ("Unsafe","prim_identicalVar") 2 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CExternal "prim_identicalVar"),
+  CFunc ("Unsafe","prim_isVar") 1 Private (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","Bool") [])) (CExternal "prim_isVar"),
+  CFunc ("Unsafe","prim_readsAnyQTerm") 1 Private (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]])) (CExternal "prim_readsAnyQTerm"),
+  CFunc ("Unsafe","prim_readsAnyUnqualifiedTerm") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]]))) (CExternal "prim_readsAnyUnqualifiedTerm"),
+  CFunc ("Unsafe","prim_showAnyQTerm") 1 Private (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CExternal "prim_showAnyQTerm"),
+  CFunc ("Unsafe","prim_showAnyTerm") 1 Private (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CExternal "prim_showAnyTerm"),
+  CFunc ("Unsafe","prim_unsafePerformIO") 1 Private (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTVar (0,"a"))) (CExternal "prim_unsafePerformIO"),
+  CFunc ("Unsafe","readAnyQTerm") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTVar (0,"_"))) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CCase (CVar (1,"result")) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (2,"term"),CPVar (3,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (3,"tail")))) (CVar (2,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))),CBranch (CPVar (4,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'Q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))])] [CLocalPat (CPVar (1,"result")) (CApply (CSymbol ("Unsafe","readsAnyQTerm")) (CVar (0,"s"))) []]]),
+  CFunc ("Unsafe","readAnyUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","String") []) (CTVar (0,"_")))) (CRules CFlex [CRule [CPVar (0,"prefixes"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CCase (CVar (2,"result")) [CBranch (CPComb ("Prelude",":") [CPComb ("Prelude","(,)") [CPVar (3,"term"),CPVar (4,"tail")],CPComb ("Prelude","[]") []]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","all")) (CSymbol ("Char","isSpace"))) (CVar (4,"tail")))) (CVar (3,"term"))) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ','))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (CVar (4,"tail"))))),CBranch (CPComb ("Prelude","[]") []) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))),CBranch (CPVar (5,"_")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))])] [CLocalPat (CPVar (2,"result")) (CApply (CApply (CSymbol ("Unsafe","readsAnyUnqualifiedTerm")) (CVar (0,"prefixes"))) (CVar (1,"s"))) []]]),
+  CFunc ("Unsafe","readsAnyQTerm") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]])) (CRules CFlex [CRule [CPVar (0,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Unsafe","prim_readsAnyQTerm"))) (CVar (0,"s")))] []]),
+  CFunc ("Unsafe","readsAnyUnqualifiedTerm") 2 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]]))) (CRules CFlex [CRule [CPComb ("Prelude","[]") [],CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'S'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'w'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'U'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'q'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'T'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ':'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'u'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'y'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))] [],CRule [CPComb ("Prelude",":") [CPVar (1,"prefix"),CPVar (2,"prefixes")],CPVar (3,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Unsafe","readsAnyUnqualifiedTermWithPrefixes")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"prefix"))) (CVar (2,"prefixes")))) (CVar (3,"s")))] []]),
+  CFunc ("Unsafe","readsAnyUnqualifiedTermWithPrefixes") 2 Private (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","String") []]) (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"_"),CTCons ("Prelude","String") []]]))) (CRules CFlex [CRule [CPVar (0,"prefixes"),CPVar (1,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$##")) (CApply (CApply (CSymbol ("Prelude","$##")) (CSymbol ("Unsafe","prim_readsAnyUnqualifiedTerm"))) (CVar (0,"prefixes")))) (CVar (1,"s")))] []]),
+  CFunc ("Unsafe","showAnyExpression") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CExternal "showAnyExpression"),
+  CFunc ("Unsafe","showAnyQExpression") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CExternal "showAnyQExpression"),
+  CFunc ("Unsafe","showAnyQTerm") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Unsafe","prim_showAnyQTerm"))) (CVar (0,"x")))] []]),
+  CFunc ("Unsafe","showAnyTerm") 1 Public (CFuncType (CTVar (0,"_")) (CTCons ("Prelude","String") [])) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Unsafe","prim_showAnyTerm"))) (CVar (0,"x")))] []]),
+  CFunc ("Unsafe","spawnConstraint") 2 Public (CFuncType (CTCons ("Prelude","Success") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "spawnConstraint"),
+  CFunc ("Unsafe","trace") 2 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"s"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putStr")) (CVar (0,"s")))) (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))))] []]),
+  CFunc ("Unsafe","try") 1 Public (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Either") [CTVar (0,"a"),CTCons ("Prelude","(,)") [CTCons ("Meta","OrRef") [],CTCons ("Prelude","[]") [CTVar (0,"a")]]])) (CExternal "try"),
+  CFunc ("Unsafe","unsafePerformIO") 1 Public (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"act")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$#")) (CSymbol ("Unsafe","prim_unsafePerformIO"))) (CVar (0,"act")))] []])]
+ []
diff --git a/src/lib/Curry/Module/AnsiCodes.curry b/src/lib/Curry/Module/AnsiCodes.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/AnsiCodes.curry
@@ -0,0 +1,122 @@
+------------------------------------------------------------------------------
+--- Library for formatted output on terminals
+---
+--- Information on ANSI Codes can be found at 
+--- http://www.dee.ufcg.edu.br/~rrbrandt/tools/ansi.html
+---
+--- @author Sebastian Fischer
+------------------------------------------------------------------------------
+
+module AnsiCodes(
+
+  -- exported functions for cursor movement
+  cursorPos, cursorHome,
+  cursorUp, cursorDown, cursorFwd, cursorBack,
+  saveCursor, restoreCursor,
+
+  -- exported functions for graphics control
+  clear, eraseLine,
+
+  -- exported functions for formatted output
+  bold, underline, revColors, concealed,
+  black, red, green, yellow, blue, cyan, magenta, white,
+  bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgCyan, bgMagenta, bgWhite,
+
+  -- exported functions for string operations
+  ansiLength
+
+  )  where
+
+import Char
+import List
+
+-- escape character
+esc = chr 27
+
+
+--- The functions for cursor movement
+
+cmd s = esc:"[" ++ s
+
+--- move cursor to position
+cursorPos r c = cmd (show r ++ ";" ++ show c ++ "H")
+
+--- move cursor to home position
+cursorHome = cmd "H"
+
+moveCursor :: String -> String -> String
+moveCursor s n = cmd (show n ++ s)
+
+--- move cursor n lines up
+cursorUp = moveCursor "A"
+
+--- move cursor n lines down
+cursorDown = moveCursor "B"
+
+--- move cursor n columns forward
+cursorFwd = moveCursor "C"
+
+--- move cursor n columns backward
+cursorBack = moveCursor "D"
+
+--- save cursor position
+saveCursor = cmd "s"
+
+--- restore saved cursor position
+restoreCursor = cmd "u"
+
+
+--- The functions for controlling graphics
+
+--- clear screen
+clear = cmd "2J"
+
+--- erase line
+eraseLine = cmd "K"
+
+
+mode n s = cmd (show n ++ "m" ++ s ++ if isSuffixOf end s then "" else end)
+ where
+  end = cmd "0m"
+
+--isSuffixOf s l = [] /= findall (\p -> p ++ s =:= l)
+isSuffixOf s = isPrefixOf (reverse s) . reverse
+
+
+--- format text
+
+bold      = mode 1
+underline = mode 4
+revColors = mode 7
+concealed = mode 8
+black     = mode 30
+red       = mode 31
+green     = mode 32
+yellow    = mode 33
+blue      = mode 34
+magenta   = mode 35
+cyan      = mode 36
+white     = mode 37
+bgBlack   = mode 40
+bgRed     = mode 41
+bgGreen   = mode 42
+bgYellow  = mode 43
+bgBlue    = mode 44
+bgMagenta = mode 45
+bgCyan    = mode 46
+bgWhite   = mode 47
+
+
+-- functions for string operations
+
+ansiLength :: String -> Int
+ansiLength s = aux s (length s)
+ where
+  aux [] n = n
+  aux (c:cs) n | c==esc && isDigit (cs!!2)
+               = aux (tail (tail (tail (tail cs)))) (n-5)
+               | c==esc  =  aux (tail (tail (tail cs))) (n-4)
+               | otherwise  = aux cs n
+
+------------------------------------------------------------------------------
+
diff --git a/src/lib/Curry/Module/Array.curry b/src/lib/Curry/Module/Array.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Array.curry
@@ -0,0 +1,170 @@
+--- Implementation of Arrays with Braun Trees. Conceptually, Braun trees
+--- are always infinite. Consequently, there is no test on emptiness.
+--- @authors {bbr, fhu}@informatik.uni-kiel.de
+
+module Array 
+  (Array,
+
+   emptyErrorArray, emptyDefaultArray,
+   listToDefaultArray,listToErrorArray,
+
+   (//), update, applyAt,
+
+   (!),
+
+   combine, combineSimilar,
+
+   foldArray,arrayToList)
+
+  where 
+
+
+import Integer
+
+infixl 9  !, //
+
+data Array b = Array (Int -> b) (Entry b)
+
+data Entry b = Entry b (Entry b) (Entry b) | Empty
+
+
+--- Creates an empty array which generates errors for non-initialized
+--- indexes.
+emptyErrorArray :: Array b
+emptyErrorArray = emptyDefaultArray errorArray 
+
+errorArray :: Int -> _
+errorArray idx =  error ("Array index "++show idx++" not initialized")
+
+--- Creates an empty array, call given function for non-initialized
+--- indexes.
+--- @param default - function to call for each non-initialized index
+emptyDefaultArray :: (Int -> b) -> Array b
+emptyDefaultArray default = Array default Empty
+
+--- Inserts a list of entries into an array.
+--- @param array - array to modify
+--- @param modifications - list of new (indexes,entries)
+--- If an index in the list was already initialized, the old value
+--- will be overwritten. Likewise the last entry with a given index
+--- will be contained in the result array.
+(//) :: Array b -> [(Int,b)] -> Array b
+Array default array // modifications = 
+  Array default 
+    (foldr (\ (n,v) a -> at (default n) a n (const v)) array modifications)
+
+--- Inserts a new entry into an array.
+--- @param array - array to modify
+--- @param idx - index of update
+--- @param val - value to update at index idx
+--- Entries already initialized will be overwritten.
+update :: Array b -> Int -> b -> Array b
+update (Array default a) i v = 
+  Array default (at (default i) a i (const v))
+
+--- Applies a function to an element.
+--- @param array - array to modify
+--- @param idx - index of update
+--- @param fun - function to apply on element at index idx
+
+applyAt :: Array b -> Int -> (b->b) -> Array b
+applyAt (Array default a) n f = Array default (at (default n) a n f)
+
+
+at :: b -> Entry b -> Int -> (b -> b) -> Entry b
+at default Empty n f 
+  | n==0      = Entry (f default) Empty Empty
+  | odd n     = Entry default (at default Empty (n `div` 2) f) Empty
+  | otherwise = Entry default Empty (at default Empty (n `div` 2 - 1) f) 
+at default (Entry v al ar) n f
+  | n==0      = Entry (f v) al ar
+  | odd n     = Entry v (at default al (n `div` 2) f) ar
+  | otherwise = Entry v al (at default ar (n `div` 2 - 1) f)
+
+
+--- Yields the value at a given position.
+--- @param a - array to look up in
+--- @param n - index, where to look 
+(!) :: Array b -> Int -> b
+Array default array ! i = from (default i) array i
+
+from :: a -> Entry a -> Int -> a
+from default Empty _ = default
+from default (Entry v al ar) n 
+  | n==0      = v
+  | odd n     = from default al (n `div` 2)
+  | otherwise = from default ar (n `div` 2 - 1)
+
+
+split :: [a] -> ([a],[a])
+split [] = ([],[])
+split [x] = ([x],[])
+split (x:y:xys) = let (xs,ys) = split xys in
+                    (x:xs,y:ys)
+
+--- Creates a default array from a list of entries.
+--- @param def - default funtion for non-initialized indexes
+--- @param xs - list of entries
+listToDefaultArray ::  (Int -> b) -> [b] -> Array b
+listToDefaultArray def = Array def . listToArray
+
+--- Creates an error array from a list of entries.
+--- @param xs - list of entries
+listToErrorArray :: [b] -> Array b
+listToErrorArray = listToDefaultArray errorArray 
+
+
+listToArray :: [b] -> Entry b
+listToArray [] = Empty
+listToArray (x:xs) = let (ys,zs) = split xs in
+                       Entry x (listToArray ys)
+                               (listToArray zs)
+
+
+--- combine two arbitrary arrays
+
+combine :: (a -> b -> c) -> Array a -> Array b -> Array c
+combine f (Array def1 a1) (Array def2 a2) = 
+  Array (\i -> f (def1 i) (def2 i)) (comb f def1 def2 a1 a2 0 1)
+
+comb :: (a -> b -> c) -> (Int -> a) -> (Int -> b) 
+     -> Entry a -> Entry b -> Int -> Int -> Entry c
+comb _ _ _ Empty Empty _ _ = Empty
+comb f def1 def2 (Entry x xl xr) Empty b o = 
+  Entry (f x (def2 (b+o-1))) 
+        (comb f def1 def2 xl Empty (2*b) o)
+        (comb f def1 def2 xr Empty (2*b) (o+b))
+comb f def1 def2 Empty (Entry y yl yr) b o = 
+  Entry (f (def1 (b+o-1)) y) 
+        (comb f def1 def2 Empty yl (2*b) o)
+        (comb f def1 def2 Empty yr (2*b) (o+b))
+comb f def1 def2 (Entry x xl xr) (Entry y yl yr) b o = 
+  Entry (f x y) 
+        (comb f def1 def2 xl yl (2*b) o)
+        (comb f def1 def2 xr yr (2*b) (o+b))
+
+
+
+--- the combination of two arrays with identical default function
+--- and a combinator which is neutral in the default 
+--- can be implemented much more efficient
+
+combineSimilar :: (a -> a -> a) -> Array a -> Array a -> Array a
+combineSimilar f (Array def a1) (Array _ a2) =  Array def (combSim f a1 a2)
+
+combSim :: (a -> a -> a) -> Entry a -> Entry a -> Entry a
+combSim _ Empty a2 = a2
+combSim _ a1@(Entry _ _ _) Empty = a1
+combSim f (Entry x xl xr) (Entry y yl yr) = 
+  Entry (f x y) (combSim f xl yl) (combSim f xr yr)
+
+
+foldArray :: b -> (a -> b -> b -> b) -> Array a -> b
+foldArray emp ent (Array _ es) = foldEntries emp ent es
+
+foldEntries emp _ Empty = emp
+foldEntries emp ent (Entry x a1 a2) = 
+  ent x (foldEntries emp ent a1) (foldEntries emp ent a2)
+
+arrayToList :: Array a -> [a]
+arrayToList = foldArray [] (\ x ys zs -> x : ys ++ zs)
diff --git a/src/lib/Curry/Module/Assertion.curry b/src/lib/Curry/Module/Assertion.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Assertion.curry
@@ -0,0 +1,188 @@
+------------------------------------------------------------------------------
+--- This module defines the datatype and operations for the
+--- Curry module tester "currytest".
+---
+--- @author Michael Hanus, Bernd Brassel
+--- @version July 2006
+------------------------------------------------------------------------------
+
+module Assertion(Assertion(..), -- for writing test cases
+                 -- the remaining entities are only used by the test tool:
+                 checkAssertion,
+                 seqStrActions,writeAssertResult,
+                 ProtocolMsg(..),
+                 showTestMod,showTestCase,showTestEnd,showTestCompileError) where
+
+import List((\\))
+import IO
+
+infixl 1 `seqStrActions`
+
+--- Datatype for defining test cases.
+--- @cons AssertTrue   s b     - assert (with name s) that b must be true
+--- @cons AssertEqual  s e1 e2 - assert (with name s) that e1 and e2 must
+---                              be equal (w.r.t. ==)
+--- @cons AssertValues s e vs  - assert (with name s) that vs is the multiset
+---                              of all values of e (i.e., all values of e are
+---                              compared with the elements in vs w.r.t. ==)
+--- @cons AssertSolutions s c vs - assert (with name s) that constraint
+---   abstraction c has the multiset of solutions vs
+---   (i.e., the solutions of c are compared with the elements in vs w.r.t. ==)
+--- @cons AssertIO     s a r   - assert (with name s) that I/O action a
+---                              yields the result value r
+--- @cons AssertEqualIO s a1 a2 - assert (with name s) that I/O actions a1 and
+---                               a2 yield equal (w.r.t. ==) results
+data Assertion a = AssertTrue      String Bool
+                 | AssertEqual     String a a
+                 | AssertValues    String a [a]
+                 | AssertSolutions String (a->Success) [a]
+                 | AssertIO        String (IO a) a
+                 | AssertEqualIO   String (IO a) (IO a)
+
+
+--- Combines two actions and combines their results.
+--- Used by the currytest tool.
+seqStrActions :: IO (String,Bool) -> IO (String,Bool) -> IO (String,Bool)
+seqStrActions a1 a2 =
+  do (s1,b1) <- a1
+     (s2,b2) <- a2
+     return (s1++s2,b1&&b2)
+
+--- Executes and checks an assertion, and process the result
+--- by an I/O action.
+--- Used by the currytest tool.
+--- @param protocol - an action to be applied after test execution
+--- @param assertion - an assertion to be tested
+--- @return a protocol string and a flag whether the test was successful
+checkAssertion :: ((String,Bool) -> IO (String,Bool)) -> Assertion _
+                                                      -> IO (String,Bool)
+checkAssertion prot (AssertTrue name cond) =
+  catchFail (checkAssertTrue name cond)
+            (return ("FAILURE of "++name++": no solution or error\n",False))
+   >>= prot
+checkAssertion prot (AssertEqual name call result) =
+  catchFail (checkAssertEqual name call result)
+            (return ("FAILURE of "++name++": no solution or error\n",False))
+   >>= prot
+checkAssertion prot (AssertValues name expr results) =
+  catchFail (checkAssertValues name expr results)
+            (return ("FAILURE of "++name++": no solution or error\n",False))
+   >>= prot
+checkAssertion prot (AssertSolutions name constr results) =
+  catchFail (checkAssertSolutions name constr results)
+            (return ("FAILURE of "++name++": no solution or error\n",False))
+   >>= prot
+checkAssertion prot (AssertIO name action result) =
+  catchFail (checkAssertIO name action result)
+            (return ("FAILURE of "++name++": no solution or error\n",False))
+   >>= prot
+checkAssertion prot (AssertEqualIO name action1 action2) =
+  catchFail (checkAssertEqualIO name action1 action2)
+            (return ("FAILURE of "++name++": no solution or error\n",False))
+   >>= prot
+
+-- Checks Boolean assertion.
+checkAssertTrue :: String -> Bool -> IO (String,Bool)
+checkAssertTrue name cond =
+  if cond
+    then return ("OK: "++name++"\n",True)
+    else return ("FAILURE of "++name++": assertion not satisfied\n",False)
+
+-- Checks equality assertion.
+checkAssertEqual :: String -> a -> a -> IO (String,Bool)
+checkAssertEqual name call result = do
+  let r = call
+  if r==result
+   then return ("OK: "++name++"\n",True)
+   else return ("FAILURE of "++name++": equality assertion not satisfied:\n"++
+                "Computed answer: "++show r++"\n"++
+                "Expected answer: "++show result++"\n",False)
+
+-- Checks all values assertion.
+checkAssertValues :: String -> a -> [a] -> IO (String,Bool)
+checkAssertValues name call results = do
+  st <- getSearchTree call 
+  let rs = allValuesB st
+  if null (rs \\ results) && null (results \\ rs)
+   then return ("OK: "++name++"\n",True)
+   else return ("FAILURE of "++name++": values assertion not satisfied:\n"++
+                "Computed values: "++show rs++"\n"++
+                "Expected values: "++show results++"\n",False)
+
+-- Checks all solutions of a constraint abstraction.
+checkAssertSolutions :: String -> (a->Success) -> [a] -> IO (String,Bool)
+checkAssertSolutions name constr results = do
+  st <- getSearchTree (let x free in (x,constr x)) 
+  let rs = map fst (allValuesB st)
+  if null (rs \\ results) && null (results \\ rs)
+   then return ("OK: "++name++"\n",True)
+   else return ("FAILURE of "++name++": solutions assertion not satisfied:\n"++
+                "Computed values: "++show rs++"\n"++
+                "Expected values: "++show results++"\n",False)
+
+-- Checks an IO assertion.
+checkAssertIO :: String -> IO a -> a -> IO (String,Bool)
+checkAssertIO name action result = do
+  r <- action
+  if r==result
+    then return ("OK: "++name++"\n",True)
+    else return ("FAILURE of "++name++": IO assertion not satisfied:\n"++
+                 "Computed answer: "++show r++"\n"++
+                 "Expected answer: "++show result++"\n\n",False)
+
+-- Checks equality of results of two IO assertions.
+checkAssertEqualIO :: String -> IO a -> IO a -> IO (String,Bool)
+checkAssertEqualIO name action1 action2 = do
+  r1 <- action1
+  r2 <- action2
+  if r1==r2
+    then return ("OK: "++name++"\n",True)
+    else return ("FAILURE of "++name++": IO equality assertion not satisfied:\n"++
+                 "Computed answer 1: "++show r1++"\n"++
+                 "Computed answer 2: "++show r2++"\n\n",False)
+
+--- Writes the results of assertion checking into a file and stdout,
+--- if the results are non-empty.
+--- Used by the currytest tool.
+writeAssertResult :: (String,Bool) -> IO ()
+writeAssertResult (result,flag) =
+  if flag
+  then putStrLn (result++"All tests successfully passed.")
+  else putStrLn (result++"FAILURE occurred in some assertions!\n")
+
+
+----------------------------------------------------------------------------
+-- The following entities are used to implement the test GUI:
+
+--- The messages sent to the test GUI.
+--- Used by the currytest tool.
+data ProtocolMsg = TestModule String | TestCase String Bool | TestFinished
+                 | TestCompileError
+
+doSend :: Handle -> a -> IO ()
+doSend h x = hPutStrLn h (show x)
+
+--- Sends message to GUI for showing test of a module.
+--- Used by the currytest tool.
+showTestMod :: Handle -> String -> IO ()
+showTestMod port modname = doSend port (TestModule modname)
+
+
+--- Sends message to GUI for showing result of executing a test case.
+--- Used by the currytest tool.
+showTestCase :: Handle -> (String,Bool) -> IO (String,Bool)
+showTestCase port (s,b) =
+  doSend port (TestCase s b) >>
+  return (s,b)
+
+--- Sends message to GUI for showing end of module test.
+--- Used by the currytest tool.
+showTestEnd :: Handle -> IO ()
+showTestEnd port = doSend port TestFinished
+
+--- Sends message to GUI for showing compilation errors in a module test.
+--- Used by the currytest tool.
+showTestCompileError :: Handle -> IO ()
+showTestCompileError port = doSend port TestCompileError
+
+-- end of module Assertion
diff --git a/src/lib/Curry/Module/CEventOracle.hs.include b/src/lib/Curry/Module/CEventOracle.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/CEventOracle.hs.include
@@ -0,0 +1,1 @@
+[ForType "Ref" Nothing,ForFunction "initialize",ForFunction "finalize",ForFunction "fresh",ForFunction "replace",ForFunction "collapse",ForFunction "closeRef",ForFunction "expand"]
diff --git a/src/lib/Curry/Module/CSV.curry b/src/lib/Curry/Module/CSV.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/CSV.curry
@@ -0,0 +1,87 @@
+------------------------------------------------------------------------------
+--- Library for reading/writing files in CSV format.
+--- Files in CSV (comma separated values) format can be imported and exported
+--- by most spreadsheed and database applications.
+---
+--- @author Michael Hanus
+--- @version September 2004
+------------------------------------------------------------------------------
+
+module CSV(showCSV,readCSV,readCSVWithDelims,
+           writeCSVFile,readCSVFile,readCSVFileWithDelims) where
+
+import List(intersperse)
+
+--- Writes a list of records (where each record is a list of strings)
+--- into a file in CSV format.
+--- @param fname - the name of the result file (with standard suffix ".csv")
+--- @param rows - the list of rows
+writeCSVFile :: String -> [[String]] -> IO ()
+writeCSVFile fname rows = writeFile fname (showCSV rows)
+
+--- Shows a list of records (where each record is a list of strings)
+--- as a string in CSV format.
+showCSV :: [[String]] -> String
+showCSV rows = concatMap showCSVLine rows
+
+--- Shows a list of strings as a line in CSV format.
+showCSVLine :: [String] -> String
+showCSVLine row = concat (intersperse "," (map convert row)) ++ "\n"
+ where
+   -- enclose in quotation marks if necessary:
+   convert s =
+      if any (\c->c `elem` ['"',',',';',':']) s
+      then '"' : concatMap (\c->if c=='"' then [c,c] else [c]) s ++ "\""
+      else s
+
+
+--- Reads a file in CSV format and returns the list of records
+--- (where each record is a list of strings).
+--- @param fname - the name of the result file (with standard suffix ".csv")
+readCSVFile :: String -> IO [[String]]
+readCSVFile = readCSVFileWithDelims [',']
+
+--- Reads a file in CSV format and returns the list of records
+--- (where each record is a list of strings).
+--- @param delims - the list of characters considered as delimiters
+--- @param fname - the name of the result file (with standard suffix ".csv")
+readCSVFileWithDelims :: [Char] -> String -> IO [[String]]
+readCSVFileWithDelims delims fname = do
+  contents <- readFile fname
+  return (readCSVWithDelims delims contents)
+
+--- Reads a string in CSV format and returns the list of records
+--- (where each record is a list of strings).
+--- @param str - the string in CSV format
+readCSV :: String -> [[String]]
+readCSV = readCSVWithDelims [',']
+
+--- Reads a string in CSV format and returns the list of records
+--- (where each record is a list of strings).
+--- @param delims - the list of characters considered as delimiters
+--- @param str - the string in CSV format
+readCSVWithDelims :: [Char] -> String -> [[String]]
+readCSVWithDelims delims str = map (components delims) (lines str)
+
+--- Breaks a string in CSV record format into a list of components.
+components :: [Char] -> String -> [String]
+components _ [] = [[]]
+components delims (c:cs) =
+  if c=='"' then breakString cs
+            else let (e,s) = break (`elem` delims) (c:cs)
+                  in e : (if null s then [] else components delims (tail s))
+ where
+   breakString [] = delimError
+   breakString [x] = if x=='"' then [[]]
+                               else delimError
+   breakString (x:y:zs) | x=='"' && y=='"' = let (b:bs) = breakString zs
+                                              in (x:b):bs
+                        | x=='"' && y `elem` delims = []:components delims zs
+                        | otherwise = let (b:bs) = breakString (y:zs)
+                                       in (x:b):bs
+
+   delimError  = error "Missing closing delimiter in CSV record!"
+
+-- Examples:
+-- writeCSVFile "tmp.csv" [["Name","Value"],["aa\"bb,cc","1"]]
+-- readCSVFile "tmp.csv"
diff --git a/src/lib/Curry/Module/Char.curry b/src/lib/Curry/Module/Char.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Char.curry
@@ -0,0 +1,69 @@
+------------------------------------------------------------------------------
+--- Library with some useful functions on characters.
+---
+--- @author Michael Hanus
+--- @version November 2001
+------------------------------------------------------------------------------
+
+module Char(isUpper,isLower,isAlpha,isDigit,isAlphaNum,isOctDigit,
+            isHexDigit,isSpace,toUpper,toLower,digitToInt,intToDigit) where
+ 
+--- Returns true if the argument is an uppercase letter.
+isUpper       :: Char -> Bool
+isUpper c     =  ord c >= ord 'A' && ord c <= ord 'Z'
+
+--- Returns true if the argument is an lowercase letter.
+isLower       :: Char -> Bool
+isLower c     =  ord c >= ord 'a' && ord c <= ord 'z'
+
+--- Returns true if the argument is a letter.
+isAlpha       :: Char -> Bool
+isAlpha c     =  isUpper c || isLower c
+
+--- Returns true if the argument is a decimal digit.
+isDigit       :: Char -> Bool
+isDigit c     =  ord '0' <= ord c && ord c <= ord '9'
+
+--- Returns true if the argument is a letter or digit.
+isAlphaNum    :: Char -> Bool
+isAlphaNum c  =  isAlpha c || isDigit c
+
+--- Returns true if the argument is an octal digit.
+isOctDigit   :: Char -> Bool
+isOctDigit c  =  ord c >= ord '0' && ord c <= ord '7'
+
+--- Returns true if the argument is a hexadecimal digit.
+isHexDigit    :: Char -> Bool
+isHexDigit c  =  isDigit c || ord c >= ord 'A' && ord c <= ord 'F'
+                           || ord c >= ord 'a' && ord c <= ord 'f'
+
+--- Returns true if the argument is a white space.
+isSpace       :: Char -> Bool
+isSpace c     =  c == ' '  || c == '\t' || c == '\n' ||
+                 c == '\r' || ord c == 12 -- form feed
+
+--- Converts lowercase into uppercase letters.
+toUpper   :: Char -> Char
+toUpper c | isLower c = chr (ord c - ord 'a' + ord 'A')
+          | otherwise = c
+
+--- Converts uppercase into lowercase letters.
+toLower   :: Char -> Char
+toLower c | isUpper c = chr (ord c - ord 'A' + ord 'a')
+          | otherwise = c
+
+--- Converts a (hexadecimal) digit character into an integer.
+digitToInt :: Char -> Int
+digitToInt c
+  | isDigit c                            =  ord c - ord '0'
+  | ord c >= ord 'A' && ord c <= ord 'F' =  ord c - ord 'A' + 10
+  | ord c >= ord 'a' && ord c <= ord 'f' =  ord c - ord 'a' + 10
+  | otherwise  =  error "Char.digitToInt: argument is not a digit"
+
+--- Converts an integer into a (hexadecimal) digit character.
+intToDigit :: Int -> Char
+intToDigit i
+  | i >= 0  && i <=  9  =  chr (ord '0' + i)
+  | i >= 10 && i <= 15  =  chr (ord 'A' + i - 10)
+  | otherwise           =  error "Char.intToDigit: argument not a digit value"
+
diff --git a/src/lib/Curry/Module/Dequeue.curry b/src/lib/Curry/Module/Dequeue.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Dequeue.curry
@@ -0,0 +1,99 @@
+------------------------------------------------------------------------------
+--- An implementation of double-ended queues supporting access at both
+--- ends in constant amortized time.
+---
+--- @author Bernd Brassel, Olaf Chitil, Michael Hanus, Sebastian Fischer
+--- @version October 2006
+------------------------------------------------------------------------------
+
+module Dequeue(Queue,empty,isEmpty,deqHead,deqLast,cons,deqTail,snoc,deqInit,
+               listToDeq,deqToList,deqReverse,deqLength,rotate,
+               matchHead,matchLast)
+ where
+
+--- The datatype of a queue.
+data Queue a = S Int [a] Int [a]
+
+--- The empty queue.
+empty :: Queue _
+empty = S 0 [] 0 []
+
+--- Is the queue empty?
+isEmpty :: Queue _ -> Bool
+isEmpty (S lenf _ lenr _) = lenf+lenr==0
+
+--- The first element of the queue.
+deqHead :: Queue a -> a
+deqHead (S lenf f _ r) = head (if lenf==0 then r else f)
+
+--- The last element of the queue.
+deqLast :: Queue a -> a
+deqLast (S _ f lenr r) = head (if lenr==0 then f else r)
+
+--- Inserts an element at the front of the queue.
+cons :: a -> Queue a -> Queue a
+cons x (S lenf f lenr r) = check (lenf+1) (x:f) lenr r
+ 
+--- Removes an element at the front of the queue.
+deqTail :: Queue a -> Queue a
+deqTail (S _ [] _ _) = empty
+deqTail (S lenf (_:fs) lenr r) = deqReverse (check lenr r (lenf-1) fs)
+
+--- Inserts an element at the end of the queue.
+snoc :: a -> Queue a -> Queue a
+snoc x (S lenf f lenr r) = deqReverse (check (lenr+1) (x:r) lenf f)
+
+--- Removes an element at the end of the queue.
+deqInit :: Queue a -> Queue a
+deqInit (S _ _ _ []) = empty
+deqInit (S lenf f lenr (_:rs)) = check lenf f (lenr-1) rs
+
+--- Reverses a double ended queue.
+deqReverse :: Queue a -> Queue a
+deqReverse (S lenf f lenr r) = S lenr r lenf f
+
+check :: Int -> [a] -> Int -> [a] -> Queue a
+check lenf f lenr r 
+  | lenf<=3*lenr+1 = S lenf f lenr r 
+  | otherwise = S lenf' f' lenr' r'
+  where
+    len = lenf+lenr
+    lenf' = len `div` 2
+    lenr' = len - lenf'
+    (f',rf') = splitAt lenf' f 
+    r' = r++reverse rf'
+
+--- Transforms a list to a double ended queue.
+listToDeq :: [a] -> Queue a
+listToDeq xs = check (length xs) xs 0 []
+
+--- Transforms a double ended queue to a list.
+deqToList :: Queue a -> [a]
+deqToList (S _ xs _ ys) = xs ++ reverse ys
+
+--- Returns the number of elements in the queue.
+deqLength :: Queue _ -> Int
+deqLength (S lenf _ lenr _) = lenf+lenr
+
+--- Moves the first element to the end of the queue.
+rotate :: Queue a -> Queue a
+rotate q = snoc (deqHead q) (deqTail q)
+
+--- Matches the front of a queue.
+--- <code>matchHead q</code> is equivalent to
+--- <code>if isEmpty q then Nothing else Just (deqHead q,deqTail q)</code>
+--- but more efficient.
+matchHead :: Queue a -> Maybe (a,Queue a)
+matchHead (S _ [] _ []) = Nothing
+matchHead (S _ [] _ [x]) = Just (x,empty)
+matchHead (S lenf (x:xs) lenr r)
+  = Just (x,deqReverse (check lenr r (lenf-1) xs))
+
+--- Matches the end of a queue.
+--- <code>matchLast q</code> is equivalent to
+--- <code>if isEmpty q then Nothing else Just (deqLast q,deqInit q)</code>
+--- but more efficient.
+matchLast :: Queue a -> Maybe (a,Queue a)
+matchLast (S _ [] _ []) = Nothing
+matchLast (S _ [x] _ []) = Just (x,empty)
+matchLast (S lenf f lenr (x:xs)) = Just (x,check lenf f (lenr-1) xs)
diff --git a/src/lib/Curry/Module/Directory.curry b/src/lib/Curry/Module/Directory.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Directory.curry
@@ -0,0 +1,95 @@
+--- Library for accessing the directory structure of the
+--- underlying operating system.
+---
+--- @author Michael Hanus
+--- @version March 2008
+
+module Directory(doesFileExist,doesDirectoryExist,fileSize,
+                 getModificationTime,
+                 getCurrentDirectory,setCurrentDirectory,
+                 getDirectoryContents,createDirectory,
+                 removeFile,removeDirectory,renameFile,renameDirectory) where
+
+import Time(ClockTime)
+
+
+--- Returns true if the argument is the name of an existing file.
+doesFileExist :: String -> IO Bool
+doesFileExist fname = prim_doesFileExist $## fname
+
+prim_doesFileExist :: String -> IO Bool
+prim_doesFileExist external
+
+--- Returns true if the argument is the name of an existing directory.
+doesDirectoryExist :: String -> IO Bool
+doesDirectoryExist dir = prim_doesDirectoryExist $## dir
+
+prim_doesDirectoryExist :: String -> IO Bool
+prim_doesDirectoryExist external
+
+--- Returns the size of the file.
+fileSize :: String -> IO Int
+fileSize fname = prim_fileSize $## fname
+
+prim_fileSize :: String -> IO Int
+prim_fileSize external
+
+--- Returns the modification time of the file.
+getModificationTime :: String -> IO ClockTime
+getModificationTime fname = prim_getModificationTime $## fname
+
+prim_getModificationTime :: String -> IO ClockTime
+prim_getModificationTime external
+
+--- Returns the current working directory.
+getCurrentDirectory :: IO String
+getCurrentDirectory external
+
+--- Sets the current working directory.
+setCurrentDirectory :: String -> IO ()
+setCurrentDirectory dir = prim_setCurrentDirectory $## dir
+
+prim_setCurrentDirectory :: String -> IO ()
+prim_setCurrentDirectory external
+
+--- Returns the list of all entries in a directory.
+getDirectoryContents :: String -> IO [String]
+getDirectoryContents dir = prim_getDirectoryContents $## dir
+
+prim_getDirectoryContents :: String -> IO [String]
+prim_getDirectoryContents external
+
+--- Creates a new directory with the given name.
+createDirectory :: String -> IO ()
+createDirectory dir = prim_createDirectory $## dir
+
+prim_createDirectory :: String -> IO ()
+prim_createDirectory external
+
+--- Deletes a file from the file system.
+removeFile :: String -> IO ()
+removeFile file = prim_removeFile $## file
+
+prim_removeFile :: String -> IO ()
+prim_removeFile external
+
+--- Deletes a directory from the file system.
+removeDirectory :: String -> IO ()
+removeDirectory dir = prim_removeDirectory $## dir
+
+prim_removeDirectory :: String -> IO ()
+prim_removeDirectory external
+
+--- Renames a file.
+renameFile :: String -> String -> IO ()
+renameFile file1 file2 = (prim_renameFile $## file1) $## file2
+
+prim_renameFile :: String -> String -> IO ()
+prim_renameFile external
+
+--- Renames a directory.
+renameDirectory :: String -> String -> IO ()
+renameDirectory dir1 dir2 = (prim_renameDirectory $## dir1) $## dir2
+
+prim_renameDirectory :: String -> String -> IO ()
+prim_renameDirectory external
diff --git a/src/lib/Curry/Module/Directory.hs.include b/src/lib/Curry/Module/Directory.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Directory.hs.include
@@ -0,0 +1,49 @@
+[ForFunction "prim_doesFileExist"
+,ForFunction "prim_doesDirectoryExist"
+,ForFunction "prim_fileSize"
+,ForFunction "prim_getModificationTime"
+,ForFunction "prim_getDirectoryContents"
+]
+
+import System.Time
+import System.Directory
+import System.IO
+
+prim_doesFileExist :: C_String -> Result (C_IO C_Bool)
+prim_doesFileExist = ioFunc1 doesFileExist
+
+prim_doesDirectoryExist :: C_String -> Result (C_IO C_Bool)
+prim_doesDirectoryExist = ioFunc1 doesDirectoryExist
+
+prim_fileSize :: C_String -> Result (C_IO C_Int)
+prim_fileSize = ioFunc1 (\s->do h <- openFile s ReadMode 
+                                i <- hFileSize h
+                                hClose h
+                                Prelude.return i)
+
+prim_getModificationTime :: C_String -> Result (C_IO C_ClockTime)
+prim_getModificationTime = ioFunc1 getModificationTime
+
+prim_getDirectoryContents :: C_String -> Result (C_IO (List C_String))
+prim_getDirectoryContents = ioFunc1 getDirectoryContents
+
+getCurrentDirectory :: Result (C_IO C_String)
+getCurrentDirectory = ioFunc0 System.Directory.getCurrentDirectory
+
+prim_createDirectory :: C_String -> Result (C_IO T0)
+prim_createDirectory = ioFunc1 createDirectory
+
+prim_removeFile :: C_String -> Result (C_IO T0)
+prim_removeFile = ioFunc1 removeFile
+
+prim_setCurrentDirectory :: C_String -> Result (C_IO T0)
+prim_setCurrentDirectory = ioFunc1 setCurrentDirectory
+
+prim_removeDirectory :: C_String -> Result (C_IO T0)
+prim_removeDirectory = ioFunc1 removeDirectory
+
+prim_renameFile :: C_String -> C_String -> Result (C_IO T0)
+prim_renameFile = ioFunc2 renameFile
+
+prim_renameDirectory :: C_String -> C_String -> Result (C_IO T0)
+prim_renameDirectory = ioFunc2 renameDirectory
diff --git a/src/lib/Curry/Module/Distribution.hs.include b/src/lib/Curry/Module/Distribution.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Distribution.hs.include
@@ -0,0 +1,32 @@
+[ForFunction "curryCompiler"
+,ForFunction "curryCompilerMajorVersion"
+,ForFunction "curryCompilerMinorVersion"
+,ForFunction "curryRuntime"
+,ForFunction "curryRuntimeMajorVersion"
+,ForFunction "curryRuntimeMinorVersion"
+,ForFunction "installDir"
+]
+
+import qualified InstallDir as ID
+
+curryCompiler :: Result C_String
+curryCompiler _ = toCurry "kics"
+
+curryCompilerMajorVersion :: Result C_Int
+curryCompilerMajorVersion _ = 0
+
+curryCompilerMinorVersion :: Result C_Int
+curryCompilerMinorVersion _ = 9854
+
+installDir :: Result C_String
+installDir _ = toCurry (ID.installDir)
+
+curryRuntime :: Result C_String
+curryRuntime _ = toCurry "ghc"
+
+curryRuntimeMajorVersion :: Result C_Int
+curryRuntimeMajorVersion _ = 6
+
+curryRuntimeMinorVersion :: Result C_Int
+curryRuntimeMinorVersion _ = 8
+
diff --git a/src/lib/Curry/Module/EasyCheck.curry b/src/lib/Curry/Module/EasyCheck.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/EasyCheck.curry
@@ -0,0 +1,387 @@
+--- Lightweight, automated, specification-based testing of Curry programs.
+--- Currently, EasyCheck is only supported by the Kiel Curry System (KiCS).
+--- See 
+--- <a href="http://www-ps.informatik.uni-kiel.de/currywiki/tools/easycheck"
+--- >here</a> for a tutorial introduction to EasyCheck.
+---
+--- @author Jan Christiansen and Sebastian Fischer
+---
+--- @version January 2008
+---
+module EasyCheck (
+
+  -- test specification
+  Prop, (==>), for, forValues,
+
+  test, is, isAlways, isEventually, prop, uniquely, always, eventually, 
+  failing, successful, deterministic, (-=-), (#), (<~>), (~>), (<~),
+
+  isSameSet, isSubsetOf,
+
+  -- test annotations
+  label, trivial, classify, collect, collectAs, 
+
+  -- test functions
+  easyCheck, easyCheck1, easyCheck2, easyCheck3, easyCheck4, easyCheck5,
+  verboseCheck, verboseCheck1, verboseCheck2, verboseCheck3, verboseCheck4,
+  verboseCheck5,
+
+  -- useful for other tools accessing EasyCheck
+  valuesOf, Result(..), result,
+
+  -- useful auxiliary functions
+  diagonal
+
+  ) where
+
+import List             ( nub, group, intersperse, (\\) )
+import Sort             ( leqList, leqString, mergeSort )
+import Meta             ( searchTree )
+import Integer          ( abs )
+import Read             ( readNat )
+import RandomExternal   ( split, nextInt )
+
+infix  4 `isSameSet`, `isSubsetOf`
+infix  1 `is`, `isAlways`, `isEventually`, -=-, #, <~>, ~>, <~, `trivial`
+infixr 0 ==>
+
+
+data Test = Test Result [String] [String]
+
+data Result = Undef | Ok | Falsified [String] | Ambigious [Bool] [String]
+
+type Prop = [Test]
+
+notest :: Test
+notest = Test Undef [] []
+
+result :: Test -> Result
+result (Test r _ _) = r
+
+setResult :: Result -> Test -> Test
+setResult res (Test _ s a) = Test res a s
+
+args, stamp :: Test -> [String]
+args  (Test _ a _) = a
+stamp (Test _ _ s) = s
+
+updArgs, updStamp :: ([String] -> [String]) -> Test -> Test
+updArgs  upd (Test r a s) = Test r (upd a) s
+updStamp upd (Test r a s) = Test r a (upd s)
+
+-- Test Specification
+
+--- Specify a property as predicate on the list of nondeterministic results.
+test :: a -> ([a] -> Bool) -> Prop
+test x f = [setResult res notest]
+ where
+  xs  = valuesOf x
+  res = case valuesOf (f xs) of
+          [True]  -> Ok
+          [False] -> Falsified (map show xs)
+          bs      -> Ambigious bs (map show xs)
+
+--- Specify a property as predicate that must hold for
+--- the unique result, all results or any result.
+is, isAlways, isEventually :: a -> (a -> Bool) -> Prop
+is x f = test x (\xs -> case xs of [y] -> f y; _ -> False)
+isAlways x  = test x . all
+isEventually x = test x . any
+
+--- List boolean value to property.
+prop, uniquely, always, eventually :: Bool -> Prop
+prop       = uniquely
+uniquely   = (`is`id)
+always     = (`isAlways`id)
+eventually = (`isEventually`id)
+
+--- Properties on the number of results.
+failing, successful, deterministic :: _ -> Prop
+failing x = test x null
+successful x = test x (not . null)
+deterministic x = x `is` const True
+
+--- Specify the number of different results.
+(#) :: _ -> Int -> Prop
+x # n = test x ((n==) . length . nub)
+
+--- Deterministic equality.
+--- False if any argument is non-deterministic or fails.
+(-=-) :: a -> a -> Prop
+x -=- y = (x,y) `is` uncurry (==)
+
+--- Three kinds of "Nondeterministic equality".
+(<~>), (~>), (<~) :: a -> a -> Prop
+x <~> y = test x (isSameSet (valuesOf y))
+x  ~> y = test x (isSubsetOf (valuesOf y))
+x <~  y = test x (`isSubsetOf` (valuesOf y))
+
+isSameSet, isSubsetOf, subset :: [a] -> [a] -> Bool
+xs `isSameSet` ys = xs' `subset` ys' && ys' `subset` xs'
+ where xs' = nub xs; ys' = nub ys
+xs `isSubsetOf` ys = nub xs `subset` ys
+xs `subset` ys = null (xs\\ys)
+
+--- Implication operator to reject invalid test input.
+(==>) :: Bool -> Prop -> Prop
+True  ==> p = p
+False ==> _ = [notest]
+
+forAll :: (b -> Prop) -> a -> (a -> b) -> Prop
+forAll c x f = forAllValues c (valuesOf x) f
+
+forAllValues :: (b -> Prop) -> [a] -> (a -> b) -> Prop
+forAllValues c xs f
+  = diagonal [[ updArgs (show y:) t | t <- c (f y) ] | y <- xs ]
+
+--- Specify a custom input generator for a property.
+for :: a -> (a -> Prop) -> Prop
+for = forAll id
+
+forValues :: [a] -> (a -> Prop) -> Prop
+forValues = forAllValues id
+
+-- Test Annotations
+
+--- Add a label to a property that is shown in the test summary.
+label :: String -> Prop -> Prop
+label = map . updStamp . (:)
+
+--- Add a label to a property conditionally.
+classify :: Bool -> String -> Prop -> Prop
+classify True  name = label name
+classify False _    = id
+
+--- Add the label 'trivial' to a property conditionally.
+trivial :: Bool -> Prop -> Prop
+trivial = (`classify`"trivial")
+
+--- Add a string representation of given value as a label to a property. 
+collect :: a -> Prop -> Prop
+collect = label . show
+
+--- Like 'collect' but with discriminating prefix.
+collectAs :: String -> a -> Prop -> Prop
+collectAs name = label . ((name++": ")++) . show
+
+-- Test Functions
+
+data Config = Config Int Int (Int -> [String] -> String)
+
+maxTest, maxFail :: Config -> Int
+maxTest (Config n _ _) = n
+maxFail (Config _ n _) = n
+
+every :: Config -> Int -> [String] -> String
+every (Config _ _ f) = f
+
+setEvery :: (Int -> [String] -> String) -> Config -> Config
+setEvery f (Config n m _) = Config n m f
+
+easy :: Config
+easy = Config 100 1000
+        (\n _ -> let s = ' ':show (n+1) in s ++ [ chr 8 | _ <- s ])
+
+verbose :: Config
+verbose = setEvery (\n xs -> show n ++ ":\n" ++ unlines xs) easy
+
+--- Test a property and print a summary.
+easyCheck, verboseCheck :: Prop -> IO ()
+easyCheck    = check easy
+verboseCheck = check verbose
+
+suc :: (a -> Prop) -> (b -> a) -> Prop
+suc n = forAll n unknown
+
+easyCheck1 :: (_ -> Prop) -> IO ()
+easyCheck1 = easyCheck . suc id
+
+easyCheck2 :: (_ -> _ -> Prop) -> IO ()
+easyCheck2 = easyCheck . suc (suc id)
+
+easyCheck3 :: (_ -> _ -> _ -> Prop) -> IO ()
+easyCheck3 = easyCheck . suc (suc (suc id))
+
+easyCheck4 :: (_ -> _ -> _ -> _ -> Prop) -> IO ()
+easyCheck4 = easyCheck . suc (suc (suc (suc id)))
+
+easyCheck5 :: (_ -> _ -> _ -> _ -> _ -> Prop) -> IO ()
+easyCheck5 = easyCheck . suc (suc (suc (suc (suc id))))
+
+verboseCheck1 :: (_ -> Prop) -> IO ()
+verboseCheck1 = verboseCheck . suc id
+
+verboseCheck2 :: (_ -> _ -> Prop) -> IO ()
+verboseCheck2 = verboseCheck . suc (suc id)
+
+verboseCheck3 :: (_ -> _ -> _ -> Prop) -> IO ()
+verboseCheck3 = verboseCheck . suc (suc (suc id))
+
+verboseCheck4 :: (_ -> _ -> _ -> _ -> Prop) -> IO ()
+verboseCheck4 = verboseCheck . suc (suc (suc (suc id)))
+
+verboseCheck5 :: (_ -> _ -> _ -> _ -> _ -> Prop) -> IO ()
+verboseCheck5 = verboseCheck . suc (suc (suc (suc (suc id))))
+
+
+check :: Config -> Prop -> IO ()
+check config p = do
+  isOrBased <- evalModeIsOrBased
+  if isOrBased then tests config p 0 0 []
+   else putStrLn $ unlines
+    ["","EasyCheck must be run without suspending computations.",""
+    ,"Please",""
+    ," - type ':set or' at the command prompt in kicsi or"
+    ," - put 'ChoiceMode=OrBased' in your ~/.kicsrc file",""
+    ,"to enable this mode for this session or for all sessions respectively."]
+
+tests :: Config -> [Test] -> Int -> Int -> [[String]] -> IO ()
+tests _ [] ntest _ stamps = done "Passed" ntest stamps
+tests config (t:ts) ntest nfail stamps
+  | ntest == maxTest config = done "OK, passed" ntest stamps
+  | nfail == maxFail config = done "Arguments exhausted after" ntest stamps
+  | otherwise = do
+      putStr (every config ntest (args t))
+      case result t of
+        Undef -> tests config ts ntest (nfail+1) stamps
+        Ok    -> tests config ts (ntest+1) nfail (stamp t:stamps)
+        Falsified results -> putStr $
+          "Falsified by " ++ nth (ntest+1) ++ " test" ++
+          (if null (args t) then "." else ".\nArguments:") ++ "\n" ++
+          unlines (args t) ++
+          if null results then "no result\n"
+           else "Results:\n" ++ unlines results
+        Ambigious bs results -> putStr $
+          "Ambigious property yields " ++ show bs ++ " for " ++ 
+          nth (ntest+1) ++ " test" ++
+          (if null (args t) then "." else ".\nArguments:") ++ "\n" ++
+          unlines (args t) ++
+          if null results then "no result\n"
+           else "Results:\n" ++ unlines results
+
+nth :: Int -> String
+nth n = case n of 1 -> "first"; 2 -> "second"; 3 -> "third"; _ -> show n++ "th"
+
+done :: String -> Int -> [[String]] -> IO ()
+done mesg ntest stamps = do
+  putStr $ mesg ++ " " ++ show ntest ++ " test"
+        ++ (if ntest >= 2 then "s" else "") ++ table
+ where
+  table = display
+        . map entry
+        . reverse
+        . mergeSort (leqPair (<=) (leqList leqString))
+        . map pairLength
+        . group
+        . mergeSort (leqList leqString)
+        . filter (not . null)
+        $ stamps
+
+  display []         = ".\n"
+  display [x]        = " - " ++ x ++ ".\n"
+  display xs@(_:_:_) = ".\n" ++ unlines (map (++".") xs)
+
+  pairLength xss@(xs:_) = (length xss,xs)
+
+  entry (n,xs) = percentage n ntest ++ " " ++ concat (intersperse ", " xs)
+
+  percentage n m = let s = show ((100*n)`div`m)
+                    in replicate (3-length s) ' ' ++ s ++ "%"
+
+-- Auxiliary Functions
+
+leqPair :: (a -> a -> Bool) -> (b -> b -> Bool) -> ((a,b) -> (a,b) -> Bool)
+leqPair leqa leqb (x1,y1) (x2,y2)
+  | x1 == x2  = leqb y1 y2
+  | otherwise = leqa x1 x2
+
+leList :: (a -> a -> Bool) -> [a] -> [a] -> Bool
+leList _  []     []     = False
+leList _  []     (_:_)  = True
+leList _  (_:_)  []     = False
+leList le (x:xs) (y:ys) = le x y || x == y && leList le xs ys
+
+valuesOf :: a -> [a]
+valuesOf =
+  rndLevelDiagFlat 3 2008 .
+  searchTree . (id$##)
+
+--- randomized diagonalization of levels. 
+---
+--- @param rs random seeds
+--- @param t search tree
+--- @return enumeration of values in given search tree
+---
+rndLevelDiag :: Int -> SearchTree a -> [a]
+rndLevelDiag rnd t =
+  [ x | Value x <- diagonal (rndLevels rnd [t]) ]
+
+rndLevels :: Int -> [SearchTree a] -> [[SearchTree a]]
+rndLevels rnd ts =
+  if null ts then []
+   else ts : rndLevels r (concat (zipWith shuffle rs [ us | Choice us <- ts ]))
+ where
+  r:rs = split rnd
+
+--- randomized diagonalization of levels with flatening. 
+
+rndLevelDiagFlat :: Int -> Int -> SearchTree a -> [a]
+rndLevelDiagFlat d rnd t = 
+  concat $ transpose (zipWith rndLevelDiag rs (flatRep d [t]))
+ where
+  rs = split rnd
+
+flat :: SearchTree a -> [SearchTree a]
+flat t = case t of
+           Value _ -> [t]
+           Choice ts -> ts
+           _ -> []
+
+flatRep :: Int -> [SearchTree a] -> [SearchTree a]
+flatRep n ts | n==0      = ts
+             | otherwise = flatRep (n-1) (concatMap flat ts)
+
+-- auxiliary functions
+
+--- list diagonalization. 
+--- Fairly merges (possibly infinite) list of (possibly infinite) lists.
+---
+--- @param ls lists of lists
+--- @return fair enumeration of all elements of inner lists of given lists
+---
+diagonal :: [[a]] -> [a]
+diagonal = concat . foldr diags []
+ where
+  diags []     ys = ys
+  diags (x:xs) ys = [x] : merge xs ys
+
+  merge []       ys     = ys
+  merge xs@(_:_) []     = map (:[]) xs
+  merge (x:xs)   (y:ys) = (x:y) : merge xs ys
+
+
+--- Computes a random permutation of the given list.
+---
+--- @param rnd random seed
+--- @param l lists to shuffle
+--- @return shuffled list
+---
+shuffle :: Int -> [a] -> [a]
+shuffle rnd l = shuffleWithLen (nextInt rnd) (length l) l
+
+shuffleWithLen :: [Int] -> Int -> [a] -> [a]
+shuffleWithLen (r:rs) len xs
+  | len == 0  = []
+  | otherwise = z : shuffleWithLen rs (len-1) (ys++zs)
+ where
+  (ys,z:zs) = splitAt (abs r `mod` len) xs
+
+
+transpose :: [[a]] -> [[a]]
+transpose [] = []
+transpose ([] : xss) = transpose xss
+transpose ((x:xs) : xss)
+  = (x : [h | (h:_) <- xss]) : transpose (xs : [t | (_:t) <- xss])
+
+evalModeIsOrBased :: IO Bool
+evalModeIsOrBased = getSearchTree (id$#unknown) >>= return . (==Value ())
diff --git a/src/lib/Curry/Module/FileGoodies.curry b/src/lib/Curry/Module/FileGoodies.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/FileGoodies.curry
@@ -0,0 +1,116 @@
+------------------------------------------------------------------------------
+--- A collection of useful operations when dealing with files.
+---
+--- @author Michael Hanus, Bernd Brassel
+--- @version July 2005
+------------------------------------------------------------------------------
+
+module FileGoodies(separatorChar,pathSeparatorChar,suffixSeparatorChar,
+                   isAbsolute,dirName,baseName,splitDirectoryBaseName,
+                   stripSuffix,fileSuffix,splitBaseName,splitPath,
+                   findFileInPath,lookupFileInPath,getFileInPath,
+                   replaceFileName) where
+
+import Directory
+import List(intersperse)
+
+--- The character for separating hierarchies in file names.
+--- On UNIX systems the value is '/'.
+separatorChar :: Char
+separatorChar = '/'
+
+--- The character for separating names in path expressions.
+--- On UNIX systems the value is ':'.
+pathSeparatorChar :: Char
+pathSeparatorChar = ':'
+
+--- The character for separating suffixes in file names.
+--- On UNIX systems the value is '.'.
+suffixSeparatorChar :: Char
+suffixSeparatorChar = '.'
+
+--- Is the argument an absolute name?
+isAbsolute :: String -> Bool
+isAbsolute (c:_) = c == separatorChar
+
+--- Extracts the directoy prefix of a given (Unix) file name.
+--- Returns "." if there is no prefix.
+dirName :: String -> String
+dirName name = fst (splitDirectoryBaseName name)
+
+--- Extracts the base name without directoy prefix of a given (Unix) file name.
+baseName :: String -> String
+baseName name = snd (splitDirectoryBaseName name)
+
+--- Splits a (Unix) file name into the directory prefix and the base name.
+--- The directory prefix is "." if there is no real prefix in the name.
+splitDirectoryBaseName :: String -> (String,String)
+splitDirectoryBaseName name =
+  let (rbase,rdir) = break (==separatorChar) (reverse name) in
+  if null rdir then (".",reverse rbase)
+               else (reverse (tail rdir), reverse rbase)
+
+--- Strips a suffix (the last suffix starting with a dot) from a file name.
+stripSuffix :: String -> String
+stripSuffix = fst . splitBaseName
+
+--- Yields the suffix (the last suffix starting with a dot) from given file name.
+fileSuffix :: String -> String
+fileSuffix = snd . splitBaseName
+
+--- Splits a file name into prefix and suffix (the last suffix starting with a dot 
+--- and the rest).
+splitBaseName :: String -> (String,String)
+splitBaseName name = let (rsuffix,rbase) = break (==suffixSeparatorChar) (reverse name) in
+  if null rbase || elem separatorChar rsuffix
+  then (name,"")
+  else (reverse (tail rbase),reverse rsuffix)
+
+--- Splits a path string into list of directory names.
+splitPath :: String -> [String]
+splitPath [] = []
+splitPath (x:xs) = let (ys,zs) = break (==pathSeparatorChar) (x:xs)
+                    in if null zs then [ys]
+                                  else ys : splitPath (tail zs)
+
+--- Included for backward compatibility.
+--- Use <code>lookupFileInPath</code> instead!
+findFileInPath :: String -> [String] -> [String] -> IO (Maybe String)
+findFileInPath = lookupFileInPath
+
+--- Looks up the first file with a possible suffix in a list of directories.
+--- Returns Nothing if such a file does not exist.
+lookupFileInPath :: String -> [String] -> [String] -> IO (Maybe String)
+lookupFileInPath file suffixes path =
+  if isAbsolute file
+  then lookupFirstFileWithSuffix file suffixes
+  else lookupFirstFile path
+ where
+   lookupFirstFile [] = return Nothing
+   lookupFirstFile (dir:dirs) = do
+     mbfile <- lookupFirstFileWithSuffix (dir++separatorChar:file) suffixes
+     maybe (lookupFirstFile dirs) (return . Just) mbfile
+
+   lookupFirstFileWithSuffix _ [] = return Nothing
+   lookupFirstFileWithSuffix f (suf:sufs) = do
+     let fsuf = f++suf
+     exfile <- doesFileExist fsuf
+     if exfile then return (Just fsuf)
+               else lookupFirstFileWithSuffix f sufs
+
+--- Gets the first file with a possible suffix in a list of directories.
+--- An error message is delivered if there is no such file.
+getFileInPath :: String -> [String] -> [String] -> IO String
+getFileInPath file suffixes path = do
+  mbfile <- lookupFileInPath file suffixes path
+  maybe (error $ "File "++file++" not found in path "++
+                 concat (intersperse [pathSeparatorChar] path))
+        return
+        mbfile
+
+
+replaceFileName :: (String -> String) -> String -> String
+replaceFileName f s = let (dir,fn) = splitDirectoryBaseName s
+                  in case dir of
+                      "." -> f fn
+                      _   -> dir++separatorChar:f fn
diff --git a/src/lib/Curry/Module/FiniteMap.curry b/src/lib/Curry/Module/FiniteMap.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/FiniteMap.curry
@@ -0,0 +1,695 @@
+-----------------------------------------------------------------------------
+--- A finite map is an efficient purely functional data structure 
+--- to store a mapping from keys to values.
+--- In order to store the mapping efficiently, an order predicate 
+--- has to be given. 
+---
+--- Example: To Store a mapping from Int -> String, the finite map needs
+--- a boolean predicate like (<).
+--- This version was ported from Haskell.
+---
+--- @author Frank Huch, Bernd Brassel
+--- @version May 2005
+-----------------------------------------------------------------------------
+
+module FiniteMap (
+        FM,                -- abstract type
+
+        emptyFM, 
+        unitFM, 
+        listToFM,
+
+        addToFM,
+        addToFM_C,
+        addListToFM,
+        addListToFM_C,
+        delFromFM,
+        delListFromFM,
+        splitFM,
+
+        plusFM,
+        plusFM_C,
+        minusFM,
+        intersectFM,
+        intersectFM_C,
+
+        foldFM, 
+        mapFM, 
+        filterFM, 
+
+        sizeFM, 
+        eqFM,
+        isEmptyFM, 
+        elemFM, 
+        lookupFM, 
+        lookupWithDefaultFM,
+        keyOrder,
+
+        fmToList, 
+        keysFM, 
+        eltsFM,
+        fmSortBy,
+
+        minFM,maxFM,updFM, fmToListPreOrder
+    ) where
+
+import Maybe
+
+--- order predicates are boolean 
+type LeKey key = key -> key -> Bool
+
+-----------------------------------------------
+--        BUILDING finite maps
+-----------------------------------------------
+
+--- The empty finite map.
+--- @param le an order predicate on the keys.
+--- @result an empty finite map
+
+emptyFM :: (LeKey key) -> FM key _
+emptyFM le = FM le EmptyFM
+
+--- Construct a finite map with only a single element.
+--- @param le an order predicate on the keys.
+--- @param key key of 
+--- @param elt the single element to form
+--- @result a finite map with only a single element
+unitFM :: (LeKey key) -> key -> elt -> FM key elt
+unitFM le key elt = FM le (unitFM' key elt)
+
+unitFM' key elt = Branch key elt 1 EmptyFM EmptyFM
+
+
+--- Builts a finite map from given list of tuples (key,element).
+--- For multiple occurences of key, the last corresponding 
+--- element of the list is taken.
+--- @param le an order predicate on the keys.
+listToFM :: (LeKey key) -> [(key,elt)] -> FM key elt
+listToFM le = addListToFM (emptyFM le)
+
+-----------------------------------------------
+--        ADDING AND DELETING
+-----------------------------------------------
+
+--- Throws away any previous binding and stores the new one given.
+
+addToFM :: FM key elt -> key -> elt  -> FM key elt
+addToFM (FM le fm) key elt = FM le (addToFM' le fm key elt)
+
+addToFM' le fm key elt = addToFM_C' le (\ _ new -> new) fm key elt
+
+addToFM_C' _ _ EmptyFM key elt = unitFM' key elt
+addToFM_C' le combiner (Branch key elt size fm_l fm_r) new_key new_elt
+  = if le new_key key
+    then mkBalBranch key elt (addToFM_C' le combiner fm_l new_key new_elt) fm_r
+    else
+      if new_key==key
+      then Branch new_key (combiner elt new_elt) size fm_l fm_r
+      else mkBalBranch key elt fm_l (addToFM_C' le combiner fm_r new_key new_elt)
+
+
+--- Throws away any previous bindings and stores the new ones given.
+--- The items are added starting with the first one in the list
+addListToFM :: FM key elt -> [(key,elt)] -> FM key elt
+addListToFM (FM le fm) key_elt_pairs =
+  FM le (addListToFM' le fm key_elt_pairs)
+
+addListToFM' le fm key_elt_pairs =
+  addListToFM_C' le (\ _ new -> new) fm key_elt_pairs
+
+addListToFM_C' le combiner fm key_elt_pairs
+  = foldl add fm key_elt_pairs        -- foldl adds from the left
+  where
+    add fmap (key,elt) = addToFM_C' le combiner fmap key elt
+
+
+--- Instead of throwing away the old binding, 
+--- addToFM_C combines the new element with the old one.
+--- @param combiner a function combining to elements
+--- @param fm a finite map 
+--- @param key the key of the elements to be combined
+--- @param elt the new element
+--- @result a modified finite map
+addToFM_C :: (elt -> elt -> elt) -> FM key elt -> key -> elt
+                                 -> FM key elt
+addToFM_C combiner (FM le fm) key elt =  
+  FM le (addToFM_C' le combiner fm key elt)
+
+--- Combine with a list of tuples (key,element), cf. addToFM_C
+addListToFM_C :: (elt -> elt -> elt) -> FM key elt -> [(key,elt)]
+                                      -> FM key elt
+addListToFM_C combiner (FM le fm) key_elt_pairs =
+  FM le (addListToFM_C' le combiner fm key_elt_pairs)
+
+--- Deletes key from finite map.
+--- Deletion doesn't complain if you try to delete something
+--- which isn't there
+delFromFM :: FM key elt -> key   -> FM key elt
+delFromFM (FM le fm) del_key = FM le (delFromFM' le fm del_key)
+
+delFromFM' _ EmptyFM _ = EmptyFM
+delFromFM' le (Branch key elt _ fm_l fm_r) del_key
+  = if le del_key key
+    then mkBalBranch key elt (delFromFM' le fm_l del_key) fm_r
+    else
+      if del_key==key
+        then glueBal le fm_l fm_r
+        else mkBalBranch key elt fm_l (delFromFM' le fm_r del_key)
+
+--- Deletes a list of keys from finite map.
+--- Deletion doesn't complain if you try to delete something
+--- which isn't there
+delListFromFM        :: FM key elt -> [key] -> FM key elt
+delListFromFM (FM le fm) keys = FM le (foldl (delFromFM' le) fm keys)
+
+--- Applies a function to element bound to given key.
+updFM :: FM a b -> a -> (b -> b) -> FM a b
+updFM (FM lt fm) i f = FM lt (upd fm)
+  where
+    upd EmptyFM                          =  EmptyFM
+    upd (Branch k x h l r) 
+            | i==k       =  Branch k (f x) h l r   
+            | lt i k     =  Branch k x h (upd l) r  
+            | otherwise  =  Branch k x h l (upd r) 
+
+--- Combines delFrom and lookup.
+splitFM :: FM a b -> a -> Maybe (FM a b,(a,b))
+splitFM g v = maybe Nothing (\x->Just (delFromFM g v,(v,x))) (lookupFM g v)
+
+-------------------------------------------------
+-- COMBINING finite maps
+-------------------------------------------------
+
+--- Efficiently add key/element mappings of two maps into a single one.
+--- Bindings in right argument shadow those in the left
+plusFM :: FM key elt -> FM key elt -> FM key elt
+plusFM (FM le1 fm1) (FM _ fm2) = FM le1 (plusFM' le1 fm1 fm2)
+
+plusFM' _  EmptyFM fm2 = fm2
+plusFM' _  (Branch split_key1 elt1 s1 left1 right1) EmptyFM =
+  (Branch split_key1 elt1 s1 left1 right1)
+plusFM' le (Branch split_key1 elt1 s1 left1 right1)
+           (Branch split_key elt2 _ left right)
+  = mkVBalBranch le split_key elt2 (plusFM' le lts left) (plusFM' le gts right)
+  where
+    fm1 = Branch split_key1 elt1 s1 left1 right1
+    lts     = splitLT le fm1 split_key
+    gts     = splitGT le fm1 split_key
+
+--- Efficiently combine key/element mappings of two maps into a single one, 
+--- cf. addToFM_C
+plusFM_C :: (elt -> elt -> elt)
+                           -> FM key elt -> FM key elt -> FM key elt
+plusFM_C combiner (FM le1 fm1) (FM _ fm2) =
+  FM le1 (plusFM_C' le1 combiner fm1 fm2)
+
+plusFM_C' _  _        EmptyFM fm2 = fm2
+plusFM_C' _  _        (Branch split_key1 elt1 s1 left1 right1) EmptyFM =
+          Branch split_key1 elt1 s1 left1 right1
+plusFM_C' le combiner (Branch split_key1 elt1 s1 left1 right1)
+                      (Branch split_key elt2 _ left right)
+  = mkVBalBranch le split_key new_elt
+                 (plusFM_C' le combiner lts left)
+                 (plusFM_C' le combiner gts right)
+  where
+    fm1 = Branch split_key1 elt1 s1 left1 right1
+    lts     = splitLT le fm1 split_key
+    gts     = splitGT le fm1 split_key
+    new_elt = case lookupFM' le fm1 split_key of
+                Nothing   -> elt2
+                Just elt1' -> combiner elt1' elt2
+
+--- (minusFM a1 a2) deletes from a1 any bindings which are bound in a2
+minusFM :: FM key elt -> FM key elt -> FM key elt
+minusFM (FM le1 fm1) (FM _ fm2) = FM le1 (minusFM' le1 fm1 fm2)
+
+minusFM' _  EmptyFM _ = EmptyFM
+minusFM' _  (Branch split_key1 elt1 s1 left1 right1) EmptyFM =
+  Branch split_key1 elt1 s1 left1 right1
+minusFM' le (Branch split_key1 elt1 s1 left1 right1)
+            (Branch split_key _ _ left right)
+  = glueVBal le (minusFM' le lts left) (minusFM' le gts right)
+       -- The two can be way different, so we need glueVBal
+  where
+    fm1 = Branch split_key1 elt1 s1 left1 right1
+    lts = splitLT le fm1 split_key  -- NB gt and lt, so the equal ones
+    gts = splitGT le fm1 split_key  -- are not in either.
+
+--- Filters only those keys that are bound in both of the given maps.
+--- The elements will be taken from the second map.
+intersectFM :: FM key elt -> FM key elt -> FM key elt
+intersectFM (FM le1 fm1) (FM _ fm2) = FM le1 (intersectFM' le1 fm1 fm2)
+
+intersectFM' le fm1 fm2 = intersectFM_C' le (\ _ right -> right) fm1 fm2
+
+--- Filters only those keys that are bound in both of the given maps
+--- and combines the elements as in addToFM_C.
+intersectFM_C :: (elt -> elt -> elt2) -> FM key elt -> FM key elt -> FM key elt2
+
+intersectFM_C combiner (FM le1 fm1) (FM _ fm2) =
+  FM le1 (intersectFM_C' le1 combiner fm1 fm2)
+
+intersectFM_C' _  _        _        EmptyFM = EmptyFM
+intersectFM_C' _  _        EmptyFM (Branch _ _ _ _ _) = EmptyFM
+intersectFM_C' le combiner (Branch split_key1 elt1 s1 left1 right1)
+                           (Branch split_key elt2 _ left right)
+
+  | isJust maybe_elt1   -- split_elt *is* in intersection
+  = mkVBalBranch le split_key (combiner elt1' elt2) 
+                 (intersectFM_C' le combiner lts left)
+                 (intersectFM_C' le combiner gts right)
+
+  | otherwise           -- split_elt is *not* in intersection
+  = glueVBal le (intersectFM_C' le combiner lts left)
+                (intersectFM_C' le combiner gts right)
+
+  where
+    fm1 = Branch split_key1 elt1 s1 left1 right1
+    lts = splitLT le fm1 split_key      -- NB gt and lt, so the equal ones
+    gts = splitGT le fm1 split_key      -- are not in either.
+
+    maybe_elt1 = lookupFM' le fm1 split_key
+    Just elt1'  = maybe_elt1
+
+-------------------------------------------------------------
+--  MAPPING, FOLDING, FILTERING on finite maps
+-------------------------------------------------------------
+
+--- Folds finite map by given function.
+foldFM :: (key -> elt -> a -> a) -> a -> FM key elt -> a
+foldFM k z (FM le fm) = foldFM' le k z fm
+
+foldFM' _  _ z EmptyFM = z
+foldFM' le k z (Branch key elt _ fm_l fm_r)
+  = foldFM' le k (k key elt (foldFM' le k z fm_r)) fm_l
+
+--- Applies a given function on every element in the map.
+mapFM :: (key -> elt1 -> elt2) -> FM key elt1 -> FM key elt2
+mapFM f (FM le fm) = FM le (mapFM' le f fm)
+
+mapFM' _  _ EmptyFM = EmptyFM
+mapFM' le f (Branch key elt size fm_l fm_r)
+  = Branch key (f key elt) size (mapFM' le f fm_l) (mapFM' le f fm_r)
+
+--- Yields a new finite map with only those key/element pairs matching the
+--- given predicate.
+filterFM  :: (key -> elt -> Bool) -> FM key elt -> FM key elt
+filterFM p (FM le fm) = FM le (filterFM' le p fm)
+
+filterFM' _  _ EmptyFM = EmptyFM
+filterFM' le p (Branch key elt _ fm_l fm_r)
+  | p key elt          -- Keep the item
+  = mkVBalBranch le key elt (filterFM' le p fm_l) (filterFM' le p fm_r)
+
+  | otherwise          -- Drop the item
+  = glueVBal le (filterFM' le p fm_l) (filterFM' le p fm_r)
+
+-----------------------------------------------------
+-- INTERROGATING finite maps
+-----------------------------------------------------
+
+--- How many elements does given map contain?
+sizeFM :: FM _ _ -> Int
+sizeFM (FM _ EmptyFM)               = 0
+sizeFM (FM _ (Branch _ _ size _ _)) = size
+
+sizeFM' EmptyFM              = 0
+sizeFM' (Branch _ _ size _ _) = size
+
+
+--- Do two given maps contain the same key/element pairs?
+eqFM :: FM key elt -> FM key elt -> Bool
+fm_1 `eqFM` fm_2 =
+  (sizeFM   fm_1 == sizeFM   fm_2) &&   -- quick test
+  (fmToList fm_1 == fmToList fm_2)
+
+--- Is the given finite map empty?
+isEmptyFM        :: FM _ _ -> Bool
+isEmptyFM fm = sizeFM fm == 0
+
+--- Does given map contain given key?
+elemFM :: key -> FM key _ -> Bool
+key `elemFM` fm = isJust (lookupFM fm key)
+
+--- Retrieves element bound to given key
+lookupFM :: FM key elt -> key -> Maybe elt
+lookupFM (FM le fm) key = lookupFM' le fm key
+
+lookupFM' _  EmptyFM _   = Nothing
+lookupFM' le (Branch key elt _ fm_l fm_r) key_to_find
+  = if le key_to_find key
+    then lookupFM' le fm_l key_to_find
+    else if key_to_find==key
+         then Just elt
+         else lookupFM' le fm_r key_to_find
+
+
+--- Retrieves element bound to given key.
+--- If the element is not contained in map, return 
+--- default value.
+lookupWithDefaultFM :: FM key elt -> elt -> key -> elt
+lookupWithDefaultFM fm deflt key
+  = case lookupFM fm key of
+      Nothing -> deflt
+      Just elt -> elt
+
+--- Retrieves the ordering on which the given finite map is built.
+keyOrder :: FM key _ -> (key->key->Bool)
+keyOrder (FM lt _) = lt
+
+--- Retrieves the smallest key/element pair in the finite map 
+--- according to the basic key ordering.
+minFM :: FM a b -> Maybe (a,b)
+minFM = min . tree
+  where
+   min EmptyFM            = Nothing
+   min (Branch k x _ l _) | l==EmptyFM = Just (k,x)
+                          | otherwise  = min l
+
+--- Retrieves the greatest key/element pair in the finite map 
+--- according to the basic key ordering.
+maxFM :: FM a b -> Maybe (a,b)
+maxFM = max . tree
+  where
+    max EmptyFM            = Nothing
+    max (Branch k x _ _ r) | r==EmptyFM = Just (k,x)
+                           | otherwise  = max r
+
+
+
+----------------------------------------------------
+-- LISTIFYING: transform finite maps to lists
+----------------------------------------------------
+
+--- Builds a list of key/element pairs. The list is ordered 
+--- by the initially given order predicate on keys.
+fmToList        :: FM key elt -> [(key,elt)]
+fmToList fm = foldFM (\ key elt rest -> (key,elt) : rest) [] fm
+
+--- Retrieves a list of keys contained in finite map. 
+--- The list is ordered 
+--- by the initially given order predicate on keys.
+keysFM                :: FM key _ -> [key]
+keysFM fm   = foldFM (\ key _   rest -> key : rest)       [] fm
+
+--- Retrieves a list of elements contained in finite map. 
+--- The list is ordered 
+--- by the initially given order predicate on keys.
+eltsFM                :: FM _ elt -> [elt]
+eltsFM fm   = foldFM (\ _   elt rest -> elt : rest)       [] fm
+
+--- Retrieves list of key/element pairs in preorder of the internal tree.
+--- Useful for lists that will be retransformed into a tree or to match 
+--- any elements regardless of basic order.
+
+fmToListPreOrder :: FM key elt -> [(key,elt)]
+fmToListPreOrder (FM _ fm) = pre fm []
+   where
+     pre EmptyFM xs = xs
+     pre (Branch k x _ l r) xs = (k,x):pre l (pre r xs)
+
+--- Sorts a given list by inserting and retrieving from finite map.
+--- Duplicates are deleted.
+fmSortBy :: LeKey key -> [key] -> [key]
+fmSortBy p l = keysFM (listToFM p (zip l (repeat ())))
+
+-----------------------------------------------------
+-- internal Implementation
+-----------------------------------------------------
+
+data FM key elt = FM (LeKey key) (FiniteMap key elt)
+
+tree (FM _ fm) = fm
+
+
+data FiniteMap key elt
+  = EmptyFM
+  | Branch key elt             -- Key and elt stored here
+    Int{-STRICT-}              -- Size >= 1
+    (FiniteMap key elt)        -- Children
+    (FiniteMap key elt)
+
+toGT le x y = not (le x y) && x/=y
+
+isEmptyFM' fm = sizeFM' fm == 0
+
+-------------------------------------------------------------------------
+--                                                                        -
+--  The implementation of balancing                                     -
+--                                                                        -
+-------------------------------------------------------------------------
+-------------------------------------------------------------------------
+--                                                                        -
+--  Basic construction of a FiniteMap                                   -
+--                                                                        -
+-------------------------------------------------------------------------
+sIZE_RATIO :: Int
+sIZE_RATIO = 5
+
+mkBranch :: Int
+         -> key -> elt
+         -> FiniteMap key elt -> FiniteMap key elt
+         -> FiniteMap key elt
+
+mkBranch _{-which-} key elt fm_l fm_r =
+    let result = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
+    in
+      result
+      --    if sizeFM result <= 8 then
+      --     result
+      --    else
+      --      pprTrace ("mkBranch:"++(show which)) (ppr result) (
+      --      result
+      --      )
+  where
+    {-left_ok  = case fm_l of
+                 EmptyFM                         -> True
+                 Branch _ _ _ _ _  -> cmpWithBiggest_left_key key
+
+    cmpWithBiggest_left_key key' = le (fst (findMax fm_l)) key'
+
+    right_ok = case fm_r of
+                 EmptyFM                         -> True
+                 Branch _ _ _ _ _ -> cmpWithSmallest_right_key key
+
+    cmpWithSmallest_right_key key' = le key' (fst (findMin fm_r))
+
+    balance_ok = True -- sigh-}
+    left_size  = sizeFM' fm_l
+    right_size = sizeFM' fm_r
+
+
+    unbox :: Int -> Int
+    unbox x = x
+
+
+-------------------------------------------------------------------------
+--                                                                        -
+-- Balanced construction of a FiniteMap                                 -
+--                                                                        -
+-------------------------------------------------------------------------
+mkBalBranch :: key -> elt
+            -> FiniteMap key elt -> FiniteMap key elt
+            -> FiniteMap key elt
+
+mkBalBranch key elt fm_L fm_R
+
+  | size_l + size_r < 2
+  = mkBranch 1{-which-} key elt fm_L fm_R
+
+  | size_r > sIZE_RATIO * size_l        -- Right tree too big
+  = case fm_R of
+        Branch _ _ _ fm_rl fm_rr ->
+              if sizeFM' fm_rl < 2 * sizeFM' fm_rr
+                then single_L fm_L fm_R
+                else double_L fm_L fm_R
+        -- Other case impossible
+
+  | size_l > sIZE_RATIO * size_r        -- Left tree too big
+  = case fm_L of
+        Branch _ _ _ fm_ll fm_lr ->
+              if sizeFM' fm_lr < 2 * sizeFM' fm_ll
+                then single_R fm_L fm_R
+                else double_R fm_L fm_R
+        -- Other case impossible
+
+  | otherwise                                -- No imbalance
+  = mkBranch 2{-which-} key elt fm_L fm_R
+
+  where
+    size_l   = sizeFM' fm_L
+    size_r   = sizeFM' fm_R
+
+    single_L fm_l (Branch key_r elt_r _ fm_rl fm_rr)
+        = mkBranch 3{-which-} key_r elt_r (mkBranch 4{-which-} key elt fm_l fm_rl) fm_rr
+
+    double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rr)
+        = mkBranch 5{-which-} key_rl elt_rl (mkBranch 6{-which-} key   elt   fm_l   fm_rll)
+                                 (mkBranch 7{-which-} key_r elt_r fm_rlr fm_rr)
+
+    single_R (Branch key_l elt_l _ fm_ll fm_lr) fm_r
+        = mkBranch 8{-which-} key_l elt_l fm_ll (mkBranch 9{-which-} key elt fm_lr fm_r)
+
+    double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r
+        = mkBranch 10{-which-} key_lr elt_lr (mkBranch 11{-which-} key_l elt_l fm_ll  fm_lrl)
+                                 (mkBranch 12{-which-} key   elt   fm_lrr fm_r)
+
+
+mkVBalBranch :: (LeKey key)
+             -> key -> elt
+             -> FiniteMap key elt -> FiniteMap key elt
+             -> FiniteMap key elt
+
+-- Assert: in any call to (mkVBalBranch_C comb key elt l r),
+--           (a) all keys in l are < all keys in r
+--           (b) all keys in l are < key
+--           (c) all keys in r are > key
+
+mkVBalBranch le key elt EmptyFM fm_r = addToFM' le fm_r key elt
+mkVBalBranch le key elt (Branch key_l elt_l s_l fm_ll fm_lr) EmptyFM = 
+   addToFM' le (Branch key_l elt_l s_l fm_ll fm_lr) key elt
+  
+mkVBalBranch le key elt (Branch key_l elt_l s_l fm_ll fm_lr)
+                        (Branch key_r elt_r s_r fm_rl fm_rr)
+  | sIZE_RATIO * size_l < size_r
+  = mkBalBranch key_r elt_r (mkVBalBranch le key elt fm_l fm_rl) fm_rr
+
+  | sIZE_RATIO * size_r < size_l
+  = mkBalBranch key_l elt_l fm_ll (mkVBalBranch le key elt fm_lr fm_r)
+
+  | otherwise
+  = mkBranch 13{-which-} key elt fm_l fm_r
+
+  where
+    fm_l = Branch key_l elt_l s_l fm_ll fm_lr
+    fm_r = Branch key_r elt_r s_r fm_rl fm_rr
+    size_l = sizeFM' fm_l
+    size_r = sizeFM' fm_r
+
+-------------------------------------------------------------------------
+--                                                                        -
+-- Gluing two trees together                                            -
+--                                                                        -
+-------------------------------------------------------------------------
+glueBal :: (LeKey key)
+        -> FiniteMap key elt -> FiniteMap key elt
+        -> FiniteMap key elt
+
+glueBal le fm1 fm2 = 
+  if isEmptyFM' fm1
+    then fm2
+    else if isEmptyFM' fm2
+           then fm1
+           else 
+        -- The case analysis here (absent in Adams' program) is really to deal
+        -- with the case where fm2 is a singleton. Then deleting the minimum means
+        -- we pass an empty tree to mkBalBranch, which breaks its invariant.
+             let (mid_key1, mid_elt1) = findMax fm1
+                 (mid_key2, mid_elt2) = findMin fm2
+             in
+             if sizeFM' fm2 > sizeFM' fm1
+               then mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin le fm2)
+               else mkBalBranch mid_key1 mid_elt1 (deleteMax le fm1) fm2
+
+glueVBal :: (LeKey key)
+         -> FiniteMap key elt -> FiniteMap key elt
+         -> FiniteMap key elt
+
+glueVBal le fm_l fm_r = 
+  if isEmptyFM' fm_l
+    then fm_r
+    else if isEmptyFM' fm_r
+           then fm_l
+           else 
+             let Branch key_l elt_l _ fm_ll fm_lr = fm_l
+                 Branch key_r elt_r _ fm_rl fm_rr = fm_r
+                 --(mid_key_l,mid_elt_l) = findMax fm_l
+                 --(mid_key_r,mid_elt_r) = findMin fm_r
+                 size_l = sizeFM' fm_l
+                 size_r = sizeFM' fm_r
+             in
+               if sIZE_RATIO * size_l < size_r
+               then
+                 mkBalBranch key_r elt_r (glueVBal le fm_l fm_rl) fm_rr
+                else if sIZE_RATIO * size_r < size_l
+                    then
+                      mkBalBranch key_l elt_l fm_ll (glueVBal le fm_lr fm_r)
+
+                      -- We now need the same two cases as in glueBal above.
+                    else glueBal le fm_l fm_r
+  
+-------------------------------------------------------------------------
+--                                                                        -
+-- Local utilities                                                      -
+--                                                                        -
+-------------------------------------------------------------------------
+
+splitLT, splitGT :: (LeKey key) -> FiniteMap key elt -> key
+                    -> FiniteMap key elt
+
+-- splitLT fm split_key  =  fm restricted to keys <  split_key
+-- splitGT fm split_key  =  fm restricted to keys >  split_key
+
+splitLT _  EmptyFM _ = EmptyFM
+splitLT le (Branch key elt _ fm_l fm_r) split_key
+  = if le split_key key
+    then splitLT le fm_l split_key
+    else if split_key == key
+         then fm_l
+         else mkVBalBranch le key elt fm_l (splitLT le fm_r split_key)
+
+splitGT _  EmptyFM _ = EmptyFM
+splitGT le (Branch key elt _ fm_l fm_r) split_key
+  = if le split_key key
+    then mkVBalBranch le key elt (splitGT le fm_l split_key) fm_r
+    else if split_key == key
+         then fm_r
+         else splitGT le fm_r split_key
+
+findMin :: FiniteMap key elt -> (key,elt)
+findMin (Branch key elt _ EmptyFM _) = (key,elt)
+findMin (Branch _   _   _ (Branch key_l elt_l s_l fm_ll fm_lr)_) =
+      findMin (Branch key_l elt_l s_l fm_ll fm_lr)
+
+deleteMin :: (LeKey key) -> FiniteMap key elt -> FiniteMap key elt
+deleteMin _  (Branch _   _   _ EmptyFM fm_r) = fm_r
+deleteMin le (Branch key elt _ (Branch key_l elt_l s_l fm_ll fm_lr) fm_r) =
+  mkBalBranch key elt (deleteMin le (Branch key_l elt_l s_l fm_ll fm_lr))
+                         fm_r
+
+findMax :: FiniteMap key elt -> (key,elt)
+findMax (Branch key elt _ _ EmptyFM) = (key,elt)
+findMax (Branch _   _   _ _  (Branch key_r elt_r s_r fm_rl fm_rr)) =
+  findMax (Branch key_r elt_r s_r fm_rl fm_rr)
+
+deleteMax :: (LeKey key) -> FiniteMap key elt -> FiniteMap key elt
+deleteMax _  (Branch _   _   _ fm_l EmptyFM) = fm_l
+deleteMax le (Branch key elt _ fm_l (Branch key_r elt_r s_r fm_rl fm_rr)) =
+  mkBalBranch key elt fm_l
+              (deleteMax le (Branch key_r elt_r s_r fm_rl fm_rr))
+
+
+
+-------------------------------------------------------------------------
+--                                                                      -
+--   FiniteSets---a thin veneer                                         -
+--                                                                      -
+-------------------------------------------------------------------------
+type FiniteSet key = FM key ()
+emptySet         :: (LeKey key) -> FiniteSet key
+mkSet            :: (LeKey key) -> [key] -> FiniteSet key
+isEmptySet       :: FiniteSet _ -> Bool
+elementOf        :: key -> FiniteSet key -> Bool
+minusSet         :: FiniteSet key -> FiniteSet key -> FiniteSet key
+setToList        :: FiniteSet key -> [key]
+union            :: FiniteSet key -> FiniteSet key -> FiniteSet key
+
+emptySet = emptyFM
+mkSet le xs = listToFM le [ (x, ()) | x <- xs]
+isEmptySet = isEmptyFM
+elementOf = elemFM
+minusSet  = minusFM
+setToList = keysFM
+union = plusFM
+
+
diff --git a/src/lib/Curry/Module/Float.curry b/src/lib/Curry/Module/Float.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Float.curry
@@ -0,0 +1,170 @@
+------------------------------------------------------------------------------
+--- A collection of operations on floating point numbers.
+------------------------------------------------------------------------------
+
+module Float (
+  (*.),(/.),(+.),(-.),(<.),(>.),(<=.),(>=.),
+  
+  i2f, truncate, round,
+
+  sqrt, log, exp, sin, cos, tan, atan
+  ) where
+
+-- The operator declarations are similar to the standard arithmetic operators.
+
+infixl 7 *., /.
+infixl 6 +., -.
+infix  4 <., >., <=., >=.
+
+
+--- Addition on floats.
+
+-- Types of primitive arithmetic functions and predicates
+
+--- Adds two Floats.
+(+.)   :: Float -> Float -> Float
+x +. y = (prim_Float_plus $# x) $# y
+
+prim_Float_plus :: Float -> Float -> Float
+prim_Float_plus external
+
+--- Subtraction on floats.
+
+(-.)   :: Float -> Float -> Float
+x -. y = (prim_Float_minus $# x) $# y
+
+prim_Float_minus :: Float -> Float -> Float
+prim_Float_minus external
+
+--- Multiplication on floats.
+
+(*.)   :: Float -> Float -> Float
+x *. y = (prim_Float_times $# x) $# y
+
+prim_Float_times :: Float -> Float -> Float
+prim_Float_times external
+
+--- Division on floats.
+
+(/.)   :: Float -> Float -> Float
+x /. y = (prim_Float_divide $# x) $# y
+
+prim_Float_divide :: Float -> Float -> Float
+prim_Float_divide external
+
+--- Predicate "less than" on floats.
+
+(<.)   :: Float -> Float -> Bool
+x <. y = (prim_Float_lt $# x) $# y
+
+prim_Float_lt :: Float -> Float -> Bool
+prim_Float_lt external
+
+--- Predicate "greater than" on floats.
+
+(>.)   :: Float -> Float -> Bool
+x >. y = (prim_Float_gt $# x) $# y
+
+prim_Float_gt :: Float -> Float -> Bool
+prim_Float_gt external
+
+--- Predicate "less than or equal" on floats.
+
+(<=.)  :: Float -> Float -> Bool
+x <=. y = (prim_Float_leq $# x) $# y
+
+prim_Float_leq :: Float -> Float -> Bool
+prim_Float_leq external
+
+--- Predicate "greater than or equal" on floats.
+
+(>=.)  :: Float -> Float -> Bool
+x >=. y = (prim_Float_geq $# x) $# y
+
+prim_Float_geq :: Float -> Float -> Bool
+prim_Float_geq external
+
+
+--- Conversion function from integers to floats.
+
+i2f    :: Int -> Float
+i2f x = prim_i2f $# x
+
+prim_i2f :: Int -> Float
+prim_i2f external
+
+--- Conversion function from floats to integers.
+--- The result is the closest integer between the argument and 0.
+
+truncate :: Float -> Int
+truncate x = prim_truncate $# x
+
+prim_truncate :: Float -> Int
+prim_truncate external
+
+--- Conversion function from floats to integers.
+--- The result is the nearest integer to the argument.
+--- If the argument is equidistant between two integers,
+--- it is rounded to the closest even integer value.
+
+round :: Float -> Int
+round x = prim_round $# x
+
+prim_round :: Float -> Int
+prim_round external
+
+--- Square root.
+
+sqrt :: Float -> Float
+sqrt x = prim_sqrt $# x
+
+prim_sqrt :: Float -> Float
+prim_sqrt external
+
+--- Natural logarithm.
+
+log :: Float -> Float
+log x = prim_log $# x
+
+prim_log :: Float -> Float
+prim_log external
+
+--- Natural exponent.
+
+exp :: Float -> Float
+exp x = prim_exp $# x
+
+prim_exp :: Float -> Float
+prim_exp external
+
+--- Sine.
+
+sin :: Float -> Float
+sin x = prim_sin $# x
+
+prim_sin :: Float -> Float
+prim_sin external
+
+--- Cosine.
+
+cos :: Float -> Float
+cos x = prim_cos $# x
+
+prim_cos :: Float -> Float
+prim_cos external
+
+--- Tangent.
+
+tan :: Float -> Float
+tan x = prim_tan $# x
+
+prim_tan :: Float -> Float
+prim_tan external
+
+atan :: Float -> Float
+atan x = prim_atan $# x
+
+prim_atan :: Float -> Float
+prim_atan external
+
+
diff --git a/src/lib/Curry/Module/Float.hs.include b/src/lib/Curry/Module/Float.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Float.hs.include
@@ -0,0 +1,95 @@
+[ForFunction "prim_Float_plus"
+,ForFunction "prim_Float_minus"
+,ForFunction "prim_Float_times"
+,ForFunction "prim_Float_divide"
+,ForFunction "prim_Float_lt"
+,ForFunction "prim_Float_gt"
+,ForFunction "prim_Float_leq"
+,ForFunction "prim_Float_geq"
+,ForFunction "prim_i2f"
+,ForFunction "prim_truncate"
+,ForFunction "prim_round"
+,ForFunction "prim_sqrt"
+,ForFunction "prim_log"
+,ForFunction "prim_exp"
+,ForFunction "prim_sin"
+,ForFunction "prim_cos"
+,ForFunction "prim_tan"
+]
+
+instance Fractional C_Float where
+  fromRational x = PrimValue (fromRational x)
+  recip (PrimValue x) = PrimValue (recip x)
+
+instance Floating C_Float where
+  pi = PrimValue pi
+  exp (PrimValue x) = PrimValue (exp x)
+  log (PrimValue x) = PrimValue (log x)
+  sin (PrimValue x) = PrimValue (sin x)
+  cos (PrimValue x) = PrimValue (cos x)
+  sinh (PrimValue x) = PrimValue (sinh x)
+  cosh (PrimValue x) = PrimValue (cosh x)
+  asin (PrimValue x) = PrimValue (asin x)
+  acos (PrimValue x) = PrimValue (acos x)
+  atan (PrimValue x) = PrimValue (atan x)
+  asinh (PrimValue x) = PrimValue (asinh x)
+  acosh (PrimValue x) = PrimValue (acosh x)
+  atanh (PrimValue x) = PrimValue (atanh x)
+  
+instance RealFrac C_Float where
+  properFraction (PrimValue x) = case properFraction x of (b,a) -> (b,PrimValue a)
+
+prim_Float_plus :: C_Float -> C_Float -> Result C_Float
+prim_Float_plus x y _ = x+y
+
+prim_Float_minus :: C_Float -> C_Float -> Result C_Float
+prim_Float_minus x y _ = x-y
+
+prim_Float_times :: C_Float -> C_Float -> Result C_Float
+prim_Float_times x y _ = x*y
+
+prim_Float_divide :: C_Float -> C_Float -> Result C_Float
+prim_Float_divide x y _ = x/y
+
+prim_Float_lt :: C_Float -> C_Float -> Result C_Bool
+prim_Float_lt x y _ = toCurry (x<y)
+
+prim_Float_gt :: C_Float -> C_Float -> Result C_Bool
+prim_Float_gt x y _ = toCurry (x>y)
+
+prim_Float_leq :: C_Float -> C_Float -> Result C_Bool
+prim_Float_leq x y _ = toCurry (x<=y)
+
+prim_Float_geq :: C_Float -> C_Float -> Result C_Bool
+prim_Float_geq x y _ = toCurry (x>=y)
+
+prim_i2f :: C_Int -> Result C_Float
+prim_i2f x _ = fromInteger (fromCurry x)
+
+prim_truncate :: C_Float -> Result C_Int
+prim_truncate x _ = toCurry (truncate x :: Integer)
+
+prim_round :: C_Float  -> Result C_Int
+prim_round x _ = toCurry (round x :: Integer)
+
+prim_sqrt :: C_Float  -> Result C_Float
+prim_sqrt x _ = sqrt x
+
+prim_log :: C_Float   -> Result C_Float
+prim_log x _ = log x
+
+prim_exp :: C_Float   -> Result C_Float
+prim_exp x _ = exp x
+
+prim_sin :: C_Float   -> Result C_Float
+prim_sin x _ = sin x
+
+prim_cos :: C_Float   -> Result C_Float
+prim_cos x _ = cos x
+
+prim_tan :: C_Float   -> Result C_Float
+prim_tan x _ = tan x
+
+prim_atan :: C_Float   -> Result C_Float
+prim_atan x _ = atan x
+
diff --git a/src/lib/Curry/Module/Generic.hs.include b/src/lib/Curry/Module/Generic.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Generic.hs.include
@@ -0,0 +1,1 @@
+[ForFunction "fold"]
diff --git a/src/lib/Curry/Module/Global.curry b/src/lib/Curry/Module/Global.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Global.curry
@@ -0,0 +1,63 @@
+------------------------------------------------------------------------------
+--- Library for handling global entities.
+--- A global entity has a name declared in the program.
+--- Its value can be accessed and modified by IO actions.
+--- Furthermore, global entities can be declared as persistent so that
+--- their values are stored across different program executions.
+---
+--- Currently, it is still experimental so that its interface might
+--- be slightly changed in the future.
+---
+--- A global entity <code>g</code> with an initial value <code>v</code>
+--- of type <code>t</code> must be declared by:
+--- 
+--- <code>g :: Global t</code><br/>
+--- <code>g = global v spec</code>
+---
+--- Here, the type <code>t</code> must not contain type variables and
+--- <code>spec</code> specifies the storage mechanism for the
+--- global entity (see type <code>GlobalSpec</code>).
+---
+---
+--- @author Michael Hanus
+--- @version June 2007
+------------------------------------------------------------------------------
+
+module Global(Global,GlobalSpec(..),global,readGlobal,writeGlobal) where
+
+----------------------------------------------------------------------
+
+--- The general type of dynamic predicates.
+data Global a -- = GlobalDef a GlobalSpec
+
+--- <code>global</code> is only used for the declaration of a global value
+--- and should not be used elsewhere. In the future, it might become a keyword.
+global :: a -> GlobalSpec -> Global a
+global external --v s = GlobalDef v s
+
+--- The storage mechanism for the global entity.
+--- @cons Temporary - the global value exists only during a single execution
+---                   of a program
+--- @cons Persistent f - the global value is stored persisently in file f
+---                     (which is created and initialized if it does not exists)
+data GlobalSpec = Temporary  | Persistent String
+
+
+--- Reads the current value of a global.
+readGlobal :: Global a -> IO a
+readGlobal g = prim_readGlobal $# g
+
+prim_readGlobal :: Global a -> IO a
+prim_readGlobal external
+
+
+--- Updates the value of a global.
+--- The value is evaluated to a ground constructor term before it is updated.
+writeGlobal :: Global a -> a -> IO ()
+writeGlobal g v = (prim_writeGlobal $# g) $## v
+
+prim_writeGlobal :: Global a -> a -> IO ()
+prim_writeGlobal external
+
+
+------------------------------------------------------------------------
diff --git a/src/lib/Curry/Module/Global.hs.include b/src/lib/Curry/Module/Global.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Global.hs.include
@@ -0,0 +1,47 @@
+[ForType "Global" Nothing,ForFunction "global"
+,ForFunction "prim_readGlobal"
+,ForFunction "prim_writeGlobal"
+]
+
+import System.IO.Unsafe
+import qualified Data.IORef as Ref
+
+type C_Global t0 = Prim (Ref.IORef t0)
+
+global :: (Curry t0) => t0 -> C_GlobalSpec -> Result (C_Global t0)
+global x spec = ref `seq` (\ _ -> PrimValue ref)
+  where ref = unsafePerformIO (Ref.newIORef x) 
+
+prim_readGlobal :: (Curry t0) => C_Global t0 -> Result (C_IO t0)
+prim_readGlobal  = prim_readIORef
+
+prim_writeGlobal :: (Curry t0) => C_Global t0 -> t0 -> Result (C_IO T0)
+prim_writeGlobal  = prim_writeIORef
+
+----------------------
+-- preparing io ref
+----------------------
+
+type C_IORef a = Prim (Ref.IORef a)
+
+instance Show (Ref.IORef a) where
+  show _ = "IOREF"
+
+instance Read (Ref.IORef a) where
+  readsPrec = error "reading IOREF"
+
+instance Generate (Ref.IORef a) where
+  genFree    = error "free variable of type IOExts.IORef"
+  maxArity _ = error "free variable of type IOExts.IORef"
+
+newIORef :: Curry t0 => t0 -> Result (C_IO (C_IORef t0))
+newIORef x = ioFunc0 (Ref.newIORef x) 
+
+prim_readIORef :: Curry t0 => C_IORef t0 -> Result (C_IO t0)
+prim_readIORef (PrimValue ref) _ = 
+   C_IO (\ _ -> do 
+           v <- Ref.readIORef ref 
+           Prelude.return (IOVal v))
+
+prim_writeIORef :: Curry t0 => C_IORef t0 -> t0 -> Result (C_IO T0)
+prim_writeIORef (PrimValue ref) x = ioFunc0 (Ref.writeIORef ref x) 
diff --git a/src/lib/Curry/Module/GraphInductive.curry b/src/lib/Curry/Module/GraphInductive.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/GraphInductive.curry
@@ -0,0 +1,575 @@
+------------------------------------------------------------------------------
+--- Library for inductive graphs (port of a Haskell library by Martin Erwig).
+---
+--- In this library, graphs are composed and decomposed in an inductive way.
+---
+--- The key idea is as follows: 
+---
+--- A graph is either <i>empty</i> or it consists of <i>node-context</i> 
+--- and a <i>graph g'</i> which 
+--- are put together by a constructor <i>(:&)</i>.
+---
+--- This constructor <i>(:&)</i>, however, is not a constructor in 
+--- the sense of abstract 
+--- data type, but more basically a defined constructing funtion. 
+---
+--- A <i>context</i> is a node together withe the edges to and from this node into
+--- the nodes in the graph g'.
+--- 
+--- For examples of how to use this library, cf. the module "GraphAlgorithms".
+---
+--- @author Bernd Braßel
+--- @version May 2005
+------------------------------------------------------------------------------
+
+
+module GraphInductive (
+  empty,
+  mkGraph,
+  buildGr,
+  mkUGraph,
+
+  (:&),
+  insNode, insNodes,
+  insEdge, insEdges,
+  delNode, delNodes,
+  delEdge, delEdges,
+  
+  isEmpty,
+  match,
+  matchAny,
+  noNodes,
+  nodeRange,
+  context,
+  lab,
+  neighbors,
+  suc,lsuc,
+  pre,lpre,
+  out,outdeg,
+  inn,indeg,
+  deg, 
+  gelem,
+  equal,
+
+  node',
+  lab',
+  labNode',
+  neighbors',
+  suc',lsuc',
+  pre',lpre',
+  out',outdeg',
+  inn',indeg',
+  deg',
+
+  labNodes,
+  labEdges,
+  nodes,
+  edges,
+  newNodes,
+  
+  ufold, 
+  gmap,nmap,emap,
+  labUEdges,labUNodes,
+
+  showGraph,
+
+  Graph,
+  Node,LNode,UNode,
+  Edge,LEdge,UEdge,
+  Context,MContext,Context',UContext,
+  GDecomp,Decomp,UDecomp,
+  
+  Path,LPath,UPath,
+  UGr) where
+
+import FiniteMap
+import Sort (mergeSort)
+import Maybe 
+
+infixr 5 .:
+
+
+---------------------------------------
+--- Graph composition
+---------------------------------------
+
+infixr 5 :&
+
+
+--- (:&) takes a node-context and a Graph and yields a new graph.
+---
+--- The according key idea is detailed at the beginning.
+--- 
+--- nl is the type of the node labels and el the edge labels.
+---
+--- Note that it is an error to induce a context for 
+--- a node already contained in the graph.
+
+(:&) :: Context nl el -> Graph nl el -> Graph nl el
+(p,v,l,s) :& (Gr g) 
+  | elemFM v g = error ("Node Exception, Node: "++show v++": "++show l)
+  | otherwise  = Gr g3
+      where g1 = addToFM g v (p,l,s)
+            g2 = updAdj g1 p (addSucc v)
+            g3 = updAdj g2 s (addPred v)
+
+--- The type variables of Graph are <i>nodeLabel</i> and <i>edgeLabel</i>.
+--- The internal representation of Graph is hidden.
+
+data Graph nodeLabel edgeLabel = Gr (GraphRep nodeLabel edgeLabel)
+
+--- Nodes and edges themselves (in contrast to their labels) are coded as integers.
+---
+--- For both of them, there are variants as labeled, unlabelwd and quasi unlabeled 
+--- (labeled with ()).
+---
+-- Nodes and their labels
+---
+--- Unlabeled node
+type  Node   = Int              
+--- Labeled node
+type LNode a = (Node,a)         
+--- Quasi-unlabeled node
+type UNode   = LNode ()
+
+-- Edges and their labels
+---
+--- Unlabeled edge
+type  Edge   = (Node,Node)      
+--- Labeled edge
+type LEdge b = (Node,Node,b)    
+--- Quasi-unlabeled edge
+type UEdge   = LEdge ()         
+
+--- The context of a node is the node itself (along with label) and its adjacent nodes.
+--- Thus, a context is a quadrupel, for node n it is of the form
+--- (edges to n,node n,n's label,edges from n)
+
+type Context a b  = (Adj b,Node,a,Adj b) -- Context a b "=" Context' a b "+" Node
+
+--- Labeled links to or from a 'Node'.
+type Adj b = [(b,Node)]
+
+-- there are some useful variants of the context type 
+--- maybe context
+type MContext a b = Maybe (Context a b)
+--- context with edges and node label only, without the node identifier itself
+type Context' a b = (Adj b,a,Adj b)
+--- Unlabeled context.
+type UContext     = ([Node],Node,[Node])
+
+------------------------------------
+-- graph decomposition
+------------------------------------
+
+--- decompose a graph into the 'Context' for an arbitrarily-chosen 'Node'
+--- and the remaining 'Graph'.
+--- 
+--- In order to use graphs as abstract data structures, we also need means to
+--- decompose a graph. This decompostion should work as much like pattern matching
+--- as possible. The normal matching is done by the function matchAny, which takes
+--- a graph and yields a graph decompostion.
+---
+--- According to the main idea, matchAny . (:&) should be an identity.
+
+matchAny  :: Graph a b -> GDecomp a b
+matchAny (Gr g)
+  | isEmptyFM g = error "Match Exception, Empty Graph"
+  | otherwise = case head (fmToListPreOrder g) of
+                  (v,_) -> case match v (Gr g) of
+                            (Just c,g') -> (c,g') 
+
+--- A graph decompostion is a context for a node n and the remaining graph without
+--- that node.
+
+type GDecomp a b  = (Context a b,Graph a b)
+
+--- a decomposition with a maybe context 
+type Decomp a b = (MContext a b,Graph a b)
+
+--- Unlabeled decomposition.
+type UDecomp g    = (Maybe UContext,g)
+
+----------------------------------------------------------------------
+-- basic graph operations
+----------------------------------------------------------------------
+
+----------------------------------
+-- creating graphs
+----------------------------------
+
+--- An empty 'Graph'.
+-- internal representation by finite maps
+empty :: Graph _ _
+empty = Gr (emptyFM (<))
+
+--- Create a 'Graph' from the list of 'LNode's and 'LEdge's.
+mkGraph   :: [LNode a] -> [LEdge b] -> Graph a b
+mkGraph vs es  = (insEdges es . insNodes vs) empty
+
+--- Build a 'Graph' from a list of 'Context's.
+buildGr ::  [Context a b] -> Graph a b
+buildGr = foldr (:&) empty
+
+--- Build a quasi-unlabeled 'Graph' from the list of 'Node's and 'Edge's.
+mkUGraph ::  [Node] -> [Edge] -> Graph () ()
+mkUGraph vs es = mkGraph (labUNodes vs) (labUEdges es) 
+
+----------------------------------------------
+-- adding to and deleting from graphs
+----------------------------------------------
+
+
+--- Insert a 'LNode' into the 'Graph'.
+insNode ::  LNode a -> Graph a b -> Graph a b
+insNode (v,l) = (([],v,l,[]):&)
+
+--- Insert a 'LEdge' into the 'Graph'.
+insEdge ::  LEdge b -> Graph a b -> Graph a b
+insEdge (v,w,l) g = (pr,v,la,(l,w):su) :& g'
+                    where (Just (pr,_,la,su),g') = match v g
+
+--- Remove a 'Node' from the 'Graph'.
+delNode ::  Node -> Graph a b -> Graph a b
+delNode v = delNodes [v]
+
+--- Remove an 'Edge' from the 'Graph'.
+delEdge ::  Edge -> Graph a b -> Graph a b
+delEdge (v,w) g = case match v g of
+                  (Nothing,_)        -> g
+                  (Just (p,v',l,s),g') -> (p,v',l,filter ((/=w).snd) s) :& g'
+
+--- Insert multiple 'LNode's into the 'Graph'.
+insNodes   ::  [LNode a] -> Graph a b -> Graph a b
+insNodes vs g = foldr insNode g vs
+
+--- Insert multiple 'LEdge's into the 'Graph'.
+insEdges ::  [LEdge b] -> Graph a b -> Graph a b
+insEdges es g = foldr insEdge g es
+
+--- Remove multiple 'Node's from the 'Graph'.
+delNodes ::  [Node] -> Graph a b -> Graph a b
+delNodes []     g = g
+delNodes (v:vs) g = delNodes vs (snd (match v g))  
+
+--- Remove multiple 'Edge's from the 'Graph'.
+delEdges ::  [Edge]    -> Graph a b -> Graph a b
+delEdges es g = foldr delEdge g es
+
+
+-----------------------------------------
+-- retrieving information about graphs
+-----------------------------------------
+
+--- test if the given 'Graph' is empty.
+isEmpty :: Graph _ _ -> Bool
+isEmpty (Gr g)  = isEmptyFM g
+
+--- match is the complement side of (:&), decomposing a 'Graph' into the 
+--- 'MContext' found for the given node and the remaining 'Graph'.
+match     :: Node -> Graph a b -> Decomp a b
+match v (Gr g) = 
+  maybe 
+   (Nothing,Gr g) 
+   (\ (g',(_,(p,l,s))) ->
+             let s'   = filter ((/=v) . snd) s
+                 p'   = filter ((/=v) . snd) p
+                 g1   = updAdj g' s' (clearPred v)
+                 g2   = updAdj g1 p' (clearSucc v)
+              in (Just (p',v,l,s),Gr g2))
+   (splitFM g v)
+
+
+
+--- The number of 'Node's in a 'Graph'.
+noNodes   :: Graph _ _ -> Int
+noNodes   (Gr g) = sizeFM g
+
+--- The minimum and maximum 'Node' in a 'Graph'.
+nodeRange :: Graph _ _ -> (Node,Node)
+nodeRange (Gr g) | isEmptyFM g = (0,0)
+                 | otherwise = (ix (minFM g),ix (maxFM g)) where ix = fst . fromJust
+
+
+--- Find the context for the given 'Node'.  In contrast to "match",
+--- "context" causes an error if the 'Node' is
+--- not present in the 'Graph'.
+context ::  Graph a b -> Node -> Context a b
+context g v = case match v g of
+                (Nothing,_) -> error ("Match Exception, Node: "++show v)
+                (Just c,_)  -> c 
+
+--- Find the label for a 'Node'.
+lab ::  Graph a _ -> Node -> Maybe a
+lab g v = fst (match v g) >>- Just . lab' 
+
+--- Find the neighbors for a 'Node'.
+neighbors ::  Graph _ _ -> Node -> [Node] 
+neighbors = (\(p,_,_,s) -> map snd (p++s)) .: context
+
+--- Find all 'Node's that have a link from the given 'Node'.
+suc ::  Graph _ _ -> Node -> [Node]
+suc = map snd .: context4
+
+--- Find all 'Node's that link to to the given 'Node'.
+pre ::  Graph _ _ -> Node -> [Node] 
+pre = map snd .: context1
+
+--- Find all Nodes and their labels, which are linked from the given 'Node'.
+lsuc ::  Graph _ b -> Node -> [(Node,b)]
+lsuc = map flip2 .: context4
+
+--- Find all 'Node's that link to the given 'Node' and the label of each link.
+lpre ::  Graph _ b -> Node -> [(Node,b)] 
+lpre = map flip2 .: context1
+
+--- Find all outward-bound 'LEdge's for the given 'Node'.
+out ::  Graph _ b -> Node -> [LEdge b] 
+out g v = map (\(l,w)->(v,w,l)) (context4 g v)
+
+--- Find all inward-bound 'LEdge's for the given 'Node'.
+inn ::  Graph _ b -> Node -> [LEdge b] 
+inn g v = map (\(l,w)->(w,v,l)) (context1 g v)
+
+--- The outward-bound degree of the 'Node'.
+outdeg ::  Graph _ _ -> Node -> Int
+outdeg = length .: context4
+
+--- The inward-bound degree of the 'Node'.
+indeg ::  Graph _ _ -> Node -> Int
+indeg  = length .: context1
+
+--- The degree of the 'Node'.
+deg ::  Graph _ _ -> Node -> Int
+deg = (\(p,_,_,s) -> length p+length s) .: context
+
+--- 'True' if the 'Node' is present in the 'Graph'.
+gelem ::  Node -> Graph _ _ -> Bool
+gelem v g = isJust (fst (match v g)) 
+           
+
+--- graph equality
+equal :: Graph a b -> Graph a b -> Bool
+equal g g' = slabNodes g == slabNodes g' && slabEdges g == slabEdges g'
+
+-- comparing nodes 
+nodeComp :: LNode b -> LNode b -> Ordering
+nodeComp n n' | n == n'      = EQ
+              | fst n<fst n' = LT
+              | otherwise    = GT
+
+-- sort contained nodes 
+slabNodes :: Graph a _ -> [LNode a]
+slabNodes = sortBy nodeComp . labNodes
+
+-- comparing edges
+edgeComp :: LEdge b -> LEdge b -> Ordering
+edgeComp e e' | e == e'              = EQ
+              | v<x || (v==x && w<y) = LT
+              | otherwise            = GT
+
+  where
+    (v,w,_) = e
+    (x,y,_) = e'
+
+-- sort contained edges
+slabEdges :: Graph _ b -> [LEdge b]
+slabEdges = sortBy edgeComp . labEdges
+
+-------------------------------------------
+-- retrieving information from contexts
+-------------------------------------------
+
+--- The 'Node' in a 'Context'.
+node' :: Context _ _ -> Node
+node' (_,v,_,_) = v
+
+--- The label in a 'Context'.
+lab' :: Context a _ -> a
+lab' (_,_,l,_) = l
+
+--- The 'LNode' from a 'Context'.
+labNode' :: Context a _ -> LNode a
+labNode' (_,v,l,_) = (v,l)
+
+--- All 'Node's linked to or from in a 'Context'.
+neighbors' :: Context _ _ -> [Node] 
+neighbors' (p,_,_,s) = map snd p++map snd s
+
+--- All 'Node's linked to in a 'Context'.
+suc' :: Context _ _ -> [Node]
+suc' (_,_,_,s) = map snd s
+
+--- All 'Node's linked from in a 'Context'.
+pre' :: Context _ _ -> [Node] 
+pre' (p,_,_,_) = map snd p
+
+--- All 'Node's linked from in a 'Context', and the label of the links.
+lpre' :: Context _ b -> [(Node,b)] 
+lpre' (p,_,_,_) = map flip2 p
+
+--- All 'Node's linked from in a 'Context', and the label of the links.
+lsuc' :: Context _ b -> [(Node,b)]
+lsuc' (_,_,_,s) = map flip2 s
+
+--- All outward-directed 'LEdge's in a 'Context'.
+out' :: Context _ b -> [LEdge b] 
+out' (_,v,_,s) = map (\(l,w)->(v,w,l)) s
+
+--- All inward-directed 'LEdge's in a 'Context'.
+inn' :: Context _ b -> [LEdge b] 
+inn' (p,v,_,_) = map (\(l,w)->(w,v,l)) p
+
+--- The outward degree of a 'Context'.
+outdeg' :: Context _ _ -> Int
+outdeg' (_,_,_,s) = length s
+
+--- The inward degree of a 'Context'.
+indeg' :: Context _ _ -> Int
+indeg' (p,_,_,_) = length p
+
+--- The degree of a 'Context'.
+deg' :: Context _ _ -> Int
+deg' (p,_,_,s) = length p+length s
+
+------------------------------------
+-- listifying graphs
+------------------------------------
+
+--- A list of all 'LNode's in the 'Graph'.
+labNodes (Gr g) = map (\(v,(_,l,_))->(v,l)) (fmToList g)
+
+--- A list of all 'LEdge's in the 'Graph'.
+labEdges  :: Graph _ b -> [LEdge b]
+labEdges  (Gr g) = concatMap (\(v,(_,_,s))->map (\(l,w)->(v,w,l)) s) (fmToList g)
+
+--- List all 'Node's in the 'Graph'.
+nodes ::  Graph _ _ -> [Node]
+nodes = map fst . labNodes
+
+--- List all 'Edge's in the 'Graph'.
+edges ::  Graph _ _ -> [Edge]
+edges = map (\(v,w,_)->(v,w)) . labEdges
+
+--- List N available 'Node's, ie 'Node's that are not used in the 'Graph'.
+newNodes ::  Int -> Graph _ _ -> [Node]
+newNodes i g = [n+1..n+i] where (_,n) = nodeRange g
+
+------------------------------------
+-- some convenient type synonyms
+------------------------------------
+
+-- Paths and their labels
+--- Unlabeled path
+type Path    = [Node]           
+--- Labeled path
+type LPath a = [LNode a]
+--- Quasi-unlabeled path
+type UPath   = [UNode]          
+
+type GraphRep a b = FM Node (Context' a b)
+
+--- a graph without any labels
+type UGr = Graph () ()
+
+------------------------
+-- Functions on Graphs
+------------------------
+
+--- Fold a function over the graph.
+ufold :: ((Context a b) -> c -> c) -> c -> Graph a b -> c
+ufold f u g | isEmpty g = u
+            | otherwise = f c (ufold f u g') 
+            where (c,g') = matchAny g
+
+--- Map a function over the graph.
+gmap :: (Context a b -> Context c d) -> Graph a b -> Graph c d
+gmap f = ufold (\c->((f c):&)) empty
+
+--- Map a function over the 'Node' labels in a graph.
+nmap ::  (a -> c) -> Graph a b -> Graph c b
+nmap f = gmap (\(p,v,l,s)->(p,v,f l,s))
+
+--- Map a function over the 'Edge' labels in a graph.
+emap ::  (b -> c) -> Graph a b -> Graph a c
+emap f = gmap (\(p,v,l,s)->(map1 f p,v,l,map1 f s))
+         where map1 g = map (\(l,v)->(g l,v))
+
+--- add label () to list of edges (node,node)
+labUEdges = map (\(v,w)->(v,w,()))
+
+--- add label () to list of nodes
+labUNodes = map (\v->(v,()))
+ 
+----------------------------------------------------------------------
+-- textual Graph representation 
+----------------------------------------------------------------------
+
+--- Represent Graph as String
+showGraph :: Graph _ _ -> String
+showGraph (Gr g) = unlines (map showNode (fmToList g))
+
+--  
+showNode (v,(_,l',s)) = show v ++ ":" ++ show l' ++ "->"++ show s 
+
+----------------------------------------------------------------------
+-- UTILITIES
+----------------------------------------------------------------------
+-- auxiliary functions used in the implementation of the 
+-- derived class members
+-- 
+(.:) :: (c -> d) -> (a -> b -> c) -> (a -> b -> d)
+-- f .: g = \x y->f (g x y)
+-- f .: g = (f .) . g
+-- (.:) f = ((f .) .)
+-- (.:) = (.) (.) (.)
+(.:) = (.) . (.)
+
+fst4 (x,_,_,_) = x
+{- not used
+snd4 (_,x,_,_) = x
+thd4 (_,_,x,_) = x
+-}
+fth4 (_,_,_,x) = x
+
+{- not used
+fst3 (x,_,_) = x
+snd3 (_,x,_) = x
+thd3 (_,_,x) = x
+-}
+
+flip2 (x,y) = (y,x)
+
+-- projecting on context elements
+--
+-- context1 g v = fst4 (contextP g v)
+context1 :: Graph _ b -> Node -> Adj b
+{- not used
+context2 :: Graph gr => gr a b -> Node -> Node
+context3 :: Graph gr => gr a b -> Node -> a
+-}
+context4 :: Graph _ b -> Node -> Adj b
+
+context1 = fst4 .: context
+{- not used
+context2 = snd4 .: context
+context3 = thd4 .: context
+-}
+context4 = fth4 .: context
+
+addSucc v l (p,l',s) = (p,l',(l,v):s)
+addPred v l (p,l',s) = ((l,v):p,l',s)
+
+clearSucc v _ (p,l,s) = (p,l,filter ((/=v).snd) s)
+clearPred v _ (p,l,s) = (filter ((/=v).snd) p,l,s)
+
+updAdj :: GraphRep a b -> Adj b -> (b -> Context' a b -> Context' a b) -> GraphRep a b
+updAdj g []         _              = g
+updAdj g ((l,v):vs) f 
+   | elemFM v g = updAdj (updFM g v (f l)) vs f
+   | otherwise  = error ("Edge Exception, Node: "++show v)
+
+sortBy p = mergeSort (\x y -> let pxy = p x y in pxy==EQ||pxy==LT)
+
+
+
diff --git a/src/lib/Curry/Module/IArray.hs.include b/src/lib/Curry/Module/IArray.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/IArray.hs.include
@@ -0,0 +1,1 @@
+[ForType "Array" Nothing,ForFunction "array",ForFunction "!",ForFunction "bounds",ForFunction "assocs",ForFunction "//",ForFunction "accum"]
diff --git a/src/lib/Curry/Module/IO.curry b/src/lib/Curry/Module/IO.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/IO.curry
@@ -0,0 +1,178 @@
+-----------------------------------------------------------------------------
+--- Library for IO operations like reading and writing files
+--- that are not already contained in the prelude.
+---
+--- @author Michael Hanus, Bernd Braßel
+--- @version June 2006
+-----------------------------------------------------------------------------
+
+module IO(Handle,IOMode(..),SeekMode(..),stdin,stdout,stderr,
+          openFile,hClose,hFlush,hIsEOF,isEOF,
+          hSeek,hWaitForInput,hWaitForInputs,hReady, 
+          hGetChar,hGetLine,hGetContents,getContents,
+          hPutChar,hPutStr,hPutStrLn,hPrint,
+          hIsReadable,hIsWritable) where
+
+--- The abstract type of a handle for a stream.
+data Handle -- internally defined
+
+--- The modes for opening a file.
+data IOMode = ReadMode | WriteMode | AppendMode
+
+--- The modes for positioning with <code>hSeek</code> in a file.
+data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
+
+
+--- Standard input stream.
+stdin :: Handle
+stdin external
+
+--- Standard output stream.
+stdout :: Handle
+stdout external
+
+--- Standard error stream.
+stderr :: Handle
+stderr external
+
+--- Opens a file in specified mode and returns a handle to it.
+openFile :: String -> IOMode -> IO Handle
+openFile filename mode = (prim_openFile $## filename) $# mode
+
+prim_openFile :: String -> IOMode -> IO Handle
+prim_openFile external
+
+--- Closes a file handle and flushes the buffer in case of output file.
+hClose :: Handle -> IO ()
+hClose h = prim_hClose $# h
+
+prim_hClose :: Handle -> IO ()
+prim_hClose external
+
+--- Flushes the buffer associated to handle in case of output file.
+hFlush :: Handle -> IO ()
+hFlush h = prim_hFlush $# h
+
+prim_hFlush :: Handle -> IO ()
+prim_hFlush external
+
+--- Is handle at end of file?
+hIsEOF :: Handle -> IO Bool
+hIsEOF h = prim_hIsEOF $# h
+
+prim_hIsEOF :: Handle -> IO Bool
+prim_hIsEOF external
+
+--- Is standard input at end of file?
+isEOF :: IO Bool
+isEOF = hIsEOF stdin
+
+
+--- Set the position of a handle to a seekable stream (e.g., a file).
+--- If the second argument is <code>AbsoluteSeek</code>,
+--- <code>SeekFromEnd</code>, or <code>RelativeSeek</code>,
+--- the position is set relative to the beginning of the file,
+--- to the end of the file, or to the current position, respectively.
+hSeek :: Handle -> SeekMode -> Int -> IO ()
+hSeek h sm pos = ((prim_hSeek $# h) $# sm) $## pos
+
+prim_hSeek :: Handle -> SeekMode -> Int -> IO ()
+prim_hSeek external
+
+
+--- Waits until input is available on the given handle.
+--- If no input is available within t milliseconds, it returns False,
+--- otherwise it returns True.
+--- @param handle - a handle for an input stream
+--- @param timeout - milliseconds to wait for input (< 0 : no time out)
+
+hWaitForInput :: Handle -> Int -> IO Bool
+hWaitForInput h i = (prim_hWaitForInput $# h)  $## i
+
+prim_hWaitForInput :: Handle -> Int -> IO Bool
+prim_hWaitForInput external
+
+--- Waits until input is available on some of the given handles.
+--- If no input is available within t milliseconds, it returns -1,
+--- otherwise it returns the index of the corresponding handle with the available
+--- data.
+--- @param handles - a list of handles for input streams
+--- @param timeout - milliseconds to wait for input (< 0 : no time out)
+--- @return -1 if no input is available within the time out, otherwise i
+---         if (handles!!i) has data available
+hWaitForInputs :: [Handle] -> Int -> IO Int
+hWaitForInputs handles timeout =
+   (prim_hWaitForInputs $## handles) $## timeout
+
+prim_hWaitForInputs :: [Handle] -> Int -> IO Int
+prim_hWaitForInputs external
+
+--- Checks whether an input is available on a given handle.
+hReady :: Handle -> IO Bool
+hReady h = hWaitForInput h 0
+
+
+--- Reads a character from an input handle and returns it.
+hGetChar    :: Handle -> IO Char
+hGetChar h = prim_hGetChar $# h
+
+prim_hGetChar :: Handle -> IO Char
+prim_hGetChar external
+
+--- Reads a line from an input handle and returns it.
+hGetLine  :: Handle -> IO String
+hGetLine h = do c <- hGetChar h
+                if c=='\n' then return ""
+                           else do cs <- hGetLine h
+                                   return (c:cs)
+
+--- Reads the complete contents from an input handle and closes the input handle
+--- before returning the contents.
+hGetContents  :: Handle -> IO String
+hGetContents h = do
+  eof <- hIsEOF h
+  if eof then hClose h >> return ""
+         else do c <- hGetChar h
+                 cs <- hGetContents h
+                 return (c:cs)
+
+--- Reads the complete contents from the standard input stream until EOF.
+getContents  :: IO String
+getContents = hGetContents stdin
+
+--- Puts a character to an output handle.
+hPutChar    :: Handle -> Char -> IO ()
+hPutChar h c = (prim_hPutChar $# h)  $## c
+
+prim_hPutChar :: Handle -> Char -> IO ()
+prim_hPutChar external
+
+--- Puts a string to an output handle.
+hPutStr :: Handle -> String -> IO ()
+hPutStr _ []     = done
+hPutStr h (c:cs) = hPutChar h c >> hPutStr h cs
+
+--- Puts a string with a newline to an output handle.
+hPutStrLn :: Handle -> String -> IO ()
+hPutStrLn h s = hPutStr h s >> hPutChar h '\n'
+
+--- Converts a term into a string and puts it to an output handle.
+hPrint :: Handle -> _ -> IO ()
+hPrint h = hPutStrLn h . show
+
+
+--- Is the handle readable?
+hIsReadable :: Handle -> IO Bool
+hIsReadable  h = prim_hIsReadable  $# h
+
+prim_hIsReadable :: Handle -> IO Bool
+prim_hIsReadable external
+
+--- Is the handle writable?
+hIsWritable :: Handle -> IO Bool
+hIsWritable h = prim_hIsWritable  $# h
+
+prim_hIsWritable :: Handle -> IO Bool
+prim_hIsWritable external
+
+
diff --git a/src/lib/Curry/Module/IO.hs.include b/src/lib/Curry/Module/IO.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/IO.hs.include
@@ -0,0 +1,129 @@
+[ForType "Handle" Nothing
+,ForFunction "stdin"
+,ForFunction "stdout"
+,ForFunction "stderr"
+,ForFunction "prim_openFile"
+,ForFunction "prim_hClose"
+,ForFunction "prim_hFlush"
+,ForFunction "prim_hIsEOF"
+,ForFunction "prim_hSeek"
+,ForFunction "prim_hWaitForInput"
+,ForFunction "prim_hGetChar"
+,ForFunction "prim_hPutChar"
+,ForFunction "prim_hIsReadable"
+,ForFunction "prim_hIsWritable"
+]
+
+import System.IO
+import qualified System.IO as SI
+import Control.Concurrent
+import qualified Control.Exception as CE
+
+-- somehow using an either type did not get the curry class for prim through.
+data IOHandle = One Handle | Two Handle Handle deriving (Show,Eq)
+type C_Handle = Prim IOHandle
+
+inputHandle, outputHandle :: IOHandle -> Handle
+inputHandle  (One h)   = h
+inputHandle  (Two h _) = h
+outputHandle (One h)   = h
+outputHandle (Two _ h) = h
+
+
+instance Read IOHandle where
+  readsPrec = error "reading Handle"
+
+instance Generate IOHandle where
+  genFree    = error "free variable of type IO-Handle"
+  maxArity _ = error "free variable of type IO-Handle"
+
+
+instance ConvertCH C_IOMode SI.IOMode where
+  toCurry SI.ReadMode = C_ReadMode
+  toCurry SI.WriteMode = C_WriteMode
+  toCurry SI.AppendMode = C_AppendMode
+
+  fromCurry C_ReadMode = SI.ReadMode
+  fromCurry C_WriteMode = SI.WriteMode
+  fromCurry C_AppendMode = SI.AppendMode
+
+instance ConvertCH C_SeekMode SI.SeekMode where
+  toCurry SI.AbsoluteSeek = C_AbsoluteSeek
+  toCurry SI.RelativeSeek = C_RelativeSeek
+  toCurry SI.SeekFromEnd  = C_SeekFromEnd
+
+  fromCurry C_AbsoluteSeek = SI.AbsoluteSeek
+  fromCurry C_RelativeSeek = SI.RelativeSeek
+  fromCurry C_SeekFromEnd  = SI.SeekFromEnd
+
+stdin :: Result C_Handle
+stdin _ = PrimValue (One SI.stdin)
+
+stdout :: Result C_Handle
+stdout _ = PrimValue (One SI.stdout)
+
+stderr :: Result C_Handle
+stderr _ = PrimValue (One SI.stderr)
+
+prim_openFile :: List C_Char -> C_IOMode -> Result (C_IO C_Handle)
+prim_openFile = ioFunc2 (\ s m -> do
+  h <- SI.openFile s m
+  Prelude.return (One h))
+
+prim_hClose :: C_Handle -> Result (C_IO T0)
+prim_hClose = ioFunc1 (\ eh -> case eh of
+  One h     -> SI.hClose h
+  Two h1 h2 -> SI.hClose h1 Prelude.>> SI.hClose h2)
+
+prim_hFlush :: C_Handle -> Result (C_IO T0)
+prim_hFlush = ioFunc1 (SI.hFlush . outputHandle)
+
+prim_hIsEOF :: C_Handle -> Result (C_IO C_Bool)
+prim_hIsEOF = ioFunc1 (SI.hIsEOF . inputHandle)
+
+prim_hSeek :: C_Handle -> C_SeekMode -> C_Int -> Result (C_IO T0)
+prim_hSeek = ioFunc3 (\ h -> SI.hSeek (inputHandle h))
+
+prim_hWaitForInput ::  C_Handle -> C_Int -> Result (C_IO C_Bool)
+prim_hWaitForInput = ioFunc2 (\ h -> myhWaitForInput (inputHandle h))
+
+myhWaitForInput :: SI.Handle -> Int -> IO Bool
+myhWaitForInput h i =
+  if i Prelude.< 0 
+  then SI.hIsEOF h Prelude.>>= Prelude.return . Prelude.not
+  else SI.hWaitForInput h i 
+
+selectHandle :: [IOHandle] -> Int -> IO Int
+selectHandle handles t = do
+  mvar <- newEmptyMVar
+  threads <- mapM (\ (i,h) -> forkIO (waitOnHandle (inputHandle h) i t mvar)) 
+                  (zip [0..] handles)
+  inspectRes (length handles) mvar threads
+
+inspectRes :: Int -> MVar (Maybe Int) -> [ThreadId] ->  IO Int
+inspectRes 0 _    _       = Prelude.return (-1)
+inspectRes n mvar threads = do
+  res <- readMVar mvar
+  case res of 
+    Nothing -> inspectRes (n-1) mvar threads
+    Just v  -> mapM_ killThread threads Prelude.>> Prelude.return v
+
+waitOnHandle :: SI.Handle -> Int -> Int -> MVar (Maybe Int) -> IO ()
+waitOnHandle h v t mvar = do
+   	    ready <- myhWaitForInput h t
+  	    putMVar mvar (if ready then Just v else Nothing)
+
+prim_hWaitForInputs :: List C_Handle -> C_Int -> Result (C_IO C_Int)
+prim_hWaitForInputs  = ioFunc2 selectHandle
+
+prim_hGetChar :: C_Handle -> Result (C_IO C_Char)
+prim_hGetChar = ioFunc1 (SI.hGetChar . inputHandle)
+
+prim_hPutChar :: C_Handle -> C_Char -> Result (C_IO T0)
+prim_hPutChar = ioFunc2 (SI.hPutChar . outputHandle)
+
+prim_hIsReadable :: C_Handle -> Result (C_IO C_Bool)
+prim_hIsReadable = ioFunc1 (SI.hIsReadable . inputHandle)
+
+prim_hIsWritable :: C_Handle -> Result (C_IO C_Bool)
+prim_hIsWritable = ioFunc1 (SI.hIsWritable . outputHandle)
diff --git a/src/lib/Curry/Module/IOExts.curry b/src/lib/Curry/Module/IOExts.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/IOExts.curry
@@ -0,0 +1,126 @@
+------------------------------------------------------------------------------
+--- Library with some useful extensions to the IO monad.
+---
+--- @author Michael Hanus
+--- @version June 2007
+------------------------------------------------------------------------------
+
+module IOExts(execCmd,connectToCommand,
+              readCompleteFile,updateFile,
+              exclusiveIO,setAssoc,getAssoc,
+              IORef,newIORef,readIORef,writeIORef) where
+
+import System
+import IO(Handle)
+
+--- Executes a command with a new default shell process.
+--- The standard I/O streams of the new process (stdin,stdout,stderr)
+--- are returned as handles so that they can be explicitly manipulated.
+--- They should be closed with <code>IO.hClose</code> since they are not
+--- closed automatically when the process terminates.
+--- @param cmd - the shell command to be executed
+--- @return the handles of the input/output/error streams of the new process
+execCmd :: String -> IO (Handle,Handle,Handle)
+execCmd cmd = prim_execCmd $## cmd
+
+prim_execCmd :: String -> IO (Handle,Handle,Handle)
+prim_execCmd external
+
+
+--- Executes a command with a new default shell process.
+--- The input and output streams of the new process is returned
+--- as one handle which is both readable and writable.
+--- Thus, writing to the handle produces input to the process and
+--- output from the process can be retrieved by reading from this handle.
+--- The handle should be closed with <code>IO.hClose</code> since they are not
+--- closed automatically when the process terminates.
+--- @param cmd - the shell command to be executed
+--- @return the handle connected to the input/output streams
+---         of the new process
+connectToCommand :: String -> IO Handle
+connectToCommand cmd = prim_connectToCmd $## cmd
+
+prim_connectToCmd :: String -> IO Handle
+prim_connectToCmd external
+
+
+--- An action that reads the complete contents of a file and returns it.
+--- This action can be used instead of the (lazy) <code>readFile</code>
+--- action if the contents of the file might be changed.
+--- @param file - the name of the file
+--- @return the complete contents of the file
+readCompleteFile :: String -> IO String
+readCompleteFile file = do
+  s <- readFile file
+  f s (return s)
+ where
+   f []     r = r
+   f (_:cs) r = f cs r
+
+
+--- An action that updates the contents of a file.
+--- @param f - the function to transform the contents
+--- @param file - the name of the file
+updateFile :: (String -> String) -> String -> IO ()
+updateFile f file = do
+  s <- readCompleteFile file
+  writeFile file (f s)
+
+
+--- Forces the exclusive execution of an action via a lock file.
+--- For instance, (exclusiveIO "myaction.lock" act) ensures that
+--- the action "act" is not executed by two processes on the same
+--- system at the same time.
+--- @param lockfile - the name of a global lock file
+--- @param action - the action to be exclusively executed
+--- @return the result of the execution of the action
+exclusiveIO :: String -> IO a -> IO a
+exclusiveIO lockfile action = do
+  system ("lockfile -1 "++lockfile)
+  catchFail (do actionResult <- action
+                system ("rm -f "++lockfile)
+                return actionResult )
+            (system ("rm -f "++lockfile) >> failed)
+
+
+--- Defines a global association between two strings.
+--- Both arguments must be evaluable to ground terms before applying
+--- this operation.
+setAssoc :: String -> String -> IO ()
+setAssoc key val = (prim_setAssoc $## key) $## val
+
+prim_setAssoc :: String -> String -> IO ()
+prim_setAssoc external
+
+
+--- Gets the value associated to a string.
+--- Nothing is returned if there does not exist an associated value.
+getAssoc :: String -> IO (Maybe String)
+getAssoc key = prim_getAssoc $## key
+
+prim_getAssoc :: String -> IO (Maybe String)
+prim_getAssoc external
+
+
+--- Mutable variables containing values of some type.
+--- The values are not evaluated when they are assigned to an IORef.
+data IORef _ 
+
+--- Creates a new IORef with an initial values.
+newIORef :: a -> IO (IORef a)
+newIORef external
+
+--- Reads the current value of an IORef.
+readIORef :: IORef a -> IO a
+readIORef ref = prim_readIORef $# ref
+
+prim_readIORef :: IORef a -> IO a
+prim_readIORef external
+
+--- Updates the value of an IORef.
+writeIORef :: IORef a -> a -> IO ()
+writeIORef ref val = (prim_writeIORef $# ref) val
+
+prim_writeIORef :: IORef a -> a -> IO ()
+prim_writeIORef external
+
diff --git a/src/lib/Curry/Module/IOExts.hs.include b/src/lib/Curry/Module/IOExts.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/IOExts.hs.include
@@ -0,0 +1,81 @@
+[ForType "IORef" Nothing
+,ForFunction "prim_execCmd"
+,ForFunction "choiceStreamOrMsgs"
+,ForFunction "prim_setAssoc"
+,ForFunction "prim_getAssoc"
+,ForFunction "newIORef"
+,ForFunction "prim_readIORef"
+,ForFunction "prim_writeIORef"
+]
+
+import Data.IORef
+import qualified Data.IORef as Ref
+import System.Process
+import Network
+import qualified Network.Socket as SO
+import System.IO.Unsafe
+import Control.Concurrent
+import System.IO
+
+import Curry.Module.IO
+import qualified Curry.Module.Global
+
+instance Eq (List C_Char) where
+  List == List = True
+  List == (_ :< _) = False
+  (_ :< _) == List = False
+  (C_Char c :< xs) == (C_Char c' :< ys) = c Prelude.== c' && xs Prelude.== ys
+
+type Assocs = [(C_String,C_String)]
+
+assocs :: Ref.IORef Assocs
+assocs = unsafePerformIO (Ref.newIORef [])
+
+getAssocs :: IO Assocs
+getAssocs = Ref.readIORef assocs
+
+setAssocs :: Assocs -> IO ()
+setAssocs as = Ref.writeIORef assocs as
+
+prim_execCmd :: List C_Char -> Result (C_IO (T3 C_Handle C_Handle C_Handle))
+prim_execCmd = ioFunc1 (\s -> do
+     (h1,h2,h3,_) <- runInteractiveCommand s
+     Prelude.return (One h1,One h2,One h3))
+
+prim_connectToCmd :: List C_Char -> Result (C_IO C_Handle)
+prim_connectToCmd = ioFunc1 (\s -> do
+  (hin,hout,herr,_) <- runInteractiveCommand s
+  forkIO (forwardError herr)
+  Prelude.return (Two hout hin))
+
+forwardError :: Handle -> IO ()
+forwardError h = do
+   eof <- hIsEOF h 
+   if eof then Prelude.return ()
+          else do
+            line <- hGetLine h 
+            hPutStrLn System.IO.stderr line
+            forwardError h
+
+prim_setAssoc :: List C_Char -> List C_Char -> Result (C_IO T0)
+prim_setAssoc key val = ioFunc0 (do 
+                    as <- getAssocs 
+                    setAssocs ((key,val):as))
+
+
+prim_getAssoc :: List C_Char -> Result (C_IO (C_Maybe (List C_Char)))
+prim_getAssoc key _ = C_IO (\_ -> do 
+         as <- getAssocs
+         Prelude.return (IOVal (maybe C_Nothing C_Just (lookup key as))))
+
+
+type C_IORef a = Curry.Module.Global.C_IORef a
+
+newIORef :: Curry t0 => t0 -> Result (C_IO (C_IORef t0))
+newIORef = Curry.Module.Global.newIORef
+
+prim_readIORef :: Curry t0 => C_IORef t0 -> Result (C_IO t0)
+prim_readIORef = Curry.Module.Global.prim_readIORef
+
+prim_writeIORef :: Curry t0 => C_IORef t0 -> t0 -> Result (C_IO T0)
+prim_writeIORef = Curry.Module.Global.prim_writeIORef
diff --git a/src/lib/Curry/Module/Integer.curry b/src/lib/Curry/Module/Integer.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Integer.curry
@@ -0,0 +1,209 @@
+------------------------------------------------------------------------------
+--- A collection of common operations on integer numbers.
+--- Most operations make no assumption on the precision of integers.
+--- Operation <EM>bitNot</EM> is necessarily an exception.
+---
+--- @author Sergio Antoy
+--- @version Sept 4, 2003
+--  Thu Sep  4 12:42:05 PDT 2003
+------------------------------------------------------------------------------
+
+module Integer(pow, ilog, isqrt, factorial, binomial,
+               abs, max, min, max3, min3, maxlist, minlist,
+               bitTrunc, bitAnd, bitOr, bitNot, bitXor,
+               even, odd) where
+
+------------------------------------------------------------------
+--                       Public Operations
+------------------------------------------------------------------
+
+--- The value of <EM>pow a b</EM> is <EM>a</EM>
+--- raised to the power of <EM>b</EM>.
+--- Fails if <EM>b < 0</EM>.
+--- Executes in <EM>O(log b)</EM> steps.
+---
+--- @param a - The base.
+--- @param b - The exponent.
+--- @return <EM>a</EM> raised to the power of <EM>b</EM>.
+
+pow a b | b>= 0 = powaux 1 a b
+  where
+    powaux n x y = if y == 0 then n
+                   else powaux (n * if (y `mod` 2 == 1) then x else 1)
+                               (x * x)
+                               (y `div` 2)
+
+--- The value of <EM>ilog n</EM> is the floor of the logarithm
+--- in the base 10 of <EM>n</EM>.
+--- Fails if <EM>n <= 0</EM>.
+--- For positive integers, the returned value is
+--- 1 less the number of digits in the decimal representation of <EM>n</EM>.
+---
+--- @param n - The argument.
+--- @return the floor of the logarithm in the base 10 of <EM>n</EM>.
+
+ilog n | n>0 = if n<10 then 0 else 1 + ilog (n `div` 10)
+
+--- The value of <EM>isqrt n</EM> is the floor
+--- of the square root of <EM>n</EM>.
+--- Fails if <EM>n < 0</EM>.
+--- Executes in <EM>O(log n)</EM> steps, but there must be a better way.
+---
+--- @param n - The argument.
+--- @return the floor of the square root of <EM>n</EM>.
+
+isqrt n | n >= 0 =
+  if n == 0 then 0 else
+  if n <  4 then 1 else
+  aux 2 n
+  where aux low past = -- invariant low <= result < past
+          if past == low+1 then low
+          else let cand = (past + low) `div` 2
+                in if cand*cand > n then aux low cand else aux cand past
+
+--- The value of <EM>factorial n</EM> is the factorial of <EM>n</EM>.
+--- Fails if <EM>n < 0</EM>.
+---
+--- @param n - The argument.
+--- @return the factorial of <EM>n</EM>.
+
+factorial n | n >= 0 = if n == 0 then 1 else n * factorial (n-1)
+
+--- The value of <EM>binomial n m</EM> is 
+--- n*(n-1)*...*(n-m+1)/m*(m-1)*...1
+--- Fails if <EM>m <= 0</EM> or <EM>n < m</EM>.
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @return the binomial coefficient of <EM>n</EM> over <EM>m</EM>.
+
+binomial n m | m > 0 && n >= m = aux m n `div` factorial m
+  where aux x y = if x == 0 then 1 else y * aux (x-1) (y-1)
+
+--- The value of <EM>abs n</EM> is the absolute value of <EM>n</EM>.
+---
+--- @param n - The argument.
+--- @return the absolute value of <EM>n</EM>.
+
+abs n = if n<0 then -n else n
+
+--- Returns the maximum of the two arguments
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @return the maximum of <EM>n</EM> and <EM>m</EM>.
+
+max n m = if n<m then m else n
+
+--- Returns the minimum of the two arguments.
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @return the minimum of <EM>n</EM> and <EM>m</EM>.
+
+min n m = if n<m then n else m
+
+--- Returns the maximum of the three arguments.
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @param p - Argument.
+--- @return the maximum among <EM>n</EM>, <EM>m</EM> and <EM>p</EM>.
+
+max3 n m p = max n (max m p)
+
+--- Returns the minimum of the three arguments.
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @param p - Argument.
+--- @return the minimum among <EM>n</EM>, <EM>m</EM> and <EM>p</EM>.
+
+min3 n m p = min n (min m p)
+
+--- Returns the maximum of a list of integer values.
+--- Fails if the list is empty.
+---
+--- @param l - The list of values.
+--- @return the maximum element of <EM>l</EM>.
+
+maxlist [n] = n
+maxlist (n:m:ns) = max n (maxlist (m:ns))
+
+--- Returns the minimum of a list of integer values.
+--- Fails if the list is empty.
+---
+--- @param l - The list of values.
+--- @return the minimum element of <EM>l</EM>.
+
+minlist [n] = n
+minlist (n:m:ns) = min n  (minlist (m:ns))
+
+--- The value of <EM>bitTrunc n m</EM> is the value of the <EM>n</EM>
+--- least significant bits of <EM>m</EM>.
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @return <EM>m</EM> truncated to the <EM>n</EM> least significant bits.
+
+bitTrunc n m = bitAnd (pow 2 n - 1) m
+
+--- Returns the bitwise AND of the two arguments.
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @return the bitwise and of <EM>n</EM> and <EM>m</EM>.
+
+bitAnd n m = if m == 0 then 0
+             else let p = 2 * bitAnd (n `div` 2) (m `div` 2)
+                      q = if m `mod` 2 == 0 then 0 else n `mod` 2
+                   in p + q
+
+--- Returns the bitwise inclusive OR of the two arguments.
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @return the bitwise inclusive or of <EM>n</EM> and <EM>m</EM>.
+
+bitOr n m = if m == 0 then n
+            else let p = 2 * bitOr (n `div` 2) (m `div` 2)
+                     q = if m `mod` 2 == 1 then 1 else n `mod` 2
+                  in p + q
+
+--- Returns the bitwise NOT of the argument.
+--- Since integers have unlimited precision,
+--- only the 32 least significant bits are computed.
+---
+--- @param n - Argument.
+--- @return the bitwise negation of <EM>n</EM> truncated to 32 bits.
+
+bitNot n = aux 32 n
+  where aux c m = if c==0 then 0
+                  else let p = 2 * aux (c-1) (m `div` 2)
+                           q = 1 - m `mod` 2
+                        in p + q
+
+--- Returns the bitwise exclusive OR of the two arguments.
+---
+--- @param n - Argument.
+--- @param m - Argument.
+--- @return the bitwise exclusive of <EM>n</EM> and <EM>m</EM>.
+
+bitXor n m = if m == 0 then n
+             else let p = 2 * bitXor (n `div` 2) (m `div` 2)
+                      q = if m `mod` 2 == n `mod` 2 then 0 else 1
+                   in p + q
+
+--- Returns whether an integer is even
+---
+--- @param n - Argument.
+--- @return whether <EM>n</EM> is even.
+
+even n = n `mod` 2 == 0
+
+--- Returns whether an integer is odd
+---
+--- @param n - Argument.
+--- @return whether <EM>n</EM> is odd.
+
+odd n = n `mod` 2 /= 0
diff --git a/src/lib/Curry/Module/Interactive.curry b/src/lib/Curry/Module/Interactive.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Interactive.curry
@@ -0,0 +1,40 @@
+module Interactive where
+
+interactiveSols :: [_] -> IO ()
+interactiveSols [] = putStrLn "No more Solutions"
+interactiveSols (x:xs) = do
+  printTerm x 
+  putStrLn "More?"
+  line <- getLine
+  case line of
+   'n':_ -> return ()
+   'N':_ -> return ()
+   _ -> interactiveSols xs
+
+printIO :: IO a -> IO ()
+printIO act = act >>= \x -> putStr "IO: " >> (printTerm $!! x)
+
+printTerm :: _ -> IO ()
+printTerm external
+
+{-
+--showTreeToDepth :: Int -> Int -> SearchTree a -> String 
+showTreeToDepth _ _ _ Fail = showString "Fail"
+showTreeToDepth _ _ _ Suspend = showString "Suspend"
+showTreeToDepth _ _ d (Value x1) = showParen (d>10) showStr
+   where
+    showStr  = showString "Value " . showsPrec 11 x1
+showTreeToDepth maxDepth curDepth d (Or xs) = showParen (d>10) showStr
+  where
+    showStr | maxDepth==curDepth = showString "Or [...]"
+            | otherwise          = 
+      showString "Or [" . 
+      foldr1 (showString "," . (.)) 
+             (map (showTreeToDepth maxDepth (curDepth+1) 0) xs) .
+      showString "]"
+
+showString s = 
+
+
+-}
+
diff --git a/src/lib/Curry/Module/Interactive.hs.include b/src/lib/Curry/Module/Interactive.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Interactive.hs.include
@@ -0,0 +1,5 @@
+[ForFunction "printTerm"]
+
+printTerm :: (Show t0,Curry t0) => t0 -> Result (C_IO T0)
+printTerm x _ = C_IO (\ _ -> do print x 
+                                Prelude.return (IOVal T0))
diff --git a/src/lib/Curry/Module/List.curry b/src/lib/Curry/Module/List.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/List.curry
@@ -0,0 +1,156 @@
+------------------------------------------------------------------------------
+--- Library with some useful operations on lists.
+---
+--- @author Michael Hanus
+--- @version October 2003
+------------------------------------------------------------------------------
+
+module List(elemIndex,elemIndices,find,findIndex,findIndices,
+            nub,nubBy,delete,(\\),union,intersect,
+            intersperse,transpose,partition,
+            group,groupBy,replace,isPrefixOf,sortBy,insertBy,last)  where
+
+import Maybe(listToMaybe)
+
+infix 5 \\
+
+--- Returns the index i of the first occurrence of an element in a list
+--- as (Just i), otherwise Nothing is returned.
+elemIndex               :: a -> [a] -> Maybe Int
+elemIndex x              = findIndex (x ==)
+
+--- Returns the list of indices of occurrences of an element in a list.
+elemIndices             :: a -> [a] -> [Int]
+elemIndices x            = findIndices (x ==)
+                        
+--- Returns the first element e of a list satisfying a predicate as (Just e),
+--- otherwise Nothing is returned.
+find                    :: (a -> Bool) -> [a] -> Maybe a
+find p                   = listToMaybe . filter p
+
+--- Returns the index i of the first occurrences of a list element
+--- satisfying a predicate as (Just i), otherwise Nothing is returned.
+findIndex               :: (a -> Bool) -> [a] -> Maybe Int
+findIndex p              = listToMaybe . findIndices p
+
+--- Returns the list of indices of list elements satisfying a predicate.
+findIndices             :: (a -> Bool) -> [a] -> [Int]
+findIndices p xs         = [ i | (x,i) <- zip xs [0..], p x ]
+
+
+--- Removes all duplicates in the argument list.
+nub                   :: [a] -> [a]
+nub xs                 = nubBy (==) xs
+
+--- Removes all duplicates in the argument list according to an
+--- equivalence relation.
+nubBy                 :: (a -> a -> Bool) -> [a] -> [a]
+nubBy _  []            = []
+nubBy eq (x:xs)        = x : nubBy eq (filter (\y -> not (eq x y)) xs)
+
+--- Deletes the first occurrence of an element in a list.
+delete                :: a -> [a] -> [a]
+delete _ []            = []
+delete x (y:ys)        = if x==y then ys else y : delete x ys
+
+--- Computes the difference of two lists.
+--- @param xs - a list
+--- @param ys - a list
+--- @return the list where the first occurrence of each element of
+---         <code>ys</code> has been removed from <code>xs</code>
+(\\) :: [a] -> [a] -> [a]
+xs \\ ys = foldl (flip delete) xs ys
+
+--- Computes the union of two lists.
+union                 :: [a] -> [a] -> [a]
+union []     ys        = ys
+union (x:xs) ys        = if x `elem` ys then union xs ys
+                                        else x : union xs ys
+
+--- Computes the intersection of two lists.
+intersect             :: [a] -> [a] -> [a]
+intersect []     _     = []
+intersect (x:xs) ys    = if x `elem` ys then x : intersect xs ys
+                                        else intersect xs ys
+
+--- Puts a separator element between all elements in a list.
+---
+--- Example: <CODE>(intersperse 9 [1,2,3,4]) = [1,9,2,9,3,9,4]</CODE>
+intersperse               :: a -> [a] -> [a]
+intersperse _   []         = []
+intersperse _   [x]        = [x]
+intersperse sep (x1:x2:xs) = x1 : sep : intersperse sep (x2:xs)
+
+--- Transposes the rows and columns of the argument.
+---
+--- Example: <CODE>(transpose [[1,2,3],[4,5,6]]) = [[1,4],[2,5],[3,6]]</CODE>
+transpose               :: [[a]] -> [[a]]
+transpose []             = []
+transpose ([] : xss)     = transpose xss
+transpose ((x:xs) : xss) = (x : map head xss) : transpose (xs : map tail xss)
+
+--- Partitions a list into a pair of lists where the first list
+--- contains those elements that satisfy the predicate argument
+--- and the second list contains the remaining arguments.
+---
+--- Example: <CODE>(partition (<4) [8,1,5,2,4,3]) = ([1,2,3],[8,5,4])</CODE>
+partition       :: (a -> Bool) -> [a] -> ([a],[a])
+partition p xs  = foldr select ([],[]) xs
+       where select x (ts,fs) = if p x then (x:ts,fs)
+                                       else (ts,x:fs)
+
+--- Splits the list argument into a list of lists of equal adjacent
+--- elements.
+---
+--- Example: <CODE>(group [1,2,2,3,3,3,4]) = [[1],[2,2],[3,3,3],[4]]</CODE>
+group :: [a] -> [[a]]
+group = groupBy (==)
+
+--- Splits the list argument into a list of lists of related adjacent
+--- elements.
+--- @param eq - the relation to classify adjacent elements
+--- @param xs - the list of elements
+--- @return the list of lists of related adjacent elements
+groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
+groupBy _  []     = []
+groupBy eq (x:xs) = (x:ys) : groupBy eq zs
+                    where (ys,zs) = span (eq x) xs
+
+--- Replaces an element in a list.
+--- @param x - the new element
+--- @param p - the position of the new element (head = 0)
+--- @param ys - the old list
+--- @return the new list where the p. element is replaced by x
+replace :: a -> Int -> [a] -> [a]
+replace _ _ [] = []
+replace x p (y:ys) | p==0      = x:ys
+                   | otherwise = y:(replace x (p-1) ys)
+
+--- Checks whether a list is a prefix of another.
+--- @param xs - a list
+--- @param ys - a list
+--- @return True if xs is a prefix of ys
+isPrefixOf :: [a] -> [a] -> Bool
+isPrefixOf [] _ = True
+isPrefixOf (_:_) [] = False
+isPrefixOf (x:xs) (y:ys) = x==y && (isPrefixOf xs ys)
+
+--- Sorts a list w.r.t. an ordering relation by the insertion method.
+sortBy :: (a -> a -> Bool) -> [a] -> [a]
+sortBy le = foldr (insertBy le) []
+
+--- Inserts an object into a list according to an ordering relation.
+--- @param le - an ordering relation (e.g., less-or-equal)
+--- @param x - an element
+--- @param xs - a list
+--- @return a list where the element has been inserted
+insertBy :: (a -> a -> Bool) -> a -> [a] -> [a]
+insertBy _ x []     = [x]
+insertBy le x (y:ys) = if le x y 
+                         then x : y : ys
+                         else y : insertBy le x ys
+
+--- Returns the last element of a non-empty list.
+last :: [a] -> a
+last [x] = x
+last (_:x:xs) = last (x:xs)
diff --git a/src/lib/Curry/Module/Maybe.curry b/src/lib/Curry/Module/Maybe.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Maybe.curry
@@ -0,0 +1,72 @@
+------------------------------------------------------------------------------
+--- Library with some useful functions on the Maybe datatype
+---
+--- @author Frank Huch (source from the corresponding Hugs module)
+---         Bernd Brassel (sequence, mapM)
+--- @version April 2005
+------------------------------------------------------------------------------
+
+module Maybe(
+    isJust, isNothing,
+    fromJust, fromMaybe, listToMaybe, maybeToList,
+    catMaybes, mapMaybe,(>>-), sequenceMaybe, mapMMaybe,
+
+    -- ... and what the Prelude exports
+    Maybe(..),
+    maybe
+    ) where
+
+infixl 1 >>-
+
+isJust :: Maybe _ -> Bool
+isJust (Just _) = True
+isJust Nothing  = False
+
+isNothing :: Maybe _ -> Bool
+isNothing Nothing  = True
+isNothing (Just _) = False
+
+fromJust :: Maybe a -> a
+fromJust (Just a) = a
+fromJust Nothing  = error "Maybe.fromJust: Nothing"
+
+fromMaybe :: a -> Maybe a -> a
+fromMaybe d Nothing  = d
+fromMaybe _ (Just a) = a
+
+maybeToList :: Maybe a -> [a]
+maybeToList Nothing  = []
+maybeToList (Just a) = [a]
+
+listToMaybe :: [a] -> Maybe a
+listToMaybe []     = Nothing
+listToMaybe (a:_) = Just a
+ 
+catMaybes :: [Maybe a] -> [a]
+catMaybes ms = [ m | (Just m) <- ms ]
+
+mapMaybe :: (a -> Maybe b) -> [a] -> [b]
+mapMaybe f = catMaybes . map f
+
+--- Monadic bind for Maybe.
+--- Maybe can be interpreted as a monad where Nothing is interpreted
+--- as the error case by this monadic binding.
+--- @param maybeValue - Nothing or Just x
+--- @param f - function to be applied to x
+--- @return Nothing if maybeValue is Nothing,
+---         otherwise f is applied to x
+(>>-) :: Maybe a -> (a -> Maybe b) -> Maybe b
+Nothing >>- _ = Nothing
+(Just x) >>- f  = f x
+
+--- monadic sequence for maybe
+sequenceMaybe :: [Maybe a] -> Maybe [a]
+sequenceMaybe [] = Just []
+sequenceMaybe (c:cs) = c >>- \x -> sequenceMaybe cs >>- \xs -> Just (x:xs)
+
+--- monadic map for maybe
+mapMMaybe :: (a -> Maybe b) -> [a] -> Maybe [b]
+mapMMaybe f = sequenceMaybe . map f
+
+
+-----------------------------------------------------------------------------
diff --git a/src/lib/Curry/Module/Meta.curry b/src/lib/Curry/Module/Meta.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Meta.curry
@@ -0,0 +1,143 @@
+module Meta 
+  (isFree, 
+
+   headNormalFormIO, hnfIO,nfIO,ghnfIO,gnfIO,
+
+   searchTree, 
+   RichSearchTree(..), --Suspension,
+   getRichSearchTree, richSearchTree, 
+   st, richST,
+
+   cover, ors, OrRef,
+
+   parallelSearch,
+
+   Exception(..), throw,
+
+   allValuesI
+
+  ) where
+
+
+--- Evaluate the given term to head normal form and
+--- return this head normal form as either 
+--- a) Left  if the hnf is a free variable
+--- b) Right if the hnf is a value
+isFree :: a -> IO (Either a a)
+isFree x = headNormalFormIO prim_isFree x
+
+prim_isFree :: a -> IO (Either a a)
+prim_isFree external
+
+--- Evaluate the given term to head normal form and
+--- call the given continuation with this head 
+--- normal form.
+headNormalFormIO :: (a -> IO b) -> a -> IO b
+headNormalFormIO external
+
+--- The declarative form of encapsulated search:
+--- It is both strong and referentially transparent
+--- in the sense that the result only depends on the
+--- given value and not on the state of bindings
+--- or non-deterministic branchings of the remaining 
+--- computation.
+searchTree :: a -> SearchTree a
+searchTree external
+
+hnfIO, nfIO, gnfIO, ghnfIO :: a -> IO a
+gnfIO  external
+ghnfIO external
+nfIO   external
+hnfIO  external
+
+
+--- A SearchTree with more information than the Prelude one.
+
+data RichSearchTree a 
+  = RichFail Exception
+  | RichValue a 
+  | RichChoice OrRef [RichSearchTree a] 
+  | RichSuspend 
+
+data Exception 
+  = ErrorCall String
+  | PatternMatchFail String
+  | AssertionFailed String
+  | IOException String
+  | PreludeFailed
+
+data OrRef 
+
+
+--- external representation of the non-determinism context
+--- of a value 
+--data Context 
+--type Suspension _ = () --not yet implemented, might be Context -> RichSearchTree a
+
+getRichSearchTree :: a -> IO (RichSearchTree a)
+getRichSearchTree external
+
+richSearchTree :: a -> RichSearchTree a
+richSearchTree external
+
+-- parallel search
+parallelSearch :: a -> IO [a]
+parallelSearch external
+
+--- cover safes an expression from being drawn into a search tree
+cover :: a -> a
+cover external
+
+--- an encapsulation to head normal form only
+st :: a -> SearchTree a
+st external
+
+--- an encapsulation to head normal form only
+richST :: a -> RichSearchTree a
+richST external
+
+--- a question mark on lists
+ors :: [a] -> a
+ors external
+
+
+
+-- Exception handling
+
+throw :: Exception -> a
+throw e = prim_throw $## e
+
+prim_throw :: Exception -> a
+prim_throw external
+
+
+-- Interleaved search
+
+data Seq a = Nil | Cons a (Seq a) | Continued (Seq a)
+
+list :: Seq a -> [a]
+list Nil = []
+list (Cons x xs) = x : list xs
+list (Continued xs) = list xs
+
+interleave :: Seq a -> Seq a -> Seq a
+interleave Nil              ys             = Continued ys
+interleave (Cons x xs)      ys             = Cons x (interleave ys xs)
+interleave xs@(Continued _) Nil            = xs
+interleave (Continued xs)   (Cons x ys)    = Cons x (interleave xs ys)
+interleave (Continued xs)   (Continued ys) = Continued (interleave xs ys)
+
+seq :: SearchTree a -> Seq a
+seq Fail        = Nil
+seq (Value x)   = Cons x Nil
+seq (Choice ts) = foldr1 interleave (Nil : map seq (filter isValOrChoice ts))
+seq Suspend     = Nil
+
+isValOrChoice :: SearchTree _ -> Bool
+isValOrChoice Fail       = False
+isValOrChoice (Value _)  = True
+isValOrChoice (Choice _) = True
+isValOrChoice Suspend    = False
+
+allValuesI :: SearchTree a -> [a]
+allValuesI = list . seq
diff --git a/src/lib/Curry/Module/Meta.hs.include b/src/lib/Curry/Module/Meta.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Meta.hs.include
@@ -0,0 +1,298 @@
+[ForFunction "prim_isFree"
+,ForFunction "headNormalFormIO"
+,ForFunction "searchTree"
+,ForFunction "gnfIO"
+,ForFunction "ghnfIO"
+,ForFunction "nfIO"
+,ForFunction "hnfIO"
+,ForType "OrRef" Nothing]
+
+import System.Mem.Weak ( addFinalizer )
+import Control.Concurrent
+import System.IO.Unsafe ( unsafeInterleaveIO )
+import Debug.Trace ( trace )
+import Data.List
+
+data C_OrRef = C_OrRef OrRef
+  | C_OrRefFail Curry.RunTimeSystem.C_Exceptions
+  | C_OrRefOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches C_OrRef)
+
+instance BaseCurry C_OrRef where
+  nf f x state = f(x)(state)
+
+  gnf f x state = f(x)(state)
+
+  generator _ = error "free Variable of type OrRef"
+
+  failed  = C_OrRefFail
+
+  branching  = C_OrRefOr
+
+  consKind (C_OrRefOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (C_OrRefFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (C_OrRefFail x) = x
+
+  orRef (C_OrRefOr x _) = x
+
+  branches (C_OrRefOr _ x) = x
+
+instance Curry C_OrRef where
+  strEq (C_OrRef x1) (C_OrRef y1) _ 
+     = if x1 Prelude.== y1 then strEqSuccess else strEqFail "OrRef"
+  strEq x0 _ _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (C_OrRef x1) (C_OrRef y1) _ = 
+    if x1 Prelude.== y1 then C_True else C_False
+  eq _ _ _ = C_False
+
+  typeName _ = "OrRef"
+
+  propagate _ o _ = o
+  
+  foldCurry _ c _ _ = c
+
+  showQ d (C_OrRef x1) = showParen (d>10) (showString "Unsafe.OrRef" . showsPrec d x1)
+
+
+
+
+
+instance Show C_OrRef where
+  showsPrec d (C_OrRef x1) = showParen (d>10) (showString "OrRef" . showsPrec d x1)
+
+
+instance Read C_OrRef where
+  readsPrec d r = [ (C_OrRef ref,s) | (ref,s) <- readsPrec d r]
+
+
+---------------------------------------------------------------------------------
+-- test for free variable
+---------------------------------------------------------------------------------
+
+prim_isFree :: (Curry t0) => t0 -> Result (C_IO (C_Either t0 t0))
+prim_isFree x _ = C_IO (\ _ -> case consKind x of
+  Branching -> Prelude.return (IOVal (if isGenerator (orRef x) 
+                              then C_Left x 
+                              else C_Right x))
+  _         -> Prelude.return (IOVal (C_Right x)))
+
+---------------------------------------------------------------------------------
+-- various normal forms in io monad
+---------------------------------------------------------------------------------
+
+-- yield head normal form with current state 
+-- (including fetching and looking up variable bindings)
+-- then apply continuation on it and make sure that you got a value
+-- of type io before finally executing that action.
+
+headNormalFormIO :: (Curry a,Curry b) => Prim (a -> Result (C_IO b)) -> a -> Result (C_IO b)
+headNormalFormIO cont x _ = 
+  C_IO (hnfCTC (\ x' st -> hnfCTC exec2 (apply cont x' st) st) x)
+
+searchTree :: Curry a => a -> Result (C_SearchTree a)
+searchTree = searchTr 
+
+hnfIO  x _ = C_IO (hnfCTC  (\ x _ -> Prelude.return (IOVal x)) x)
+nfIO   x _ = C_IO (nfCTC   (\ x _ -> Prelude.return (IOVal x)) x)
+gnfIO  x _ = C_IO (ghnfCTC (\ x _ -> Prelude.return (IOVal x)) x)
+ghnfIO x _ = C_IO (ghnfCTC (\ x _ -> Prelude.return (IOVal x)) x)
+
+---------------------------------------------------------------------------------
+-- rich search trees
+---------------------------------------------------------------------------------
+
+getRichSearchTree :: Curry a => a -> Result (C_IO (C_RichSearchTree a))
+getRichSearchTree x _ = C_IO (\ state -> Prelude.return (IOVal (richSearchTr x state)))
+
+richSearchTree :: Curry a => a -> Result (C_RichSearchTree a)
+richSearchTree = richSearchTr 
+
+--inject :: Curry a => C_Context -> a -> C_RichSearchTree a
+--inject (Context c) = richSearchTr c
+ 
+richSearchTr :: Curry a => a -> Result (C_RichSearchTree a)
+richSearchTr x state = 
+  transVal (nfCTC (nfCTC (\ x _ -> x)) x state)
+  where
+    transVal x = case consKind x of
+                   Val       -> C_RichValue x
+                   Failed    -> C_RichFail (toCurry (exceptions x))
+                   Branching -> transBranching (orRef x) (branches x)
+
+    transBranching _  []         = C_RichFail (C_ErrorCall List)
+    transBranching _  [x]        = transVal x
+    transBranching r  xs@(_:_:_) = C_RichChoice (C_OrRef r)
+                                            (fromHaskellList (map transVal xs))
+
+instance ConvertCH C_Exception Exception where
+  toCurry (ErrorCall s)        = C_ErrorCall (toCurry s)
+  toCurry (PatternMatchFail s) = C_PatternMatchFail (toCurry s)
+  toCurry (AssertionFailed s)  = C_AssertionFailed (toCurry s)
+  toCurry (IOException s)      = C_IOException (toCurry s)
+  toCurry PreludeFailed        = C_PreludeFailed
+
+  fromCurry (C_ErrorCall s)        = ErrorCall (fromCurry s)
+  fromCurry (C_PatternMatchFail s) = PatternMatchFail (fromCurry s)
+  fromCurry (C_AssertionFailed s)  = AssertionFailed (fromCurry s)
+  fromCurry (C_IOException s)      = IOException (fromCurry s)
+  fromCurry C_PreludeFailed        = PreludeFailed
+
+---------------------------------------------------------------------------------
+-- parallel search
+---------------------------------------------------------------------------------
+
+parallelSearch :: Curry a => a -> Result (C_IO (List a))
+parallelSearch v _ = C_IO (\state -> do
+  chan <- newChan
+  mvar <- newEmptyMVar
+  qsem <- newMyQSem 0
+  tid <- forkIO (searchThread qsem mvar chan 
+                              (nfCTC (nfCTC (\ x _ -> x)) v state))
+  putMVar mvar [tid]
+  --addFinalizer res (stopSearch mvar2)
+  res <- myGetChanContents qsem chan
+  Prelude.return (IOVal (fromHaskellList res)))
+
+
+myGetChanContents :: Show a => MyQSem -> Chan (Maybe a) -> IO [a]
+myGetChanContents qsem chan =
+  unsafeInterleaveIO ( do
+    decMyQSem qsem
+    x <- readChan chan
+    case x of
+         Nothing -> Prelude.return []
+         Just y -> do
+            xs <- myGetChanContents qsem chan
+            Prelude.return (y:xs) )
+
+
+stopSearch :: MVar [ThreadId] -> IO ()
+stopSearch mvar = do
+  print "start"
+  ids <- takeMVar mvar
+  mapM_ killThread ids
+  --putMVar mvar []
+
+
+removeId :: MVar [ThreadId] -> Chan (Maybe a) -> ThreadId -> IO ()
+removeId mvar chan tid = do
+  ids <- takeMVar mvar
+  let newids = delete tid ids
+  case newids of
+       [] -> writeChan chan Nothing -- >> putMVar mvar []
+       _  -> putMVar mvar newids 
+
+
+searchThread :: Curry a => MyQSem -> MVar [ThreadId] -> Chan (Maybe a) 
+             -> a -> IO ()
+searchThread qsem mvar chan x = do
+  case consKind x of
+    Val       -> incMyQSem qsem >> writeChan chan (Just x) >> terminate
+    Failed    -> terminate
+    Branching -> do
+      --yield
+      testMyQSem qsem
+      let b:bs = branches x
+      -- to prevent the threads from terminating till their Ids are registered
+      ids <- takeMVar mvar  
+      newIds <- mapM (forkIO . searchThread qsem mvar chan) bs
+      putMVar mvar (newIds++ids)
+      searchThread qsem mvar chan b
+ where
+  noThreads = do
+    ids <- takeMVar mvar
+    putStrLn ("noThreads: " ++ show (length ids))
+    putMVar mvar ids
+  terminate = do
+    tid <- myThreadId
+    removeId mvar chan tid
+
+newtype MyQSem = MyQSem (MVar (Int, [MVar ()]))
+
+-- |Build a new 'MyQSem'
+newMyQSem :: Int -> IO MyQSem
+newMyQSem init = do
+   sem <- newMVar (init,[])
+   Prelude.return (MyQSem sem)
+
+
+-- |Wait for a unit to become available
+incMyQSem :: MyQSem -> IO ()
+incMyQSem (MyQSem sem) = do
+   (avail,blocked) <- takeMVar sem
+   putMVar sem (avail+1,blocked)
+
+
+-- |Signal that a unit of the 'MyQSem' is available
+decMyQSem :: MyQSem -> IO ()
+decMyQSem (MyQSem sem) = do
+   (avail,blocked) <- takeMVar sem
+   if avail>0 then putMVar sem (avail-1,blocked)
+              else mapM_ (flip putMVar ()) blocked >> putMVar sem (avail-1,[]) 
+
+
+testMyQSem :: MyQSem -> IO ()
+testMyQSem (MyQSem sem) = do
+   x@(avail,blocked) <- takeMVar sem
+   if avail<0 then putMVar sem x
+              else do
+                block <- newEmptyMVar
+                putMVar sem (avail,block:blocked)
+                takeMVar block
+
+-------------------------------
+-- covering non-determinism
+-------------------------------
+
+cover :: Curry a => a -> Result a
+cover x st = case consKind x of
+              Branching -> branching (Curry.RunTimeSystem.cover (orRef x)) 
+                                     (map (flip Curry.Module.Meta.cover st) (branches x))
+              _ -> x
+
+-----------------------------------
+-- encapsulate to head normal form
+-----------------------------------
+
+st :: Curry a => a -> Result (C_SearchTree a)
+st x s = transVal (hnfCTC (\ x _ -> x) x s)
+  where
+    transVal x = case consKind x of
+        Val       -> C_Value x
+        Failed    -> C_Fail
+        Branching -> let ref = orRef x in 
+          if   isCovered ref
+          then C_SearchTreeOr (uncover ref) (map (flip st s) (branches x))
+          else C_Choice (fromHaskellList (map transVal (branches x)))
+
+-----------------------------------
+-- encapsulate to head normal form
+-----------------------------------
+
+richST :: Curry a => a -> Result (C_RichSearchTree a)
+richST x s = transVal (hnfCTC (\ x _ -> x) x s)
+  where
+    transVal x = case consKind x of
+        Val       -> C_RichValue x
+        Failed    -> C_RichFail (toCurry (exceptions x))
+        Branching -> let ref = orRef x in 
+          if   isCovered ref
+          then C_RichSearchTreeOr (uncover ref) 
+                                  (map (flip richST s) (branches x))
+          else C_RichChoice (C_OrRef (orRef x))
+                        (fromHaskellList (map transVal (branches x)))
+
+-----------------------------
+-- the general question mark
+-----------------------------
+
+ors :: Curry a => List a -> Result a
+ors xs _ = branching (error "Unsafe.ors") (toHaskellList xs)
+
+
+-- temporarily added
+
+prim_throw :: Curry a => C_Exception -> Result a
+prim_throw e _ = Curry.RunTimeSystem.failed (fromCurry e)
diff --git a/src/lib/Curry/Module/OptimizeST.hs.include b/src/lib/Curry/Module/OptimizeST.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/OptimizeST.hs.include
@@ -0,0 +1,1 @@
+[ForFunction "showSearchTree"]
diff --git a/src/lib/Curry/Module/Parser.curry b/src/lib/Curry/Module/Parser.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Parser.curry
@@ -0,0 +1,122 @@
+------------------------------------------------------------------------------
+--- Library with functional logic parser combinators.
+---
+--- Adapted from: Rafael Caballero and Francisco J. Lopez-Fraguas:
+---               A Functional Logic Perspective of Parsing.
+---               In Proc. FLOPS'99, Springer LNCS 1722, pp. 85-99, 1999
+---
+--- @author Michael Hanus
+--- @version March 2000
+------------------------------------------------------------------------------
+
+module Parser where
+
+-- Operator declarations for the parser combinators:
+
+infixr 4 <*>
+infixr 3 >>>
+infixr 2 <|>, <||>
+
+-- We distinguish two kind of parsers:
+
+-- A parser without a representation has type "[token] -> [token]":
+-- it parses a list of tokens and returns the remaining unparsed tokens
+
+type Parser token = [token] -> [token]
+
+-- A parser with representation has type "rep -> [token] -> [token]":
+-- in addition to the input tokens, it has the representation as an argument
+-- (which is usually a free variable bound to the representation after parsing)
+
+type ParserRep rep token = rep -> Parser token
+
+
+-- Now we can define the basic combinators for parsers:
+
+--- Combines two parsers without representation in an alternative manner.
+(<|>)  :: Parser t -> Parser t -> Parser t
+p <|> _ = \sentence -> p sentence
+_ <|> q = \sentence -> q sentence
+
+
+--- Combines two parsers with representation in an alternative manner.
+(<||>)  :: ParserRep r t -> ParserRep r t -> ParserRep r t
+p <||> q = \rep -> p rep <|> q rep
+
+
+--- Combines two parsers (with or without representation) in a
+--- sequential manner.
+(<*>)    :: Parser t -> Parser t -> Parser t
+p1 <*> p2 = seq
+ where seq sentence = p2 $!! p1 sentence 
+
+
+--- Attaches a representation to a parser without representation.
+(>>>) :: Parser token -> rep -> ParserRep rep token
+(parser >>> repexp) rep sentence = attach $!! parser sentence
+  where attach rest | repexp =:= rep = rest 
+
+
+-- Finally, we define some useful basic parsers and derived combinators:
+
+--- The empty parser which recognizes the empty word.
+empty :: Parser _
+empty sentence = sentence
+
+--- A parser recognizing a particular terminal symbol.
+terminal :: token -> Parser token
+terminal sym (token:tokens) | sym=:=token = tokens
+
+--- A parser (with representation) recognizing a terminal satisfying
+--- a given predicate.
+satisfy :: (token->Bool) -> ParserRep token token
+satisfy pred sym (token:tokens) | pred token =:= True & sym=:=token = tokens
+
+--- A star combinator for parsers. The returned parser
+--- repeats zero or more times a parser p with representation and
+--- returns the representation of all parsers in a list.
+star :: ParserRep rep token -> ParserRep [rep] token
+star p =    p x <*> (star p) xs >>> (x:xs)
+       <||> empty               >>> []         where x,xs free
+
+--- A some combinator for parsers. The returned parser
+--- repeats the argument parser (with representation) at least once.
+some :: ParserRep rep token -> ParserRep [rep] token
+some p = p x <*> (star p) xs >>> (x:xs)        where x,xs free
+
+
+{-----------------------------------------------------------------------
+
+As a simple example we define a parser for arithmetic expressions
+over natural numbers. The presentation of this parser is the value
+of the expression.
+
+expression   =  term t <*> plus_minus op <*> expression e  >>> (op t e)
+           <||> term
+ where op,t,e free
+
+term         =  factor f <*> prod_div op <*> term t        >>> (op f t)
+           <||> factor
+ where op,f,t free
+
+factor       =  terminal '(' <*> expression e <*> terminal ')'  >>> e
+           <||> num
+ where e free
+
+plus_minus   =  terminal '+'  >>> (+)
+           <||> terminal '-'  >>> (-)
+
+prod_div     =  terminal '*'  >>> (*)
+           <||> terminal '/'  >>> div
+
+num = some digit l >>> numeric_value l
+  where l free
+        numeric_value ds = foldl1 ((+).(10*)) (map (\c->ord c - ord '0') ds)
+
+digit = satisfy isDigit
+
+
+-- example application: expression val "(10+5*2)/4" =:= []
+
+-----------------------------------------------------------------------}
+
diff --git a/src/lib/Curry/Module/Prelude.curry b/src/lib/Curry/Module/Prelude.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Prelude.curry
@@ -0,0 +1,988 @@
+----------------------------------------------------------------------------
+--- The standard prelude of Curry.
+--- All top-level functions defined in this module
+--- are always available in any Curry program.
+----------------------------------------------------------------------------
+
+module Prelude where
+-- Lines beginning with "--++" are part of the prelude
+-- but cannot parsed by the compiler
+
+-- Infix operator declarations:
+
+infixl 9 !!
+infixr 9 .
+infixl 7 *, *^, `div`, `mod`
+infixl 6 +, +^, -, -^
+-- infixr 5 :                          -- declared together with list
+infixr 5 ++
+infix  4 =:=, ==, ===, /=, <, >, <=, >=, =:<=, <^, <=^, >^, >=^
+infix  4  `elem`, `notElem`
+infixr 3 &&
+infixr 2 ||
+infixl 1 >>, >>=
+infixr 0 $, $!, $!!, $#, $##, `seq`, &, &>, ?
+
+-- external base types for numbers and characters
+data Float
+data Char 
+type String = [Char]
+
+-- Some standard combinators:
+
+--- Function composition.
+(.)   :: (b -> c) -> (a -> b) -> (a -> c)
+f . g = \x -> f (g x)
+
+--- Identity function.
+id              :: a -> a
+id x            = x
+
+--- Constant function.
+const           :: a -> _ -> a
+const x _       = x
+
+--- Converts an uncurried function to a curried function.
+curry           :: ((a,b) -> c) -> a -> b -> c
+curry f a b     =  f (a,b)
+
+--- Converts an curried function to a function on pairs.
+uncurry         :: (a -> b -> c) -> (a,b) -> c
+uncurry f (a,b) = f a b
+
+--- (flip f) is identical to f but with the order of arguments reversed.
+flip            :: (a -> b -> c) -> b -> a -> c
+flip  f x y     = f y x
+
+--- Repeats application of a function until a predicate holds.
+until          :: (a -> Bool) -> (a -> a) -> a -> a
+until p f x     = if p x then x else until p f (f x)
+
+--- Right-associative application.
+($)             :: (a -> b) -> a -> b
+f $ x           = f x
+
+--- Right-associative application with strict evaluation of its argument
+--- to head normal form.
+($!)    :: (a -> b) -> a -> b
+($!) external
+
+--- Right-associative application with strict evaluation of its argument
+--- to normal form.
+($!!)    :: (a -> b) -> a -> b
+($!!) external
+
+--- Right-associative application with strict evaluation of its argument
+--- to head normal form. 
+--- Suspends until the result is bound to a non-variable term.
+($#) :: (a->b) -> a -> b
+($#) external
+
+--- Right-associative application with strict evaluation of its argument
+--- to ground normal form. 
+--- Suspends until the result is bound to a non-variable term.
+($##) :: (a->b) -> a -> b
+($##) external
+
+--- Evaluates the argument to spine form and returns it.
+--- Suspends until the result is bound to a non-variable spine.
+ensureSpine :: [a] -> [a] 
+ensureSpine = (ensureList $#)
+ where ensureList []     = []
+       ensureList (x:xs) = x : ensureSpine xs
+
+--- Evaluates the first argument to head normal form (which could also
+--- be a free variable) and returns the second argument.
+seq     :: _ -> a -> a
+seq x y = (const y) $! x
+
+
+
+--- Aborts the execution with an error message.
+error :: String -> _
+error s = prim_error $## s
+
+prim_error    :: String -> _
+prim_error external
+
+--- A non-reducible polymorphic function.
+--- It is useful to express a failure in a search branch of the execution.
+failed :: _ 
+failed external
+
+-- Boolean values
+data Bool = False | True 
+
+--- Sequential conjunction on Booleans.
+(&&)            :: Bool -> Bool -> Bool
+True  && x      = x
+False && _      = False
+ 
+
+--- Sequential disjunction on Booleans.
+(||)            :: Bool -> Bool -> Bool
+True  || _      = True
+False || x      = x
+ 
+
+--- Negation on Booleans.
+not             :: Bool -> Bool
+not True        = False
+not False       = True
+
+--- Useful name for the last condition in a sequence of conditional equations.
+otherwise       :: Bool
+otherwise       = True
+
+
+--- The standard conditional. It suspends if the condition is a free variable.
+if_then_else           :: Bool -> a -> a -> a
+if_then_else b t f = case b of True  -> t
+                               False -> f
+
+
+--- Ordering type. Useful as a result of comparison functions.
+data Ordering = LT | EQ | GT
+
+isLT LT = True
+isLT GT = False
+isLT EQ = False
+
+isGT LT = False
+isGT GT = True
+isGT EQ = False
+
+isEQ LT = False
+isEQ GT = False
+isEQ EQ = True
+
+{-compare :: Int -> Int -> Ordering
+compare x y | (prim_Int_le $# x) $# y = LT
+            | (prim_Int_le $# y) $# x = GT
+            | otherwise = EQ -}
+
+compare :: Int -> Int -> Ordering
+compare Zero    Zero    = EQ
+compare Zero    (Pos _) = LT
+compare Zero    (Neg _) = GT
+compare (Pos _) Zero    = GT
+compare (Pos x) (Pos y) = cmpNat x y
+compare (Pos _) (Neg _) = GT
+compare (Neg _) Zero    = LT
+compare (Neg _) (Pos _) = LT
+compare (Neg x) (Neg y) = cmpNat y x
+
+{-
+compare x y = compareData [toNumData x] [toNumData y]
+  where
+    compareData :: [NumData] -> [NumData] -> Ordering
+    compareData [] []    = EQ
+    compareData (NumData xi xts:xs) (NumData yi yts:ys)
+      | int_le xi yi = LT
+      | int_le yi xi = GT
+      | otherwise    = compareData (xts++xs) (yts++ys)
+
+-}
+--- Less-than on ground data terms.
+(<)  :: Int -> Int -> Bool  
+x < y = compare x y == LT
+          
+--- Greater-than on ground data terms.
+(>)  :: Int -> Int -> Bool  
+x > y = compare x y == GT
+
+--- Less-or-equal on ground data terms.
+(<=)  ::  Int -> Int -> Bool 
+x <= y = compare x y /= GT
+
+--- Greater-or-equal on ground data terms.
+(>=) ::  Int -> Int -> Bool
+x >= y = compare x y /= LT
+
+--- Maximum of ground data terms.
+max  ::  Int -> Int -> Int  
+max x y = case compare x y of 
+  LT -> y
+  _  -> x
+
+---  Minimum of ground data terms
+min  :: Int -> Int -> Int
+min  x y = case compare x y of 
+  GT -> y
+  _  -> x
+         
+--- Equality on finite ground data terms.
+(==)            :: a -> a -> Bool
+(==) external
+
+--- Disequality.
+(/=)            :: a -> a -> Bool
+x /= y          = not (x==y)
+
+
+-- Pairs
+
+--++ data (a,b) = (a,b)
+
+--- Selects the first component of a pair.
+fst             :: (a,_) -> a
+fst (x,_)       = x
+
+--- Selects the second component of a pair.
+snd             :: (_,b) -> b
+snd (_,y)       = y
+
+
+-- Unit type
+--++ data () = ()
+
+-- Lists
+
+--++ data [a] = [] | a : [a]
+
+--- Computes the first element of a list.
+head            :: [a] -> a
+head (x:_)      = x
+
+--- Computes the remaining elements of a list.
+tail            :: [a] -> [a]
+tail (_:xs)     = xs
+
+--- Is a list empty?
+null            :: [_] -> Bool
+null []         = True
+null (_:_)      = False
+
+--- Concatenates two lists.
+--- Since it is flexible, it could be also used to split a list
+--- into two sublists etc.
+(++)            :: [a] -> [a] -> [a]
+[]     ++ ys    = ys
+(x:xs) ++ ys    = x : xs++ys
+
+--- Computes the length of a list.
+length          :: [_] -> Int
+length []       = 0
+length (_:xs)   = 1 + length xs
+
+--- List index (subscript) operator, head has index 0.
+(!!)            :: [a] -> Int -> a
+(x:xs) !! n | n==0      = x
+            | n>0       = xs !! (n-1)
+
+--- Map a function on all elements of a list.
+map             :: (a->b) -> [a] -> [b]
+map _ []        = []
+map f (x:xs)    = f x : map f xs
+
+--- Accumulates all list elements by applying a binary operator from
+--- left to right. Thus,
+--- <CODE>foldl f z [x1,x2,...,xn] = (...((z `f` x1) `f` x2) ...) `f` xn</CODE>
+foldl            :: (a -> b -> a) -> a -> [b] -> a
+foldl _ z []     = z
+foldl f z (x:xs) = foldl f (f z x) xs
+
+--- Accumulates a non-empty list from left to right.
+foldl1           :: (a -> a -> a) -> [a] -> a
+foldl1 f (x:xs)  = foldl f x xs
+
+--- Accumulates all list elements by applying a binary operator from
+--- right to left. Thus,
+--- <CODE>foldr f z [x1,x2,...,xn] = (x1 `f` (x2 `f` ... (xn `f` z)...))</CODE>
+foldr            :: (a->b->b) -> b -> [a] -> b
+foldr _ z []     = z
+foldr f z (x:xs) = f x (foldr f z xs)
+
+--- Accumulates a non-empty list from right to left:
+foldr1              :: (a -> a -> a) -> [a] -> a
+foldr1 _ [x]        = x
+foldr1 f (x1:x2:xs) = f x1 (foldr1 f (x2:xs))
+
+--- Filters all elements satisfying a given predicate in a list.
+filter            :: (a -> Bool) -> [a] -> [a]
+filter _ []       = []
+filter p (x:xs)   = if p x then x : filter p xs
+                           else filter p xs
+
+--- Joins two lists into one list of pairs. If one input list is shorter than
+--- the other, the additional elements of the longer list are discarded.
+zip               :: [a] -> [b] -> [(a,b)]
+zip []     _      = []
+zip (_:_)  []     = []
+zip (x:xs) (y:ys) = (x,y) : zip xs ys
+
+--- Joins three lists into one list of triples. If one input list is shorter
+--- than the other, the additional elements of the longer lists are discarded.
+zip3                      :: [a] -> [b] -> [c] -> [(a,b,c)]
+zip3 []     _      _      = []
+zip3 (_:_)  []     _      = []
+zip3 (_:_)  (_:_)  []     = []
+zip3 (x:xs) (y:ys) (z:zs) = (x,y,z) : zip3 xs ys zs
+
+--- Joins two lists into one list by applying a combination function to
+--- corresponding pairs of elements. Thus <CODE>zip = zipWith (,)</CODE>
+zipWith                 :: (a->b->c) -> [a] -> [b] -> [c]
+zipWith _ []     _      = []
+zipWith _ (_:_)  []     = []
+zipWith f (x:xs) (y:ys) = f x y : zipWith f xs ys
+
+--- Joins three lists into one list by applying a combination function to
+--- corresponding triples of elements. Thus <CODE>zip3 = zipWith3 (,,)</CODE>
+zipWith3                        :: (a->b->c->d) -> [a] -> [b] -> [c] -> [d]
+zipWith3 _ []     _      _      = []
+zipWith3 _ (_:_)  []     _      = []
+zipWith3 _ (_:_)  (_:_)  []     = []
+zipWith3 f (x:xs) (y:ys) (z:zs) = f x y z : zipWith3 f xs ys zs
+
+--- Transforms a list of pairs into a pair of lists.
+unzip               :: [(a,b)] -> ([a],[b])
+unzip []            = ([],[])
+unzip ((x,y):ps)    = (x:xs,y:ys) where (xs,ys) = unzip ps
+
+--- Transforms a list of triples into a triple of lists.
+unzip3              :: [(a,b,c)] -> ([a],[b],[c])
+unzip3 []           = ([],[],[])
+unzip3 ((x,y,z):ts) = (x:xs,y:ys,z:zs) where (xs,ys,zs) = unzip3 ts
+
+--- Concatenates a list of lists into one list.
+concat            :: [[a]] -> [a]
+concat l          = foldr (++) [] l
+
+--- Maps a function from elements to lists and merges the result into one list.
+concatMap         :: (a -> [b]) -> [a] -> [b]
+concatMap f       = concat . map f
+
+--- Infinite list of repeated applications of a function f to an element x.
+--- Thus, <CODE>iterate f x = [x, f x, f (f x),...]</CODE>
+iterate           :: (a -> a) -> a -> [a]
+iterate f x       = x : iterate f (f x)
+
+--- Infinite list where all elements have the same value.
+--- Thus, <CODE>repeat x = [x, x, x,...]</CODE>
+repeat            :: a -> [a]
+repeat x          = x : repeat x
+
+--- List of length n where all elements have the same value.
+replicate         :: Int -> a -> [a]
+replicate n x     = take n (repeat x)
+
+--- Returns prefix of length n.
+take              :: Int -> [a] -> [a]
+take (Neg _)   _      = []
+take Zero      _      = []
+take (Pos _)   []     = []
+take (Pos n) (x:xs) = x : take (Pos n-1) xs
+
+--- Returns suffix without first n elements.
+drop              :: Int -> [a] -> [a]
+drop n l          = if n<=0 then l else dropp n l
+   where dropp _ []     = []
+         dropp m (_:xs) = drop (m-1) xs
+
+--- (splitAt n xs) is equivalent to (take n xs, drop n xs)
+splitAt           :: Int -> [a] -> ([a],[a])
+splitAt n l       = if n<=0 then ([],l) else splitAtp n l
+   where splitAtp _ []     = ([],[])
+         splitAtp m (x:xs) = let (ys,zs) = splitAt (m-1) xs in (x:ys,zs)
+
+--- Returns longest prefix with elements satisfying a predicate.
+takeWhile          :: (a -> Bool) -> [a] -> [a]
+takeWhile _ []     = []
+takeWhile p (x:xs) = if p x then x : takeWhile p xs else []
+
+--- Returns suffix without takeWhile prefix.
+dropWhile          :: (a -> Bool) -> [a] -> [a]
+dropWhile _ []     = []
+dropWhile p (x:xs) = if p x then dropWhile p xs else x:xs
+
+--- (span p xs) is equivalent to (takeWhile p xs, dropWhile p xs)
+span               :: (a -> Bool) -> [a] -> ([a],[a])
+span _ []          = ([],[])
+span p (x:xs)
+       | p x       = let (ys,zs) = span p xs in (x:ys, zs)
+       | otherwise = ([],x:xs)
+
+--- (break p xs) is equivalent to (takeWhile (not.p) xs, dropWhile (not.p) xs).
+--- Thus, it breaks a list at the first occurrence of an element satisfying p.
+break              :: (a -> Bool) -> [a] -> ([a],[a])
+break p            = span (not . p)
+
+--- Breaks a string into a list of lines where a line is terminated at a
+--- newline character. The resulting lines do not contain newline characters.
+lines        :: String -> [String]
+lines []     = []
+lines (x:xs) = let (l,xs_l) = splitline (x:xs) in l : lines xs_l
+ where splitline []     = ([],[])
+       splitline (c:cs) = if c=='\n'
+                          then ([],cs)
+                          else let (ds,es) = splitline cs in (c:ds,es)
+
+--- Concatenates a list of strings with terminating newlines.
+unlines    :: [String] -> String
+unlines ls = concatMap (++"\n") ls
+
+--- Breaks a string into a list of words where the words are delimited by
+--- white spaces.
+words      :: String -> [String]
+words s    = let s1 = dropWhile isSpace s
+              in if s1=="" then []
+                           else let (w,s2) = break isSpace s1
+                                 in w : words s2
+ where
+   isSpace c = c == ' '  || c == '\t' || c == '\n' || c == '\r'
+
+--- Concatenates a list of strings with a blank between two strings.
+unwords    :: [String] -> String
+unwords ws = if ws==[] then []
+                       else foldr1 (\w s -> w ++ ' ':s) ws
+
+--- Reverses the order of all elements in a list.
+reverse    :: [a] -> [a]
+reverse    = foldl (flip (:)) []
+
+--- Computes the conjunction of a Boolean list.
+and        :: [Bool] -> Bool
+and        = foldr (&&) True
+
+--- Computes the disjunction of a Boolean list.
+or         :: [Bool] -> Bool
+or         = foldr (||) False
+
+--- Is there an element in a list satisfying a given predicate?
+any        :: (a -> Bool) -> [a] -> Bool
+any p      = or . map p
+
+--- Is a given predicate satisfied by all elements in a list?
+all        :: (a -> Bool) -> [a] -> Bool
+all p      = and . map p
+
+--- Element of a list?
+elem       :: a -> [a] -> Bool
+elem x     = any (x==)
+
+--- Not element of a list?
+notElem    :: a -> [a] -> Bool
+notElem x  = all (x/=)
+
+--- Looks up a key in an association list.
+lookup            :: a -> [(a,b)] -> Maybe b
+lookup _ []       = Nothing
+lookup k ((x,y):xys)
+      | k==x      = Just y
+      | otherwise = lookup k xys
+
+--- Generates an infinite sequence of ascending integers.
+enumFrom               :: Int -> [Int]                   -- [n..]
+enumFrom n             = n : enumFrom (n+1)
+
+--- Generates an infinite sequence of integers with a particular in/decrement.
+enumFromThen           :: Int -> Int -> [Int]            -- [n1,n2..]
+enumFromThen n1 n2     = iterate ((n2-n1)+) n1
+
+--- Generates a sequence of ascending integers.
+enumFromTo             :: Int -> Int -> [Int]            -- [n..m]
+enumFromTo n m         = if n>m then [] else n : enumFromTo (n+1) m
+
+--- Generates a sequence of integers with a particular in/decrement.
+enumFromThenTo         :: Int -> Int -> Int -> [Int]     -- [n1,n2..m]
+enumFromThenTo n1 n2 m = takeWhile p (enumFromThen n1 n2)
+                         where p x | n2 >= n1  = (x <= m)
+                                   | otherwise = (x >= m)
+
+
+--- Converts a character into its ASCII value.
+ord :: Char -> Int
+ord c = prim_ord $## c
+
+prim_ord :: Char -> Int
+prim_ord external
+
+--- Converts an ASCII value into a character.
+chr :: Int -> Char
+chr i = prim_chr $## i
+
+prim_chr :: Int -> Char
+prim_chr external
+
+-- Natural numbers
+
+data Nat = IHi | O Nat | I Nat
+
+succ :: Nat -> Nat
+succ (O bs) = I bs
+succ (I bs) = O (succ bs)
+succ IHi = O IHi
+
+(+^) :: Nat -> Nat -> Nat
+O x +^ O y = O (x +^ y)
+O x +^ I y = I (x +^ y)
+O x +^ IHi = I x
+I x +^ O y = I (x +^ y)
+I x +^ I y = O (succ x +^ y)
+I x +^ IHi = O (succ x)
+IHi +^ y   = succ y
+
+cmpNat :: Nat -> Nat -> Ordering
+cmpNat IHi IHi   = EQ
+cmpNat IHi (O _) = LT
+cmpNat IHi (I _) = LT
+cmpNat (O _) IHi = GT
+cmpNat (I _) IHi = GT
+cmpNat (O x) (O y) = cmpNat x y
+cmpNat (I x) (I y) = cmpNat x y
+cmpNat (O x) (I y) = cmpNatLT x y
+cmpNat (I x) (O y) = cmpNatGT x y
+
+cmpNatLT :: Nat -> Nat -> Ordering
+cmpNatLT IHi _     = LT
+cmpNatLT (O _) IHi = GT
+cmpNatLT (I _) IHi = GT
+cmpNatLT (O x) (O y) = cmpNatLT x y
+cmpNatLT (I x) (I y) = cmpNatLT x y
+cmpNatLT (O x) (I y) = cmpNatLT x y
+cmpNatLT (I x) (O y) = cmpNatGT x y
+
+cmpNatGT :: Nat -> Nat -> Ordering
+cmpNatGT _   IHi   = GT
+cmpNatGT IHi (O _) = LT
+cmpNatGT IHi (I _) = LT
+cmpNatGT (O x) (O y) = cmpNatGT x y
+cmpNatGT (I x) (I y) = cmpNatGT x y
+cmpNatGT (O x) (I y) = cmpNatLT x y
+cmpNatGT (I x) (O y) = cmpNatGT x y
+
+(<^), (>^), (<=^), (>=^) :: Nat -> Nat -> Bool
+
+x <^  y = isLT (cmpNat x y)
+x >^  y = isGT (cmpNat x y)
+x <=^ y = not (isGT (cmpNat x y))
+x >=^ y = not (isLT (cmpNat x y))
+
+(*^) :: Nat -> Nat -> Nat
+IHi *^ y = y
+I x *^ y = O (y *^ x) +^ y
+O x *^ y = O (x *^ y)
+
+pred :: Nat -> Nat
+pred (O IHi)     = IHi
+pred (O x@(O _)) = I (pred x)
+pred (O (I x))   = I (O x) 
+pred (I x)       = O x
+
+-- Integers
+
+data Int = Neg Nat | Zero | Pos Nat
+
+-- basic operations (+1), (-1), (*2)
+
+inc, dec, mult2 :: Int -> Int
+
+inc Zero = Pos IHi
+inc (Pos n) = Pos (succ n)
+inc (Neg IHi) = Zero
+inc (Neg (O n)) = Neg (pred (O n))
+inc (Neg (I n)) = Neg (O n)
+
+dec Zero = Neg IHi
+dec (Neg n) = Neg (succ n)
+dec (Pos IHi) = Zero
+dec (Pos (O n)) = Pos (pred (O n))
+dec (Pos (I n)) = Pos (O n)
+
+mult2 (Pos n) = Pos (O n)
+mult2 Zero    = Zero
+mult2 (Neg n) = Neg (O n)
+
+(-^) :: Nat -> Nat -> Int
+IHi -^ y   = inc (Neg y)             -- 1-n = 1+(-n)
+O x -^ IHi = Pos (pred (O x))    
+O x -^ O y = mult2 (x -^ y)
+O x -^ I y = dec (mult2 (x -^ y))
+I x -^ IHi = Pos (O x)
+I x -^ O y = inc (mult2 (x -^ y))    -- 2*n+1 - 2*m = 1+2*(n-m)
+I x -^ I y = mult2 (x -^ y)          -- 2*n+1 - (2*m+1) = 2*(n-m)
+
+div2 :: Nat -> Nat
+div2 (O x) = x
+div2 (I x) = x
+
+mod2 :: Nat -> Int
+mod2 IHi   = Pos IHi
+mod2 (O _) = Zero
+mod2 (I _) = Pos IHi
+ 
+divmodNat :: Nat -> Nat -> (Int,Int)
+divmodNat x y 
+  | y==IHi    = (Pos x,Zero) 
+  | otherwise = case cmpNat x y of
+    EQ -> (Pos IHi,Zero)
+    LT -> (Zero, Pos x)
+    GT -> case divmodNat (div2 x) y of
+      (Zero,_)      -> (Pos IHi,x -^ y)
+      (Pos d,Zero)  -> (Pos (O d),mod2 x)
+      (Pos d,Pos m) -> case divmodNat (shift x m) y of
+        (Zero,m')   -> (Pos (O d),m')
+        (Pos d',m') -> (Pos (O d +^ d'),m')
+  where
+    shift (O _) n = O n
+    shift (I _) n = I n
+
+
+--- Adds two integers.
+(+)   :: Int -> Int -> Int
+Pos x + Pos y = Pos (x +^ y)
+Neg x + Neg y = Neg (x +^ y)
+Pos x + Neg y = x -^ y
+Neg x + Pos y = y -^ x
+Zero  + x     = x
+x@(Pos _) + Zero = x
+x@(Neg _) + Zero = x
+
+--- Subtracts two integers.
+(-)   :: Int -> Int -> Int
+x - Neg y = x + Pos y
+x - Pos y = x + Neg y
+x - Zero  = x
+
+--- Multiplies two integers.
+(*)   :: Int -> Int -> Int
+Pos x * Pos y = Pos (x *^ y)
+Pos x * Neg y = Neg (x *^ y)
+Neg x * Neg y = Pos (x *^ y)
+Neg x * Pos y = Neg (x *^ y)
+Zero  * _     = Zero
+Pos _ * Zero  = Zero
+Neg _ * Zero  = Zero
+
+--- Integer division. The value is the integer quotient of its arguments
+--- and always truncated towards zero.
+--- Thus, the value of <code>13 `div` 5</code> is <code>2</code>,
+--- and the value of <code>-15 `div` 4</code> is <code>-3</code>.
+--- Integer remainder. The value is the remainder of the integer division and
+--- it obeys the rule <code>x `mod` y = x - y * (x `div` y)</code>.
+--- Thus, the value of <code>13 `mod` 5</code> is <code>3</code>,
+--- and the value of <code>-15 `mod` 4</code> is <code>-3</code>.
+
+divmod   :: Int -> Int -> (Int,Int)
+divmod Zero    _       = (Zero,Zero)
+divmod (Pos _) Zero    = error "division by 0"
+divmod (Pos x) (Pos y) = divmodNat x y
+divmod (Pos x) (Neg y) = let (d,m) = divmodNat x y in (negate d,m)
+divmod (Neg _) Zero    = error "division by 0"
+divmod (Neg x) (Pos y) = let (d,m) = divmodNat x y in (negate d,negate m)
+divmod (Neg x) (Neg y) = let (d,m) = divmodNat x y in (d,negate m)
+
+div,mod :: Int -> Int -> Int
+x `div` y = fst (divmod x y)
+
+x `mod` y = snd (divmod x y)
+
+--- Unary minus. Usually written as "- e".
+negate :: Int -> Int
+negate Zero    = Zero
+negate (Pos x) = Neg x
+negate (Neg x) = Pos x
+
+
+
+-- Constraints
+data Success = Success
+
+--- The always satisfiable constraint.
+success :: Success
+success = Success
+
+--- The equational constraint.
+--- (e1 =:= e2) is satisfiable if both sides e1 and e2 can be
+--- reduced to a unifiable data term (i.e., a term without defined
+--- function symbols).
+(=:=)   :: a -> a -> Success
+x =:= y | x===y = success
+
+(===)   :: a -> a -> Bool
+(===) external
+
+
+--- Concurrent conjunction on constraints.
+--- An expression like (c1 & c2) is evaluated by evaluating
+--- the constraints c1 and c2 in a concurrent manner.
+(&)     :: Success -> Success -> Success
+(&) external
+
+--- Constrained expression.
+--- An expression like (c &> e) is evaluated by first solving
+--- constraint c and then evaluating e.
+(&>)          :: Success -> a -> a
+c &> x | c = x
+
+--andBreadth :: [Bool] -> Bool
+--andBreadth external
+
+-- Maybe type
+
+data Maybe a = Nothing | Just a 
+
+maybe              :: b -> (a -> b) -> Maybe a -> b
+maybe n _ Nothing  = n
+maybe _ f (Just x) = f x
+
+
+-- Either type
+
+data Either a b = Left a | Right b
+
+either               :: (a -> c) -> (b -> c) -> Either a b -> c
+either f _ (Left x)  = f x
+either _ g (Right x) = g x
+
+
+-- Monadic IO
+
+data IO _  -- conceptually: World -> (a,World)
+
+--- Sequential composition of actions.
+--- @param a - An action
+--- @param fa - A function from a value into an action
+--- @return An action that first performs a (yielding result r)
+---         and then performs (fa r)
+(>>=)             :: IO a -> (a -> IO b) -> IO b
+(>>=) external
+
+--- The empty action that directly returns its argument.
+return            :: a -> IO a
+return external
+
+--- Sequential composition of actions.
+--- @param a1 - An action
+--- @param a2 - An action
+--- @return An action that first performs a1 and then a2
+(>>)              :: IO _ -> IO b        -> IO b
+a >> b            = a >>= const b
+
+--- The empty action that returns nothing.
+done              :: IO ()
+done              = return ()
+
+--- An action that puts its character argument on standard output.
+putChar           :: Char -> IO ()
+putChar c = prim_putChar $## c
+
+prim_putChar           :: Char -> IO ()
+prim_putChar external
+
+--- An action that reads a character from standard output and returns it.
+getChar           :: IO Char
+getChar external
+
+--- An action that (lazily) reads a file and returns its contents.
+readFile :: String -> IO String
+readFile s = prim_readFile $## s
+
+prim_readFile          :: String -> IO String
+prim_readFile external
+
+--- An action that writes a file.
+--- @param filename - The name of the file to be written.
+--- @param contents - The contents to be written to the file.
+writeFile         :: String -> String -> IO ()
+writeFile fn s = (prim_writeFile $## fn) $## s
+
+prim_writeFile         :: String -> String -> IO ()
+prim_writeFile external
+
+--- An action that appends a string to a file.
+--- It behaves like writeFile if the file does not exist.
+--- @param filename - The name of the file to be written.
+--- @param contents - The contents to be appended to the file.
+appendFile        :: String -> String -> IO ()
+appendFile fn s = (prim_appendFile  $## fn) $## s
+
+prim_appendFile         :: String -> String -> IO ()
+prim_appendFile external
+
+--- Catches a possible failure during the execution of an I/O action.
+--- <CODE>(catchFail act err)</CODE>:
+--- apply action <CODE>act</CODE> and, if it fails,
+--- apply action <CODE>err</CODE>
+catchFail         :: IO a -> IO a -> IO a
+catchFail external
+
+--- Action to print a string on stdout.
+putStr            :: String -> IO ()
+putStr []         = done
+putStr (c:cs)     = putChar c >> putStr cs
+ 
+--- Action to print a string with a newline on stdout.
+putStrLn          :: String -> IO ()
+putStrLn cs       = putStr cs >> putChar '\n'
+
+--- Action to read a line from stdin.
+getLine           :: IO String
+getLine           = do c <- getChar
+                       if c=='\n' then return []
+                                  else do cs <- getLine
+                                          return (c:cs)
+
+--- Converts an arbitrary term into an external string representation.
+show    :: _ -> String
+show s = prim_show $## s
+
+prim_show    :: _ -> String
+prim_show external
+
+--- Converts a term into a string and prints it.
+print   :: _ -> IO ()
+print t = putStrLn (show t)
+
+--- Solves a constraint as an I/O action.
+--- Note: the constraint should be always solvable in a deterministic way
+doSolve :: Success -> IO ()
+doSolve constraint | constraint = done
+
+
+-- IO monad auxiliary functions:
+
+--- Executes a sequence of I/O actions and collects all results in a list.
+sequenceIO       :: [IO a] -> IO [a]
+sequenceIO []     = return []
+sequenceIO (c:cs) = do x  <- c
+                       xs <- sequenceIO cs
+                       return (x:xs)
+
+--- Executes a sequence of I/O actions and ignores the results.
+sequenceIO_        :: [IO _] -> IO ()
+sequenceIO_         = foldr (>>) done
+
+--- Maps an I/O action function on a list of elements.
+--- The results of all I/O actions are collected in a list.
+mapIO             :: (a -> IO b) -> [a] -> IO [b]
+mapIO f            = sequenceIO . map f
+
+--- Maps an I/O action function on a list of elements.
+--- The results of all I/O actions are ignored.
+mapIO_            :: (a -> IO _) -> [a] -> IO ()
+mapIO_ f           = sequenceIO_ . map f
+
+
+----------------------------------------------------------------
+-- Non-determinism:
+
+--- Non-deterministic choice <EM>par excellence</EM>.
+--- The value of <EM>x ? y</EM> is either <EM>x</EM> or <EM>y</EM>.
+--- @param x - The right argument.
+--- @param y - The left argument.
+--- @return either <EM>x</EM> or <EM>y</EM> non-deterministically.
+(?)   :: a -> a -> a
+x ? _ = x
+_ ? y = y
+
+----------------------------------------------------------------
+-- Encapsulated search:
+----------------------------------------------------------------
+
+--- Search trees represent the search space of evaluating a given 
+--- term. For example, the search tree corresponding to 
+--- the evaluation of
+--- (0?1) + (0?1) 
+--- is Or [Or [Value 0,Value 1],Or [Value 1,Value 2]]
+--- whereas the one corresponding to 
+--- let x=0?1 in x+x 
+--- is Or [Value 0,Value 2]. 
+data SearchTree a 
+  = Fail
+  | Value a 
+  | Choice [SearchTree a] 
+  | Suspend 
+ 
+--- Basic search control operator, providing the searchtree lazily with 
+--- respect to Or branches. The argument of the Value constructor is 
+--- always evaluated to full normal form. This guarantees that it is 
+--- really a value and does neither induce another fail nor a 
+--- branching.
+getSearchTree :: a -> IO (SearchTree a)
+getSearchTree external
+
+{-
+--- Basic operation for generic programming
+--- type Data represents arbitrary data types
+--- with the strings containing the names of 
+--- constructors
+
+data Data = Data String [Data]
+
+--- toData residuates on free variables
+--- example: toData (Just False) = Data "Just" [Data "False"]
+
+toData :: a -> Data
+toData external
+
+--- E.g. fromData (Data unknown "Nothing") = (Data 1 unknown) = Nothing 
+--- (modulo variable instanciation)
+fromData :: Data -> a
+fromData external
+
+--- num data might make 
+data NumData = NumData Int [NumData]
+
+--- toNumData residuates on free variables
+toNumData :: a -> NumData
+toNumData external
+
+--- toData/fromData are enough for basic generics like 
+--- show, read, compare and (==).
+--- See compare above for a simple example.
+--- Other operations can be found in Module Generic
+-}
+ 
+--- depth first search
+allValuesD :: SearchTree a -> [a]
+allValuesD (Value x) = [x]
+allValuesD Fail      = []
+allValuesD Suspend   = []
+allValuesD (Choice xs)   = concatMap allValuesD xs
+
+--- breadth first search
+allValuesB :: SearchTree a -> [a]
+allValuesB st = unfoldOrs [st]
+  where
+    partition (Value x) y = let (vs,ors) = y in (x:vs,ors)
+    partition (Choice xs)   y = let (vs,ors) = y in (vs,xs++ors)
+    partition Fail      y = y
+    partition Suspend   y = y
+
+    unfoldOrs [] = []
+    unfoldOrs (x:xs) = let (vals,ors) = foldr partition ([],[]) (x:xs) in
+      vals ++ unfoldOrs ors
+
+--- Inject operator which adds the application of the unary
+--- procedure p to the search variable to the search goal
+--- taken from Oz. p x comes before g x to enable a test+generate
+--- form in a sequential implementation.
+inject  :: (a->Success) -> (a->Success) -> (a->Success) 
+inject g p = \x -> p x & g x
+
+--- Identity function used by the partial evaluator
+--- to mark expressions to be partially evaluated.
+PEVAL   :: a -> a
+PEVAL x = x
+
+-- Only for internal use:
+-- Represenation of higher-order applications in FlatCurry.
+apply :: (a->b) -> a -> b
+apply external
+
+
+-- Only for internal use:
+-- Representation of conditional rules in FlatCurry.
+cond :: Success -> a -> a
+cond external
+
+unknown :: a
+unknown = let x free in x
+
+-- the end
+
+
+--- Non-strict equational constraint. Experimental.
+(=:<=) :: a -> a -> Success
+(=:<=) external
diff --git a/src/lib/Curry/Module/Prelude.hs.include b/src/lib/Curry/Module/Prelude.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Prelude.hs.include
@@ -0,0 +1,1359 @@
+[ForType "IO" Nothing
+,ForType "Float" Nothing
+,ForType "Char" Nothing
+,ForType "[]" (Just [Show,Read,BaseCurry,Curry])
+,ForType "Nat" (Just [Show,Read])
+,ForType "Int" (Just [Show,Read])
+,ForType "Success" (Just [Show,Read,BaseCurry])
+,ForType "Bool" (Just [Declaration,BaseCurry])
+,SomeFunctions
+]
+
+import Char
+import List
+import System.IO.Unsafe
+import Data.IORef
+
+import Prelude hiding ((==),(>>=),return,catch)
+import qualified Prelude ((==),(>>=),return) 
+import System.IO
+
+#if __GLASGOW_HASKELL__ >= 610
+import Control.OldException (catch)
+#else
+import Control.Exception (catch)
+#endif
+
+-----------------------------------------------------------------
+-- curry number types
+-----------------------------------------------------------------
+
+type C_Float = Prim Float
+
+-----------------------------------------------------------------
+-- The curry IO monad
+-----------------------------------------------------------------
+
+data C_IO t0 = C_IO (State -> IO (IOVal t0))
+  | C_IOFail C_Exceptions
+  | C_IOOr OrRef (Branches (C_IO t0))
+
+data IOVal t0 = IOVal t0
+  | IOValFail C_Exceptions
+  | IOValOr OrRef (Branches (IO (IOVal t0)))
+
+data C_Bool = C_False
+  | C_True
+  | C_BoolFail Curry.RunTimeSystem.C_Exceptions
+  | C_BoolOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches C_Bool)
+  | C_BoolAnd [C_Bool]
+
+data C_Char = C_Char !Char
+  | SearchChar  C_Four  C_Four  C_Four  C_Four
+  | C_CharFail C_Exceptions
+  | C_CharOr OrRef (Branches C_Char)
+
+trace s x = unsafePerformIO (putStrLn s >> preturn x) 
+-----------------------------------------------------------------
+-- type classes to extend BaseCurry to full Curry
+-----------------------------------------------------------------
+
+type StrEqResult = C_Bool
+
+class (BaseCurry a,Show a,Read a) => Curry a where
+  -- basic equalities 
+  strEq :: a -> a -> Result StrEqResult
+  eq    :: a -> a -> Result C_Bool
+
+  -- some generics
+  propagate :: (forall b. Curry b => Int -> b -> Result b) -> a -> Result a
+  foldCurry :: (forall c. Curry c => c -> b -> Result b) -> b -> a -> Result b
+
+  -- name of the type
+  typeName :: a -> String
+
+  -- show qualified terms
+  showQ :: Int -> a -> String -> String 
+  showQ = showsPrec
+
+  showQList :: [a] -> String -> String
+  showQList = showQStandardList
+
+  -- generic programming
+  --toC_Term   :: HNFMode -> State  -> a -> C_Data
+  --fromC_Term :: C_Data -> a
+
+class Generate a where
+  genFree    :: Int -> [a]
+  maxArity   :: a -> Int
+
+-----------------------------------------------------------------
+-- external Show instances
+-----------------------------------------------------------------
+
+
+instance (Show t0) => Show (IOVal t0) where
+  showsPrec d (IOVal x1) = showParen (d>10) showStr
+   where
+    showStr  = showString "IOVal" . showsPrec 11 x1
+  showsPrec _ (IOValOr i _) = showString ('_':show (deref i))
+
+instance Show (IO (IOVal a)) where
+  show _  = "IO"
+
+instance Show (C_IO a) where
+  show _  = "IO"
+
+instance Show C_Success where
+  showsPrec _ C_Success = showString "success"
+  showsPrec _ (C_SuccessOr ref _) = showString ('_':show (deref ref))
+
+instance Show (a->b) where
+  show _ = "FUNCTION"
+
+instance Show a => Show (Prim a) where
+  show (PrimValue x) = show x
+  show (PrimOr r _) = "_"++show (deref r)
+
+instance Show a => Show (List a) where
+    showsPrec = showsPrecList (showsPrec 0) (showsPrec 0)
+
+showsPrecList :: (a -> ShowS) -> ([a] -> ShowS) -> Int -> List a -> ShowS
+showsPrecList recursiveCall listCall _ (ListOr r _) = 
+  showString ('_':show (deref r))
+showsPrecList recursiveCall listCall _ xs 
+  | isFreeList xs = showChar '(' . showFreel xs
+  | otherwise     = listCall (toHaskellList xs)
+      where
+        isFreeList List = False
+        isFreeList (ListOr _ _) = True
+        isFreeList (_ :< xs) = isFreeList xs
+        isFreeList _ = True
+
+        showFreel (x:<xs)         = recursiveCall x . showChar ':' . showFreel xs
+	showFreel (ListOr r _)    = showString ('_':show (deref r)++")")
+
+showQStandardList :: Curry a => [a] -> ShowS
+showQStandardList xs = showChar '[' . 
+                       foldr (.) (showChar ']') 
+                             (intersperse (showChar ',') (map (showQ 0) xs))
+
+fourToInt :: C_Four -> Either String Int
+fourToInt  C_F0 = Right 0
+fourToInt  C_F1 = Right 1
+fourToInt  C_F2 = Right 2
+fourToInt  C_F3 = Right 3
+fourToInt  x@(C_FourOr _ _) = Left (show x)
+
+intToFour :: Int -> C_Four
+intToFour  0 = C_F0
+intToFour  1 = C_F1
+intToFour  2 = C_F2
+intToFour  3 = C_F3
+
+scToChar ::  C_Four ->  C_Four ->  C_Four ->  C_Four -> Either String Char
+scToChar f1 f2 f3 f4 
+  = chr' ((fourToInt f1**64)+++(fourToInt f2**16)+++(fourToInt f3**4)+++fourToInt f4)
+  where 
+    Left s  ** _  = Left s
+    Right i ** j  = Right (i*j)
+    
+    Left s  +++ _  = Left s
+    Right i +++ Left s  = Left s
+    Right i +++ Right j = Right (i+j)
+    chr' (Right i) = Right (chr i)
+    chr' (Left s)  = Left s
+
+charToSc ::  Char -> C_Char
+charToSc c = SearchChar (intToFour d64) (intToFour d16) (intToFour d4) (intToFour m4)
+  where
+    o = ord c
+    (d64,m64) = divMod o 64
+    (d16,m16) = divMod m64 16
+    (d4,m4)   = divMod m16 4
+    
+instance Show C_Four where
+  showsPrec d (C_FourOr r _) = showChar '_' . showsPrec d (deref r)
+  showsPrec _ _ = error "probably due to usage of ($#) instead of ($##) \
+                        \for an external function with argument type string or character"
+
+instance Show C_Char where
+  show (C_Char c) = show c
+  show (SearchChar f1 f2 f3 f4) 
+    = either id show (scToChar f1 f2 f3 f4)
+  show (C_CharOr r _) = '_':show (deref r)
+
+  showList cs = if any isFreeChar cs
+                  then showChar '[' . showFreel cs
+                  else showChar '"' . showl cs   -- "
+    where 
+      showl []       = showChar '"'
+      showl (C_Char '"':cs) = showString "\\\"" . showl cs
+      showl (C_Char c:cs)
+       | oc <= 7   = showString "\\00" . shows oc . showl cs
+       | oc <= 10  = showLitChar c . showl cs
+       | oc <= 12  = showString "\\0" . shows oc . showl cs
+       | oc <= 13  = showLitChar c . showl cs
+       | oc <= 31  = showString "\\0" . shows oc . showl cs
+       | oc <= 126 = showLitChar c . showl cs
+       | otherwise = showString "\\" . shows oc . showl cs
+       where oc = ord c
+      showl (SearchChar f1 f2 f3 f4:cs) = 
+        either showString showLitChar (scToChar f1 f2 f3 f4) . showl cs
+  
+      showFreel [] = showString "]"
+      showFreel [c] = showString (show c) . showString "]"
+      showFreel (c:cs)   = showString (show c++",") . showFreel cs
+      
+      isFreeChar (SearchChar f1 f2 f3 f4) = 
+        Prelude.any ((Prelude.== Branching) . consKind) [f1,f2,f3,f4] 
+      isFreeChar _              = False
+
+protectEsc p f             = f . cont
+ where cont s@(c:_) | p c  = "\\&" ++ s
+       cont s              = s
+
+asciiTab = zip ['\NUL'..' ']
+	   ["NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",
+	    "BS",  "HT",  "LF",  "VT",  "FF",  "CR",  "SO",  "SI",
+	    "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
+	    "CAN", "EM",  "SUB", "ESC", "FS",  "GS",  "RS",  "US",
+	    "SP"]
+
+instance Show C_Nat where
+  showsPrec d x | isFreeNat x = showsPrecNat d x
+                | otherwise   = showsPrec d (fromCurry x::Integer)
+
+
+isFreeNat :: C_Nat -> Bool
+isFreeNat (C_NatOr _ _)    = True
+isFreeNat C_IHi            = False
+isFreeNat (C_I n)          = isFreeNat n
+isFreeNat (C_O n)          = isFreeNat n
+
+showsPrecNat :: Int -> C_Nat -> ShowS
+showsPrecNat _ C_IHi = Prelude.showString((:)('I')((:)('H')((:)('i')([]))))
+showsPrecNat d (C_O x1) = Prelude.showParen((Prelude.>)(d)(Prelude.fromInteger((10))))(showStr)
+ where
+  showStr  = (Prelude..)(Prelude.showString((:)('O')((:)(' ')([]))))(showsPrecNat(Prelude.fromInteger((11)))(x1))
+
+showsPrecNat d (C_I x1) = Prelude.showParen((Prelude.>)(d)(Prelude.fromInteger((10))))(showStr)
+ where
+  showStr  = (Prelude..)(Prelude.showString((:)('I')((:)(' ')([]))))(showsPrecNat(Prelude.fromInteger((11)))(x1))
+
+showsPrecNat _ (C_NatOr i _) = Prelude.showString((:)('_')(Prelude.show(deref i)))
+
+instance Show C_Int where
+  showsPrec _ C_Zero = showChar '0'
+  showsPrec d x@(C_Pos n) 
+    | isFreeNat n = showParen (d>10) (showString "Pos " . showsPrecNat 11 n)
+    | otherwise   = showsPrec d (fromCurry x::Integer)
+  showsPrec d x@(C_Neg n) 
+    | isFreeNat n = showParen (d>10) (showString "Neg " . showsPrecNat 11 n)
+    | otherwise   = showsPrec d (fromCurry x::Integer)
+  showsPrec _ (C_IntOr i _) = showChar '_' . shows (deref i)
+
+-----------------------------------------------------------------
+-- external Read instances
+-----------------------------------------------------------------
+
+instance Read C_Four where
+  readsPrec _ _ = error "I won't read four"
+
+instance (Read t0) => Read (IOVal t0) where
+  readsPrec d r = readParen (d>10) 
+    (\ r -> [ (IOVal x1,r1) | (_,r0) <- readQualified "Prelude" "IOVal" r, 
+                              (x1,r1) <- readsPrec 11 r0]) r
+
+instance Read (IO (IOVal a)) where
+  readsPrec = error "no reading IO"
+
+instance Read (C_IO a) where
+  readsPrec = error "no reading IO"
+
+instance Read C_Success where
+  readsPrec d r = Prelude.readParen(Prelude.False)
+                  (\ r -> [(,)(C_Success)(r0) | 
+                           (_,r0) <- readQualified "Prelude" "Success" r])(r)
+
+instance Read a => Read (Prim a) where
+  readsPrec p s = map (\(x,y) -> (PrimValue x,y)) (readsPrec p s)
+
+instance Read a => Read (List a) where
+    readsPrec p = map (\ (x,y) -> (fromHaskellList x,y)) . readsPrec p
+
+instance Read C_Char where
+  readsPrec p s = map (\ (x,y) -> (toCurry x,y))
+                      (((readsPrec p)::ReadS Char) s)
+
+  readList s = map (\ (x,y) -> (map toCurry x,y))
+                      ((readList::ReadS String) s)
+
+instance Read (a->b) where
+  readsPrec = error "reading FUNCTION"
+
+instance Read C_Nat where
+  readsPrec d r =  
+       readParen False  (\ r -> [(C_IHi,r0)  | (_ ,r0) <- readQualified "Prelude" "IHi" r]) r
+    ++ readParen (d>10) (\ r -> [(C_O x1,r1) | (_ ,r0) <- readQualified "Prelude" "O"   r, 
+                                               (x1,r1) <- readsPrec 11 r0]) r
+    ++ readParen (d>10) (\ r -> [(C_I x1,r1) | (_ ,r0) <- readQualified "Prelude" "I"   r, 
+                                               (x1,r1) <- readsPrec 11 r0]) r
+    ++ [(toCurry i,r0) | (i::Integer,r0) <- reads r]
+
+instance Read C_Int where
+  readsPrec d r = 
+       readParen (d>10) (\ r -> [(C_Neg x1,r1)  | (_ ,r0) <- readQualified "Prelude" "Neg" r, 
+                                                  (x1,r1) <- readsPrec 11 r0]) r
+    ++ readParen False  (\ r -> [(C_Zero,r0)    | (_ ,r0) <- readQualified "Prelude" "Zero" r]) r 
+    ++ readParen (d>10) (\ r -> [(C_Pos x1,r1)  | (_ ,r0) <- readQualified "Prelude" "Pos" r,
+                                                  (x1,r1) <- readsPrec 11 r0]) r
+    ++ [(toCurry i,r0) | (i::Integer,r0) <- reads r]
+
+
+-----------------------------------------------------------------
+-- external BaseCurry instances
+-----------------------------------------------------------------
+
+instance (BaseCurry t0) => BaseCurry (IOVal t0) where
+  nf f (IOVal x1) state0 = nfCTC(\ v1 state1 -> f(IOVal(v1)) (state1))(x1) (state0)
+  nf f x state = f(x) (state)
+
+  gnf f (IOVal x1) state0 = gnfCTC(\ v1 state1 -> f(IOVal(v1)) (state1))(x1) (state0)
+  gnf f x state = f(x) (state)
+
+  generator i    = IOVal (generator i)
+
+  failed  = IOValFail
+
+  branching r bs = IOValOr r (map preturn bs)
+
+  consKind (IOValOr _ _) = Branching
+  consKind (IOValFail _) = Failed
+  consKind _ = Val
+
+  exceptions (IOValFail x) = x
+
+  orRef (IOValOr x _) = x
+
+  branches (IOValOr _ bs) = map unsafePerformIO bs
+
+instance (BaseCurry t0) => BaseCurry (IO (IOVal t0)) where
+  nf f x state = f(x) (state)
+  gnf f x state = f(x)(state)
+
+  failed x = preturn (IOValFail x)
+
+  generator u       = preturn (generator u)
+
+  branching r bs = preturn (IOValOr r bs)
+
+  consKind x = consKind (unsafePerformIO x)
+
+  exceptions x = exceptions (unsafePerformIO x)
+
+  orRef x = orRef (unsafePerformIO x)
+
+  branches x = unsafePerformIO (x Prelude.>>= \ (IOValOr _ bs) -> preturn bs)
+
+instance (BaseCurry t0) => BaseCurry (C_IO t0) where
+  nf f x state = f(x)(state)
+  gnf f x state = f(x)(state)
+
+  generator i    = C_IO (\ _ -> generator i)
+
+  failed  = C_IOFail
+
+  branching  = C_IOOr
+
+  consKind (C_IOOr _ _) = Branching
+  consKind (C_IOFail _) = Failed
+  consKind _ = Val
+
+  exceptions (C_IOFail x) = x
+
+  orRef (C_IOOr x _) = x
+
+  branches (C_IOOr _ x) = x
+
+
+instance BaseCurry C_Char where
+  nf f (SearchChar x1 x2 x3 x4) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> Curry.RunTimeSystem.nfCTC(\ v4 state4 -> f(SearchChar(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x store = f(x)(store)
+
+  gnf f (SearchChar x1 x2 x3 x4) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> Curry.RunTimeSystem.gnfCTC(\ v4 state4 -> f(SearchChar(v1)(v2)(v3)(v4))(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x store = f(x)(store)
+  
+
+  consKind (C_CharOr _ _) = Branching
+  consKind (C_CharFail _) = Failed
+  consKind _ = Val
+
+  generator i = withRef ( \r -> SearchChar (generator r) 
+                                           (generator (r+1)) 
+                                           (generator (r+2)) 
+                                           (generator (r+3))) 3
+
+  orRef      (C_CharOr x _) = x
+  branches   (C_CharOr _ x) = x
+
+  failed = C_CharFail
+
+  exceptions (C_CharFail x) = x
+
+  branching  = C_CharOr
+
+
+instance Generate a => BaseCurry (Prim a) where
+  nf f x store = f(x)(store)
+
+  gnf f x store = f(x)(store)
+
+  generator i    = gen genFree 
+    where
+      gen f = let max = maxArity (head (f 0)) in
+        withRef (\r -> PrimOr (mkRef r max i)
+                              (map PrimValue (f r)))
+                max
+
+  failed = PrimFail
+  branching = PrimOr
+
+  consKind (PrimOr _ _) = Branching
+  consKind (PrimFail _) = Failed
+  consKind _ = Val
+
+  exceptions (PrimFail x) = x
+
+  orRef (PrimOr x _) = x
+
+  branches (PrimOr _ x) = x
+
+
+instance (BaseCurry t0) => BaseCurry (List t0) where
+  nf f ((:<) x1 x2) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> f((:<)(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f ((:<) x1 x2) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> f((:<)(v1)(v2))(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = withRef (\ r -> ListOr (mkRef r 2 i) 
+                        ([List,(:<)(generator(r+1))(generator(r+2))])) 2
+
+  failed  = ListFail
+
+  branching  = ListOr
+
+  consKind (ListOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (ListFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (ListFail x) = x
+
+  orRef (ListOr x _) = x
+
+  branches (ListOr _ x) = x
+
+
+-----------------------------------------------------------------
+-- converting between curry and haskell
+-----------------------------------------------------------------
+
+-- In Order to integrate Haskell functions we sometimes 
+-- need to convert values.
+-- (Do we really need both directions? Or rather convert a b for both?)
+class ConvertCH a b where
+  fromCurry :: a -> b
+  fromCurry = error "fromCurry"
+  toCurry :: b -> a
+  toCurry = error "toCurry"
+
+instance ConvertCH C_Bool Bool where
+  fromCurry C_True  = True
+  fromCurry C_False = False
+
+  toCurry True  = C_True
+  toCurry False = C_False
+
+isC_True C_True = True
+isC_True _      = False
+
+instance ConvertCH C_Char Char where
+  fromCurry (C_Char c) = c
+  fromCurry (SearchChar f0 f1 f2 f3) = 
+    either (error "convert to char") id (scToChar f0 f1 f2 f3)
+  toCurry c = C_Char c
+
+instance (ConvertCH a b) => ConvertCH (List a) [b] where
+  fromCurry List = []
+  fromCurry (x :< xs) = fromCurry x : fromCurry xs
+  fromCurry (ListOr _ _) = error "or list"
+
+  toCurry [] = List
+  toCurry (x:xs) = toCurry x :< toCurry xs
+
+-- sometimes you need conversion of lists without converting the elements
+-- eg Searchtree, Show instance
+
+toHaskellList :: List a -> [a]
+toHaskellList List = []
+toHaskellList (x :< xs) = x : toHaskellList xs
+
+fromHaskellList :: [a] -> List a
+fromHaskellList [] = List
+fromHaskellList (x : xs) = x :< fromHaskellList xs
+
+-- specify result type of toCurry "..." for code generation
+fromHaskellString :: String -> List C_Char
+fromHaskellString = toCurry
+
+instance ConvertCH C_Int Integer where
+  fromCurry C_Zero    = 0
+  fromCurry (C_Pos i) = fromCurry i
+  fromCurry (C_Neg i) = negate (fromCurry i)
+
+  toCurry n = case compare n 0 of
+   LT -> C_Neg (toCurry (abs n))
+   EQ -> C_Zero
+   GT -> C_Pos (toCurry (abs n))
+
+instance ConvertCH C_Nat Integer where
+  fromCurry (C_I bs) = 2 Prelude.* fromCurry bs Prelude.+ 1
+  fromCurry (C_O bs) = 2 Prelude.* fromCurry bs
+  fromCurry C_IHi    = 1
+
+  toCurry n = case mod n 2 of
+                1 -> if m Prelude.== 0 then C_IHi else C_I (toCurry m)
+                0 -> C_O (toCurry m)
+    where m = Prelude.div n 2
+
+
+instance ConvertCH C_Int Int where
+  fromCurry c = fromInteger (fromCurry c)
+  toCurry i   = toCurry (toInteger i)
+
+instance ConvertCH (Prim a) a where
+  toCurry = PrimValue 
+  fromCurry (PrimValue x) = x
+
+-------------------------------------------------------------
+-- basic functions used in instances of class GenericCurry
+-------------------------------------------------------------
+-- obscure names come from the standard operator 
+-- renaming scheme of the compiler.
+
+-- implementation of concurrent (&)
+-- no other implementation
+-- basic concept: if one value suspends evaluate the other 
+-- TODO: include state information!
+concAnd :: StrEqResult -> StrEqResult -> Result StrEqResult
+concAnd C_True y _ = y
+concAnd x@(C_BoolOr _ _) y st = maySwitch y x st
+--concAnd (C_BoolOr r xs) y = C_BoolOr r (map (flip concAnd y) xs)
+concAnd x@(C_BoolFail _) _ _ = x
+concAnd x@C_False _ _ = x
+
+maySwitch :: StrEqResult -> StrEqResult -> Result StrEqResult
+maySwitch C_True x _ = x
+maySwitch y@(C_BoolOr _ _) (C_BoolOr r xs) st = 
+             C_BoolOr r (map (\ x -> concAnd y x st) xs)
+maySwitch x@(C_BoolFail _) _ _ = x
+maySwitch x@C_False _ _ = x
+{-
+startBreadth :: [StrEqResult] -> Result StrEqResult
+startBreadth cs st = onLists st [] cs
+
+instance Eq C_Bool where
+  C_True == C_True = True
+  C_False == C_False = True
+  _ == _ = False
+
+allSame :: Eq a => [a] -> Bool
+allSame []     = True
+allSame (x:xs) = all (x==) xs
+
+onLists :: Store -> [StrEqResult] -> [StrEqResult] -> StrEqResult
+onLists _ []  []      = strEqSuccess
+onLists _ _   (x@(C_BoolFail _):_) = x
+onLists _ _   (C_False:_)   = C_False
+onLists st ors (C_True:xs) = onLists st ors xs
+onLists st ors (C_BoolAnd xs:ys) = onLists st ors (xs++ys)
+onLists st ors (C_BoolOr ref xs:ys) 
+  | isChain ref = chain (\ x st -> onLists st ors (x:ys)) ref xs st
+  | otherwise   = case fromStore ref st of
+  Nothing -> onLists st (insertOr ref xs ors) ys
+  Just i  -> onLists st ors (xs!!i : ys)
+onLists st (C_BoolOr ref xs:ors) [] = 
+  let inBranch i x = maybe (failed $ curryError "onLists")
+                           (\st -> onLists st ors [x])
+                           (addToStore ref i st)
+  in  C_BoolOr ref (zipWith inBranch [0..] xs)
+
+insertOr ref xs [] = [C_BoolOr ref xs]
+insertOr ref xs (o@(C_BoolOr ref2 xs2):ys) 
+  | ref==ref2 = C_BoolOr ref (zipWith insertAnd xs xs2) : ys
+  | otherwise = o : insertOr ref xs ys
+
+insertAnd C_True           y       	    = y
+insertAnd C_False          _       	    = C_False
+insertAnd x@(C_BoolFail _) _       	    = x
+insertAnd x                C_True  	    = x
+insertAnd _                C_False 	    = C_False
+insertAnd _                x@(C_BoolFail _) = x
+insertAnd o1@(C_BoolOr ref1 xs1) o2@(C_BoolOr ref2 xs2) 
+  | ref1 == ref2 = C_BoolOr ref1 (zipWith insertAnd xs1 xs2)
+  | otherwise    = C_BoolAnd [o1,o2]
+insertAnd o@(C_BoolOr _ _) (C_BoolAnd ys)   = C_BoolAnd (o:ys)
+insertAnd (C_BoolAnd ys)   o@(C_BoolOr _ _) = C_BoolAnd (o:ys)
+insertAnd (C_BoolAnd xs)   (C_BoolAnd ys)   = C_BoolAnd (xs++ys)
+-}
+--- implementation of (==)
+--- no other implementation
+genEq :: Curry t0 => t0 -> t0 -> Result C_Bool
+genEq x y = ghnfCTC (\x'-> ghnfCTC (eq x') y) x
+
+--- implementation of (=:=)
+--- no other implementation
+--- TODO: use state information
+genStrEq :: Curry t0 => t0 -> t0 -> Result StrEqResult
+genStrEq a b = (\ a' -> (onceMore a') `hnfCTC` b)  `hnfCTC` a
+  where
+    onceMore a' b' = (\ a'' -> unify a'' b') `hnfCTC` a'
+    unify x y st = checkFree (consKind x) (consKind y)
+      where
+      checkFree Val Val = strEq x y st
+
+      checkFree Branching Branching  
+         | drx Prelude.== dry
+         = C_True
+         | otherwise = branching (equalFromTo ax bx drx ay by dry) [C_True]
+         where (ax,bx,drx)=genInfo (orRef x)
+               (ay,by,dry)=genInfo (orRef y)
+
+      checkFree Branching _ = 
+        hnfCTC (\ x' -> unify x' y) 
+               (branching (narrowOrRef (orRef x)) (branches x)) st
+
+      checkFree _ Branching = 
+        hnfCTC (unify x)
+               (branching (narrowOrRef (orRef y)) (branches y)) st
+
+      checkFree x   y   = error $ "checkFree " ++ show (x,y)
+
+strEqFail :: String -> StrEqResult
+strEqFail s = C_False --C_SuccessFail (ErrorCall ("(=:=) for type "++s))
+
+strEqSuccess :: StrEqResult
+strEqSuccess = C_True
+
+--hcAppend [] ys = ys
+--hcAppend (x:xs) ys = x:< hcAppend xs ys
+
+-----------------------------------------------------------------
+-- external Generate instances
+-----------------------------------------------------------------
+
+instance BaseCurry b => Generate (a -> Result b) where
+  genFree i  = mkBranches (generator i)
+  maxArity _ = 1
+
+mkBranches :: BaseCurry b => b -> [a -> Result b]
+mkBranches x = case consKind x of
+       Val       -> [const (const x)]
+       Branching -> map (const . const) (branches x)
+
+instance Generate Float where
+  genFree    = error "free variable of type Float"
+  maxArity _ = error "free variable of type Float"
+
+-----------------------------------------------------------------
+-- external Curry instances
+-----------------------------------------------------------------
+
+instance (Curry t0) => Curry (List t0) where
+  strEq List List st = strEqSuccess
+  strEq ((:<) x1 x2) ((:<) y1 y2) st = concAnd(genStrEq(x1)(y1)(st))(genStrEq(x2)(y2)(st))(st)
+  strEq _ x0 _ = strEqFail(typeName(x0))
+
+  eq List List st = C_True
+  eq ((:<) x1 x2) ((:<) y1 y2) st = op_38_38(genEq(x1)(y1)(st))(genEq(x2)(y2)(st))(st)
+  eq _ _ _ = C_False
+
+  propagate f List st = List
+  propagate f ((:<) x1 x2) st = (:<)(f 0 (x1)(st))(f 1 (x2)(st))
+
+  foldCurry f c List st = c
+  foldCurry f c ((:<) x1 x2) st = f(x1)(f(x2)(c)(st))(st)
+
+  typeName _ = "[]"
+
+  showQ  = showsPrecList (showQ 0) showQList 
+
+instance Curry C_Four where
+  strEq C_F0 C_F0 _ = strEqSuccess
+  strEq C_F1 C_F1 _ = strEqSuccess
+  strEq C_F2 C_F2 _ = strEqSuccess
+  strEq C_F3 C_F3 _ = strEqSuccess
+  strEq x0   _    _ = strEqFail(typeName(x0))
+
+  eq C_F0 C_F0 _ = C_True
+  eq C_F1 C_F1 _ = C_True
+  eq C_F2 C_F2 _ = C_True
+  eq C_F3 C_F3 _ = C_True
+  eq _    _    _ = C_False
+
+  propagate _ C_F0 _ = C_F0
+  propagate _ C_F1 _ = C_F1
+  propagate _ C_F2 _ = C_F2
+  propagate _ C_F3 _ = C_F3
+
+  foldCurry _ c C_F0 _ = c
+  foldCurry _ c C_F1 _ = c
+  foldCurry _ c C_F2 _ = c
+  foldCurry _ c C_F3 _ = c
+
+  typeName _ = "Four"
+
+
+instance BaseCurry a => Curry (IO (IOVal a)) where 
+  strEq x y = error "IO.strEq"
+
+  eq _ _ = error "IO.eq"
+
+  propagate _ _ = error "propagate IOVal"
+
+  foldCurry _ _ _ = error "foldCurry IOVal"
+
+  typeName _ = "IOVal"
+
+  --toC_Term _ _ _ = error "IO.toC_Term"
+  --fromC_Term _   = error "IO.fromC_Term"
+
+
+instance BaseCurry a => Curry (C_IO a) where
+  strEq _ _ = error "strEq IO"
+
+  eq _ _ = error "eq IO"
+
+  --subst store x = x
+
+  propagate _ _ = error "propagate IO"
+
+  foldCurry _ _ _ = error "foldCurry IO"
+
+  typeName _ = "IO"
+
+  --toC_Term _ _ (C_IOFreeVar r) = C_Free(C_Int(Prelude.toInteger(r)))
+  --toC_Term _ _ _ = C_Data (C_Int 1) (toCurry "IO") List
+
+  --fromC_Term (C_Free (C_Int r)) = C_IOFreeVar(Prelude.fromInteger(r))
+  --fromC_Term _ = error "no converting IO"
+
+instance Curry C_Char where
+  strEq x@(C_Char c1) (C_Char c2) _
+    | c1 Prelude.== c2 = C_True
+  strEq c1@(SearchChar _ _ _ _) (C_Char c2) st = strEq c1 (charToSc c2) st 
+  strEq (C_Char c1) c2@(SearchChar _ _ _ _) st = strEq (charToSc c1) c2 st 
+  strEq (SearchChar x1 x2 x3 x4) (SearchChar y1 y2 y3 y4) st = concAnd (genEq(x1)(y1)st)(concAnd(genStrEq(x2)(y2)st)(concAnd(genStrEq(x3)(y3)st)(genStrEq(x4)(y4)st)st)st)st
+  strEq _ x _ = strEqFail (typeName x)
+
+
+  eq (C_Char x1) (C_Char y1)             _  = toCurry (x1 Prelude.== y1)
+  eq c1@(SearchChar _ _ _ _) (C_Char c2) st = eq c1 (charToSc c2) st
+  eq (C_Char c1) c2@(SearchChar _ _ _ _) st = eq (charToSc c1) c2 st
+  eq (SearchChar x1 x2 x3 x4) (SearchChar y1 y2 y3 y4) st = op_38_38 (genEq (x1)(y1)st) (op_38_38 (genEq(x2)(y2)st) (op_38_38(genEq(x3)(y3)st)(genEq(x4)(y4)st)st)st)st
+  eq _ _ _ = C_False
+
+  propagate _ c@(C_Char _) _ = c
+  propagate f (SearchChar f0 f1 f2 f3) st = 
+    SearchChar (f 0 f0 st) (f 1 f1 st) (f 2 f2 st) (f 3 f3 st)
+
+  foldCurry _ c (C_Char _) _ = c
+  foldCurry f c (SearchChar f0 f1 f2 f3) st = f f0 (f f1 (f f2 (f f3 c st)st)st)st
+
+  typeName _ = "Char"
+
+  showQList = showList  
+
+  --toC_Term _ _ (C_Char c) = C_Data (C_Int (toInteger (ord c))) (toCurry (show c)) List
+  --toC_Term _ _ (C_CharFreeVar r) = C_Free(C_Int(Prelude.toInteger(r)))
+
+  --fromC_Term (C_Data (C_Int (i::Integer)) _ List) = C_Char (chr (fromInteger i))
+  --fromC_Term (C_Data (C_IntFreeVar _) name List) = C_Char (read (fromCurry name))
+  --fromC_Term (C_Free (C_Int r)) = C_CharFreeVar(Prelude.fromInteger(r))
+
+
+instance (Generate a,Show a,Read a,Eq a) => Curry (Prim a) where
+  strEq x@(PrimValue v1) (PrimValue v2) _
+    | v1 Prelude.== v2 = C_True --C_Success
+    | otherwise = strEqFail (typeName x)
+
+  eq (PrimValue v1) (PrimValue v2) _ = toCurry (v1 Prelude.== v2)
+
+  propagate _ (PrimValue v1) _ = PrimValue v1
+
+  foldCurry _ c (PrimValue _) _ = c
+
+  --toC_Term _ _ (PrimValue x1) = let sx = show x1 in
+  --    C_Data (C_Int (string2int sx)) (toCurry sx) List
+  --toC_Term _ _ (PrimFreeVar r) = C_Free(C_Int(Prelude.toInteger(r)))
+
+  --fromC_Term (C_Data _ name List) = PrimValue (read (fromCurry name))
+  --fromC_Term (C_Free (C_Int r)) = PrimFreeVar(Prelude.fromInteger(r))
+ 
+  typeName _ = "Prim"
+
+
+
+-----------------------------------------------------------------
+-- external Curry instances
+-----------------------------------------------------------------
+
+instance Eq (a->b) where
+  (==) = error "comparing FUNCTION"
+
+
+
+
+
+infix  4 ===
+infixr 0 & 
+
+-----------------------------------------------------------------------
+-- IO starter
+-----------------------------------------------------------------------
+
+preturn = Prelude.return
+
+optChangeStore :: a -> (b -> Store -> a) -> ((Int -> Store) -> a) 
+               -> OrRef -> Branches b -> Store -> a
+optChangeStore err det br = 
+  manipulateStore err det (\ _ -> br) (\ _ -> det)
+
+curryIO :: Curry a => (Result (C_IO a)) -> IO a
+curryIO x = let st = emptyStore in ioStart st (x st)
+
+curryIOVoid :: Curry a => (Result (C_IO a)) -> IO ()
+curryIOVoid x = curryIO x >> Prelude.return ()
+
+ioStart :: Curry a => Store -> C_IO a -> IO a
+ioStart st (C_IO act)            = act st Prelude.>>= curryDo st
+ioStart _  (C_IOFail es)         = printExceptions es
+ioStart st (C_IOOr ref bs)       =
+  optChangeStore 
+    (printExceptions (curryError "ioStart"))
+    (flip ioStart)
+    (\st -> searchValC_IO [] (zipWith (mkChoice st) [0..] bs))
+    ref 
+    bs 
+    st
+
+curryDo :: Curry a => Store -> IOVal a -> IO a
+curryDo _  (IOVal x)        = Prelude.return x
+curryDo _  (IOValFail es)   = printExceptions es
+curryDo st (IOValOr ref bs) =     
+  optChangeStore 
+    (printExceptions (curryError "curryDo")) 
+    (\ x st -> x Prelude.>>= curryDo st)
+    (\st -> searchIOVal [] (zipWith (mkChoice st) [0..] bs))
+    ref 
+    bs
+    st
+
+mkChoice :: BaseCurry a => (Int -> Store) -> Int -> a -> (Store,a)
+mkChoice st i x = (st i,x)
+
+searchValC_IO :: Curry a => [C_Exceptions] -> [(Store,C_IO a)] -> IO a
+searchValC_IO es []     = 
+  mapM_ printException es >> error "no solution in branching io value"
+searchValC_IO _ ((st,C_IO act)   : _)  = act st Prelude.>>= curryDo st
+searchValC_IO es ((_ ,C_IOFail e@(ErrorCall _)) : xs) = 
+  searchValC_IO (e:es) xs
+searchValC_IO es ((_ ,C_IOFail e) : xs) = searchValC_IO es xs
+searchValC_IO es ((st,C_IOOr ref bs) : xs) =  
+  optChangeStore
+    (searchValC_IO es xs)
+    (\ x st -> case x of
+        C_IO act   -> act st Prelude.>>= curryDo st
+        C_IOOr _ _ -> searchValC_IO es ((st,x):xs)
+        C_IOFail _ -> searchValC_IO es xs)
+    -- switch arguments of (++) for breadth first (bad.), cf. also below
+    (\ st -> searchValC_IO es (zipWith (mkChoice st) [0..] bs ++ xs))
+    ref bs st
+
+searchIOVal :: Curry a => [C_Exceptions] -> [(Store,IO (IOVal a))] -> IO a
+searchIOVal es []                = 
+  mapM_ printException es >> error "no solution in branching io value"
+searchIOVal es ((st,act) : stacts) = do
+  x <- act
+  case x of
+    IOVal a        -> Prelude.return a
+    IOValFail e@(ErrorCall _) -> searchIOVal (e:es) stacts
+    IOValFail _    -> searchIOVal es stacts
+      -- switch arguments of (++) for breadth first (bad.)
+    IOValOr ref bs -> 
+      optChangeStore 
+        (searchIOVal (curryError "inconsistent Store":es) stacts)
+        (\ x st -> searchIOVal es ((st,x):stacts))
+        (\st -> searchIOVal es (zipWith (mkChoice st) [0..] bs ++ stacts))
+        ref bs st
+
+-- this is the place to change for implicit breadth first search
+searchVal :: (Store -> a -> b) -> Store -> OrRef -> Branches a -> b
+searchVal cont store ref [] =  error "top io failed"
+searchVal cont store ref (x:bs) = cont store x
+
+printException :: C_Exceptions -> IO ()
+printException (PatternMatchFail s) = 
+  hPutStrLn stderr ("non-exhaustive patterns in function "++s)
+printException (AssertionFailed s) = 
+  hPutStrLn stderr ("assertion failed with label "++s)
+printException (IOException s) = 
+  hPutStrLn stderr ("io exception: " ++ s)
+printException (ErrorCall s) = 
+  hPutStrLn stderr ("error : " ++s)
+printException PreludeFailed = hPutStrLn stderr "Prelude.failed"
+
+printExceptions :: C_Exceptions -> IO a
+printExceptions e = 
+  printException e >> error "program error"
+
+-----------------------------------------------------------------------
+-- Int and Float
+-----------------------------------------------------------------------
+
+
+instance Eq C_Int where
+  x == y = (fromCurry x::Integer) Prelude.== fromCurry y
+
+instance Num C_Int where
+  fromInteger x = toCurry x
+  x + y = toCurry ((fromCurry x::Integer) + fromCurry y)
+  x * y = toCurry ((fromCurry x::Integer) * fromCurry y)
+  
+  abs (C_Neg x) = C_Pos x
+  abs x = x
+
+  signum (C_Pos _) = C_Pos C_IHi
+  signum (C_Neg _) = C_Neg C_IHi
+  signum x = x
+
+instance Eq a => Eq (Prim a) where
+  (PrimValue x) == (PrimValue y) = x Prelude.== y
+
+instance (Num a) => Num (Prim a) where
+  (PrimValue x) + (PrimValue y) = PrimValue (x+y)
+  (PrimValue x) - (PrimValue y) = PrimValue (x-y)
+  (PrimValue x) * (PrimValue y) = PrimValue (x*y)
+  negate (PrimValue x) = PrimValue (negate x)
+  abs    (PrimValue x) = PrimValue (abs x)
+  signum (PrimValue x) = PrimValue (signum x)
+  fromInteger x = PrimValue (fromInteger x)
+
+instance Enum a => Enum (Prim a) where 
+    toEnum i = PrimValue (toEnum i)
+    fromEnum (PrimValue x) = fromEnum x
+
+instance Real a => Real (Prim a) where 
+    toRational (PrimValue x) = toRational x
+
+instance Integral a => Integral (Prim a) where 
+    quotRem (PrimValue x) (PrimValue y) = let (x',y') = quotRem x y in 
+                                           (PrimValue x', PrimValue y')
+    toInteger (PrimValue x) = toInteger x
+
+instance Ord a => Ord (Prim a) where
+   (PrimValue x) <= (PrimValue y) = x<=y
+
+-----------------------------------------------------------------------
+-- T0 is unit (), needed for IO primitives
+-----------------------------------------------------------------------
+
+instance ConvertCH T0 () where
+  toCurry () = T0
+  fromCurry T0 = () 
+
+instance (ConvertCH a ha, ConvertCH b hb) => ConvertCH (T2 a b) (ha,hb) where
+  toCurry (x,y) = T2 (toCurry x) (toCurry y)
+  fromCurry (T2 x y) = (fromCurry x, fromCurry y) 
+
+instance (ConvertCH a ha, ConvertCH b hb, ConvertCH c hc) =>
+         ConvertCH (T3 a b c) (ha,hb,hc) where
+  toCurry (x,y,z) = T3 (toCurry x) (toCurry y) (toCurry z)
+  fromCurry (T3 x y z) = (fromCurry x, fromCurry y, fromCurry z) 
+
+-----------------------------------------------------------------------
+-- Maybe
+-----------------------------------------------------------------------
+
+instance (ConvertCH a b) => ConvertCH (C_Maybe a) (Maybe b) where
+  fromCurry C_Nothing  = Nothing
+  fromCurry (C_Just x) = Just (fromCurry x)
+
+  toCurry Nothing  = C_Nothing
+  toCurry (Just x) = C_Just (toCurry x)
+
+
+---------------------------------------------------------------------------------
+-- external functions for Prelude
+---------------------------------------------------------------------------------
+
+($#) :: (Curry a, Curry b) => Prim (a -> Result b) -> a -> Result b
+($#) cont x = prepApply ghnfCTC x cont 
+
+($!) :: (Curry a,Curry b) => Prim (a -> Result b) -> a -> Result b
+($!) cont x = prepApply hnfCTC x cont
+
+($!!) :: (Curry a, Curry b) => Prim (a -> Result b) -> a -> Result b
+($!!) cont x = prepApply nfCTC x cont
+
+($##) :: (Curry a, Curry b) => Prim (a -> Result b) -> a -> Result b
+($##) cont x = prepApply gnfCTC x cont
+
+prim_error :: Curry a => C_String -> Result a
+prim_error s _ = Curry.RunTimeSystem.failed (ErrorCall (fromCurry s))
+
+failed :: Curry a => Result a
+failed _ = Curry.RunTimeSystem.failed PreludeFailed 
+
+(==) :: Curry a => a -> a -> Result C_Bool
+(==) = genEq 
+
+prim_ord :: C_Char -> Result C_Int
+prim_ord cc _ = toCurry (ord (fromCurry cc))
+
+prim_chr :: C_Int -> Result C_Char
+prim_chr ci _ = toCurry (chr (fromCurry ci))
+
+(===) :: Curry a => a -> a -> Result C_Bool --C_Success
+(===) = genStrEq
+ 
+success :: C_Success
+success = C_Success
+
+--concAnd' x y st = startBreadth [x,y] st
+
+(&) :: C_Success -> C_Success -> Result C_Success
+ -- (&) x y st = boolToSuccess (concAnd' (successToBool x) (successToBool y) st)
+(&) x y st = boolToSuccess 
+               (concAnd (successToBool x st) 
+                        (successToBool y st) st) st
+
+boolToSuccess C_True            _  = C_Success
+boolToSuccess C_False           _  = C_SuccessFail (ErrorCall "&")
+boolToSuccess (C_BoolFail e)    _  = C_SuccessFail e
+boolToSuccess (C_BoolOr r xs)   st = mapOr boolToSuccess r xs st
+
+
+successToBool :: C_Success -> Result C_Bool
+successToBool C_Success                _  = C_True
+successToBool (C_SuccessFail e)        _  = C_BoolFail e
+successToBool (C_SuccessOr r xs)       st = mapOr successToBool r xs st
+
+--andBreadth :: List C_Bool -> Result C_Bool
+--andBreadth xs st = startBreadth (toHaskellList xs) st
+
+-- TODO: C_IO without State??? also other io-functions.
+(>>=) :: (Curry a,Curry b) => C_IO a -> Prim (a -> Result (C_IO b)) -> Result (C_IO b)
+(>>=) m f _ = C_IO (hnfCTC (exec f) m)
+
+exec :: (Curry a,Curry b) => Prim (a -> Result (C_IO b)) -> C_IO a -> Result (IO (IOVal b))
+exec f (C_IO m) st = m st Prelude.>>= \ x -> prim_do f x st
+
+-- if it wasn't io, we could just write 
+--exec f st (C_IO m) = m st Prelude.>>= hnfCTC (fromIOVal f) st
+-- with fromIOVal simply being
+--fromIOVal::(Curry a,Curry b)=>Prim(a->C_IO b)->State->IOVal a->IO(IOVal b)
+--fromIOVal f st (IOVal res) = hnfCTC exec2 st (apply f res)
+-- and everything would work fine. But then for the susp and or cases
+-- we would use unsafe io...
+-- Thus, prim_do has to copy the code of ctcStore False
+-- IMPORTANT: This code should correspond to BaseCurry.RunTimeSystem.ctcStore
+
+prim_do ::  (Curry a,Curry b) => 
+            Prim (a -> Result (C_IO b)) -> IOVal a ->  Result (IO (IOVal b))
+prim_do f x state = case x of
+  IOVal res      -> hnfCTC exec2 (apply f res state) state
+  IOValFail es   -> Prelude.return (IOValFail es)
+  IOValOr ref bs -> 
+    optChangeStore
+       (Curry.RunTimeSystem.failed $ curryError "prim_do")
+       (\ x st -> x Prelude.>>= \ x' -> prim_do f x' st)
+       (\ st -> Prelude.return (IOValOr ref 
+                  (zipWith (\ i x -> x Prelude.>>= \ x' -> cont x' (st i)) 
+                           [0..] bs)))
+       ref bs state
+  where
+    cont x st = prim_do f x st
+
+exec2 :: C_IO b -> Result (IO (IOVal b))
+exec2 (C_IO f) = f 
+
+
+return :: a -> Result (C_IO a)
+return a _ = C_IO (\ _ -> Prelude.return (IOVal a))
+
+prim_putChar :: C_Char -> Result (C_IO T0)
+prim_putChar = ioFunc1 putChar 
+
+getChar :: Result (C_IO C_Char)
+getChar = ioFunc0 Prelude.getChar
+ 
+prim_readFile :: C_String -> Result (C_IO C_String)
+prim_readFile = ioFunc1 readFile 
+
+prim_writeFile :: C_String -> C_String -> Result (C_IO T0)
+prim_writeFile = ioFunc2 writeFile 
+
+prim_appendFile :: C_String -> C_String -> Result (C_IO T0)
+prim_appendFile = ioFunc2 appendFile 
+
+catchFail :: Curry a => C_IO a -> C_IO a -> Result (C_IO a)
+catchFail (C_IO act) err _ = 
+  C_IO (\ st -> catch (act st) (const (hnfCTC exec2 err st)))
+catchFail (C_IOFail _) err _ = err
+catchFail (C_IOOr ref bs) err st =
+  optChangeStore 
+    err
+    (flip catchFail err)
+    (\st -> searchValCatch (zipWith (mkChoice st) [0..] bs) err)
+    ref bs st
+
+searchValCatch :: Curry a => [(Store,C_IO a)] -> C_IO a -> C_IO a
+searchValCatch []     err = err
+searchValCatch ((st,C_IO act)   : _)  err = catchFail (C_IO act) err st
+searchValCatch ((_ ,C_IOFail _) : xs) err = searchValCatch xs err
+searchValCatch ((st,C_IOOr ref bs) : xs)  err =  
+  optChangeStore 
+    (searchValCatch xs err)
+    (\ x st -> catchFail x err st)
+    (\ st -> searchValCatch (zipWith (mkChoice st) [0..] bs ++ xs) err)
+    ref bs st
+
+
+
+
+
+prim_show :: (Show a,Curry a) => a -> Result C_String
+prim_show x _ = toCurry (show x)
+
+getSearchTree :: Curry a => a -> Result (C_IO (C_SearchTree a))
+getSearchTree x _ = C_IO (\ state -> Prelude.return (IOVal (searchTr x state)))
+
+ 
+searchTr :: Curry a => a -> Result (C_SearchTree a)
+searchTr x state = transVal (nfCTC (nfCTC const) x state)
+  where
+    transVal x = case consKind x of
+                   Val       -> C_Value x
+                   Failed    -> C_Fail
+                   Branching 
+                     | isGenerator (orRef x) -> C_Value x
+                     | otherwise -> transBranching (branches x)
+
+    transBranching []         = C_Fail
+    transBranching [x]        = transVal x
+    transBranching xs@(_:_:_) = C_Choice (fromHaskellList (map transVal xs))
+
+{-
+toData :: Curry a => a -> Result C_Data
+toData _ st = prim_error (toCurry "toData not implemented") st --ctcStore True (toC_Term True) Nothing
+
+
+toNumData :: Curry a => a -> Result C_NumData
+toNumData _ st = prim_error (toCurry "toNumData not implemented") st
+  --ctcStore True (\ store x -> (conv2num (toC_Term True store x))) Nothing
+
+
+
+cmap _ List = List
+cmap f (x :< xs) = f x :< cmap f xs
+
+fromData :: Curry a => C_Data -> Result a
+fromData _ st = prim_error (toCurry "fromData not implemented") st --fromC_Term
+-}
+
+prepApply :: (BaseCurry a,BaseCurry b) => 
+  ((b -> Result a) -> b -> Result a) -> b -> (Prim (b -> Result a)) -> Result a
+prepApply  prep x (PrimValue f)     st = prep f x st
+prepApply  prep x (PrimOr r bs)     st = mapOr (prepApply prep x) r bs st
+prepApply  _    _  cont             _  = patternFail "Prelude.prepApply" cont
+
+--apply :: (Curry b, Curry (Prim (a -> b))) => Prim (a -> b) -> a -> b
+apply (PrimValue f)     x st = f x st
+apply (PrimOr r bs)     x st = mapOr (\ f -> apply f x) r bs st
+apply cont              _ st = patternFail "Prelude.apply" cont
+
+-- these functions are employed for higher order
+pf :: Curry b => (a -> Result b) -> Prim (a -> Result b)
+pf = PrimValue 
+
+pc :: Curry b => (a -> b) -> (Prim (a -> Result b))
+pc f = PrimValue (\ x _  -> f x)
+
+pa :: Curry c => (a -> Prim (b -> Result c)) -> Prim (a -> Result (Prim (b -> Result c)))
+pa f = PrimValue (\ x _  -> f x)
+
+cp :: (b -> c) -> (a -> b) -> a -> c
+cp f g x = f (g x)
+
+
+cond :: Curry a => C_Success -> a -> Result a
+cond C_Success  x _ = x
+cond (C_SuccessOr r bs)     x st = mapOr (\ c -> cond c x) r bs st
+cond x _ _ = patternFail "Prelude.cond" x
+
+
+ifVar :: (Curry a,Curry b) => b -> a -> a -> a
+ifVar = error "ifVar not implemented"
+
+---------------------------------------------
+-- to ease connecting external functions 
+---------------------------------------------
+
+extFunc1 :: (Curry a,Curry d,ConvertCH a b,ConvertCH d c) => (b->c) -> a -> Result d
+extFunc1 f = gnfCTC (\ x' _ -> toCurry (f (fromCurry x'))) 
+
+extFunc2 :: (Curry a, Curry c,Curry f,ConvertCH a b,ConvertCH c d,ConvertCH f e) => 
+            (b->d->e) -> a -> c -> Result f
+extFunc2 f x y = 
+  gnfCTC (\x'->gnfCTC (\ y' _ -> toCurry (f (fromCurry x') (fromCurry y'))) y) x
+
+extFunc3 :: (Curry c1, Curry c2, Curry c3, Curry cv,
+             ConvertCH c1 h1,ConvertCH c2 h2,ConvertCH c3 h3,ConvertCH cv hv) => 
+            (h1->h2->h3->hv) -> c1 -> c2 -> c3 -> Result cv
+extFunc3 f x y z = 
+  gnfCTC (\x' ->
+  gnfCTC (\y' -> 
+  gnfCTC (\z' _ -> toCurry (f (fromCurry x') (fromCurry y') (fromCurry z'))) z ) y) x
+
+extFunc4 :: (Curry c1, Curry c2, Curry c3, Curry c4, Curry cv,
+             ConvertCH c1 h1,ConvertCH c2 h2,ConvertCH c3 h3,ConvertCH c4 h4,ConvertCH cv hv) => 
+            (h1->h2->h3->h4->hv) -> c1 -> c2 -> c3 -> c4 -> Result cv
+extFunc4 f x1 x2 x3 x4 = 
+  gnfCTC (\x1' ->
+  gnfCTC (\x2' -> 
+  gnfCTC (\x3' -> 
+  gnfCTC (\x4' _ -> toCurry (f (fromCurry x1') (fromCurry x2') (fromCurry x3') (fromCurry x4'))) 
+         x4) x3) x2) x1
+
+
+hnf2 :: (Curry a, Curry b,Curry c) => (a->b->c) -> a -> b -> Result c
+hnf2 f x y = hnfCTC (\ x' -> hnfCTC (\ y' _ -> f x' y') y) x
+
+ioFunc0 :: (Curry b,ConvertCH b a) => IO a -> Result (C_IO b)
+ioFunc0 iof _ = C_IO (\ _ -> iof Prelude.>>= \hv -> Prelude.return (IOVal (toCurry hv)))
+
+
+ioFunc1 :: (Curry a,Curry d,ConvertCH a b,ConvertCH d c) => (b->IO c) -> a -> Result (C_IO d)
+ioFunc1 iof x _ = C_IO (\ _ ->
+           iof (fromCurry x) Prelude.>>= \hv ->
+           Prelude.return (IOVal (toCurry hv)))
+
+ioFunc2 :: (Curry a, Curry c,Curry f,ConvertCH a b,ConvertCH c d,ConvertCH f e) => 
+            (b->d->IO e) -> a -> c -> Result (C_IO f)
+ioFunc2 iof x y _ = C_IO (\ _ ->
+           iof (fromCurry x) (fromCurry y) Prelude.>>= \hv ->
+           Prelude.return (IOVal (toCurry hv)))
+
+ioFunc3 iof x y z _ = C_IO (\ _ ->
+           iof (fromCurry x) (fromCurry y) (fromCurry z) Prelude.>>= \hv ->
+           Prelude.return (IOVal (toCurry hv)))
+
+ghnfCTC2 :: (Curry a, Curry b,Curry c) => (a->b->c) -> a -> b -> Result c
+ghnfCTC2 f x y = ghnfCTC (\x'-> ghnfCTC (\ y' _ -> f x' y') y) x
+
+
+
+(=:<=) = error "function patterns not implemented"
+
+-- from old autogenerated
+
+data Prim t0 = PrimValue t0
+  | PrimFail C_Exceptions
+  | PrimOr OrRef (Branches (Prim t0))
+
+data C_Four = C_F0
+  | C_F1
+  | C_F2
+  | C_F3
+  | C_FourFail C_Exceptions
+  | C_FourOr OrRef (Branches C_Four)
+  deriving (Eq)
+
+instance BaseCurry C_Success where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = withRef(\ r -> C_SuccessOr(mkRef(r)(0)(i))([C_Success]))(0)
+
+  failed  = C_SuccessFail
+
+  branching  = C_SuccessOr
+
+  consKind (C_SuccessOr _ _) = Branching
+  consKind (C_SuccessFail _) = Failed
+  consKind _ = Val
+
+  exceptions (C_SuccessFail x) = x
+
+  orRef (C_SuccessOr x _) = x
+
+  branches (C_SuccessOr _ x) = x
+
+
+
+
+
+instance BaseCurry C_Bool where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = withRef(\ r -> C_BoolOr(mkRef(r)(0)(i))([C_False,C_True]))(0)
+
+  failed  = C_BoolFail
+
+  branching  = C_BoolOr
+
+  consKind (C_BoolOr _ _) = Branching
+  consKind (C_BoolFail _) = Failed
+  consKind _ = Val
+
+  exceptions (C_BoolFail x) = x
+
+  orRef (C_BoolOr x _) = x
+
+  branches (C_BoolOr _ x) = x
+
+
+
+
+
+instance BaseCurry C_Four where
+  nf f x st = f(x)(st)
+
+  gnf f x st = f(x)(st)
+
+  generator i = withRef(\ r -> C_FourOr(mkRef(r)(0)(i))([C_F0,C_F1,C_F2,C_F3]))(0)
+
+  failed  = C_FourFail
+
+  branching  = C_FourOr
+
+  consKind (C_FourOr _ _) = Branching
+  consKind (C_FourFail _) = Failed
+  consKind _ = Val
+
+  exceptions (C_FourFail x) = x
+
+  orRef (C_FourOr x _) = x
+
+  branches (C_FourOr _ x) = x
+
+
+
+
+
+
diff --git a/src/lib/Curry/Module/Pretty.curry b/src/lib/Curry/Module/Pretty.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Pretty.curry
@@ -0,0 +1,300 @@
+--- This library provides pretty printing combinators.
+--- The interface is that of 
+--- <a href="http://www.cs.uu.nl/~daan/download/pprint/pprint.html">Daan Leijen's library</a> 
+--- (<code>fill</code>, <code>fillBreak</code> and <code>indent</code>
+--- are missing) with a
+--- <a href="http://www.cs.kent.ac.uk/pubs/2006/2381/index.html">linear-time, bounded implementation</a> by Olaf Chitil.
+---
+--- @author Sebastian Fischer
+--- @version October 2006
+---
+module Pretty (
+
+  -- pretty printer and document type
+  pretty, Doc, 
+
+  -- basic document combinators
+  empty, text, linesep, line, linebreak, group, softline, softbreak,
+
+  -- alignment combinators
+  nest, hang, align, --indent??,
+
+  -- composition combinators
+  combine, (<>), (<+>), (<$>), (</>), (<$$>), (<//>),
+
+  -- list combinators
+  compose, hsep, vsep, fillSep, sep, hcat, vcat, fillCat, cat, 
+  punctuate, encloseSep, hEncloseSep, fillEncloseSep, list, tupled, semiBraces,
+
+  -- bracketing combinators
+  enclose, squotes, dquotes, bquotes, parens, angles, braces, brackets,
+
+  -- primitve type documents
+  char, string, int, float,
+
+  -- character documents
+  lparen, rparen, langle, rangle, lbrace, rbrace, lbracket, rbracket,
+  squote, dquote, semi, colon, comma, space, dot, backslash, equals
+
+  ) where
+
+import Dequeue as Q
+
+infixl 1 <>, <+>, <$>, </>, <$$>, <//>
+
+data Doc = Doc (Tokens -> Tokens)
+
+deDoc (Doc d) = d
+
+empty :: Doc
+empty = text ""
+
+text :: String -> Doc
+text s = Doc (Text s)
+
+linesep :: String -> Doc
+linesep = Doc . Line
+
+line, linebreak, softline, softbreak :: Doc
+line = linesep " "
+linebreak = linesep ""
+softline = group line
+softbreak = group linebreak
+
+group :: Doc -> Doc
+group d = Doc (Open . deDoc d . Close)
+
+nest, hang :: Int -> Doc -> Doc
+nest i d = Doc (OpenNest (\ms@(m:_) _ _ -> (m+i):ms) . deDoc d . CloseNest)
+hang i d = Doc (OpenNest (\ms r w -> (w-r+i):ms) . deDoc d . CloseNest)
+
+align :: Doc -> Doc
+align = hang 0
+
+combine :: Doc -> Doc -> Doc -> Doc
+combine s d1 d2 = enclose d1 d2 s
+
+(<>), (<+>), (<$>), (</>), (<$$>), (<//>) :: Doc -> Doc -> Doc
+d1 <> d2 = Doc (deDoc d1 . deDoc d2)
+(<+>) = combine space
+(<$>) = combine line
+(</>) = combine softline
+(<$$>) = combine linebreak
+(<//>) = combine softbreak
+
+compose :: (Doc -> Doc -> Doc) -> [Doc] -> Doc
+--compose op = foldr op empty
+compose _ [] = empty
+compose op ds@(_:_) = foldr1 op ds -- no seperator at the end
+
+hsep, vsep, fillSep, sep, hcat, vcat, fillCat, cat :: [Doc] -> Doc
+hsep = compose (<+>)
+vsep = compose (<$>)
+fillSep = compose (</>)
+sep = group . vsep
+hcat = compose (<>)
+vcat = compose (<$$>)
+fillCat = compose (<//>)
+cat = group . vcat
+
+punctuate :: Doc -> [Doc] -> [Doc]
+punctuate _ [] = []
+punctuate d ds@(_:_) = go ds
+ where
+  go [x] = [x]
+  go (x:xs@(_:_)) = (x <> d) : go xs
+
+encloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc
+encloseSep l r _ [] = l <> r
+encloseSep l r s (d:ds) = align (enclose l r (cat (d:map (s<>) ds)))
+
+hEncloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc
+hEncloseSep l r _ [] = l <> r
+hEncloseSep l r s (d:ds) = align (enclose l r (hcat (d:map (s<>) ds)))
+
+fillEncloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc
+fillEncloseSep l r _ [] = l <> r
+fillEncloseSep l r s (d:ds)
+  = align (enclose l r (hcat (d:withSoftBreaks (map (s<>) ds))))
+ where
+  withSoftBreaks [] = []
+  withSoftBreaks [x] = [group (linebreak <> x)]
+  withSoftBreaks (x:xs@(_:_))
+    = (group (linebreak <> (group (x <> linebreak))) : withSoftBreaks xs)
+
+list, tupled, semiBraces :: [Doc] -> Doc
+list = fillEncloseSep lbracket rbracket comma
+tupled = fillEncloseSep lparen rparen comma
+semiBraces = fillEncloseSep lbrace rbrace semi
+
+enclose :: Doc -> Doc -> Doc -> Doc
+enclose l r d = l <> d <> r
+
+squotes, dquotes, parens, angles, braces, brackets :: Doc -> Doc
+squotes = enclose squote squote
+dquotes = enclose dquote dquote
+bquotes = enclose bquote bquote
+parens = enclose lparen rparen
+angles = enclose langle rangle
+braces = enclose lbrace rbrace
+brackets = enclose lbracket rbracket
+
+char :: Char -> Doc
+char c = text [c]
+
+string :: String -> Doc
+string = hcat . map (\c -> if elem c ['\n','\r'] then line else char c)
+
+int :: Int -> Doc
+int n = text (show n)
+
+float :: Float -> Doc
+float x = text (show x)
+
+lparen, rparen, langle, rangle, lbrace, rbrace, lbracket, rbracket,
+  squote, dquote, bquote, semi, colon, comma, space, dot, backslash, 
+  equals :: Doc
+lparen = char '('
+rparen = char ')'
+langle = char '<'
+rangle = char '>'
+lbrace = char '{'
+rbrace = char '}'
+lbracket = char '['
+rbracket = char ']'
+squote = char '\''
+dquote = char '\"'
+bquote = char '`'
+semi = char ';'
+colon = char ':'
+comma = char ','
+space = char ' '
+dot = char '.'
+backslash = char '\\'
+equals = char '='
+
+
+type Layout = String
+type Horizontal = Bool
+type Remaining = Int
+type Width = Int
+type Position = Int
+type StartPosition = Int
+type EndPosition = Int
+type Out = Remaining -> Margins -> String
+type OutGroupPrefix = Horizontal -> Out -> Out
+type Margins = [Int]
+
+data Tokens = Text String Tokens
+            | Line String Tokens
+            | Open Tokens
+            | Close Tokens
+            | Empty
+            | OpenNest (Margins -> Remaining -> Width -> Margins) Tokens
+            | CloseNest Tokens
+
+normalise :: Tokens -> Tokens
+normalise = go id
+  where
+  go co Empty = co Empty
+    -- there should be no deferred opening brackets
+  go co (Open ts) = go (co . open) ts
+  go co (Close ts) = go (co . Close) ts
+  go co (Line s ts) = co . Line s . go id $ ts
+  go co (Text s ts) = Text s (go co ts)
+  go co (OpenNest f ts) = OpenNest f (go co ts)
+  go co (CloseNest ts) = CloseNest (go co ts)
+
+  open t = case t of Close ts -> ts; _ -> Open t
+
+doc2Tokens (Doc d) = normalise (d Empty)
+
+
+pretty :: Width -> Doc -> String
+pretty w d = noGroup (doc2Tokens d) w 1 w [0]
+
+
+length = Prelude.length . filter (not . (`elem` ([5,6,7]++[16..31])) . ord)
+
+noGroup :: Tokens -> Width -> Position -> Out
+noGroup Empty _ _ _ _ = ""
+noGroup (Text t ts) w p r ms = t ++ noGroup ts w (p+l) (r-l) ms
+  where
+  l = length t
+noGroup (Line _ ts) w p _ ms@(m:_) = 
+  '\n' : replicate m ' ' ++ noGroup ts w (p+1) (w-m) ms
+noGroup (Open ts) w p r ms = oneGroup ts w p (p+r) (\_ c -> c) r ms
+noGroup (Close ts) w p r ms = noGroup ts w p r ms -- may have been pruned
+noGroup (OpenNest f ts) w p r ms = noGroup ts w p r (f ms r w)
+noGroup (CloseNest ts) w p r ms = noGroup ts w p r (tail ms)
+
+oneGroup :: Tokens -> Width -> Position -> EndPosition -> OutGroupPrefix -> Out
+oneGroup (Text t ts) w p e outGrpPre = 
+  pruneOne ts w (p+l) e (\h c -> outGrpPre h (outText c))
+  where
+  l = length t
+  outText c r ms = t ++ c (r-l) ms
+oneGroup (Line s ts) w p e outGrpPre = 
+  pruneOne ts w (p + lens) e (\h c -> outGrpPre h (outLine h c))
+  where
+  lens = length s
+  outLine h c r ms@(m:_) = 
+    if h then s ++ c (r-lens) ms else '\n' : replicate m ' ' ++ c (w-m) ms
+oneGroup (Open ts) w p e outGrpPre =
+  multiGroup ts w p e outGrpPre Q.empty p (\_ c -> c)
+oneGroup (Close ts) w p e outGrpPre = outGrpPre (p<=e) (noGroup ts w p) 
+oneGroup (OpenNest f ts) w p e outGrpPre =
+  oneGroup ts w p e (\h c -> outGrpPre h (\r ms -> c r (f ms r w)))
+oneGroup (CloseNest ts) w p e outGrpPre =
+  oneGroup ts w p e (\h c -> outGrpPre h (\r ms -> c r (tail ms)))
+
+multiGroup :: Tokens -> Width -> Position -> EndPosition -> OutGroupPrefix 
+              -> Queue (StartPosition,OutGroupPrefix) 
+              -> StartPosition -> OutGroupPrefix -> Out
+multiGroup (Text t ts) w p e outGrpPreOuter qs s outGrpPreInner =
+  pruneMulti ts w (p+l) e outGrpPreOuter qs s 
+    (\h c -> outGrpPreInner h (outText c))
+  where
+  l = length t
+  outText c r ms = t ++ c (r-l) ms
+multiGroup (Line s ts) w p e outGrpPreOuter qs si outGrpPreInner =
+  pruneMulti ts w (p + lens) e outGrpPreOuter qs si 
+    (\h c -> outGrpPreInner h (outLine h c))
+  where
+  lens = length s
+  outLine h c r ms@(m:_) = 
+    if h then s ++ c (r-lens) ms else '\n': replicate m ' ' ++ c (w-m) ms
+multiGroup (Open ts) w p e outGrpPreOuter qs si outGrpPreInner =
+  multiGroup ts w p e outGrpPreOuter (cons (si,outGrpPreInner) qs) p (\_ c -> c)
+multiGroup (Close ts) w p e outGrpPreOuter qs si outGrpPreInner =
+  case matchHead qs of
+    Nothing -> oneGroup ts w p e 
+                 (\h c -> outGrpPreOuter h 
+                            (\ri -> outGrpPreInner (p<=si+ri) c ri))
+    Just ((s,outGrpPre),qs') ->
+      multiGroup ts w p e outGrpPreOuter qs' s
+        (\h c -> outGrpPre h (\ri -> outGrpPreInner (p<=si+ri) c ri))
+multiGroup (OpenNest f ts) w p e outGrpPreOuter qs si outGrpPreInner =
+  multiGroup ts w p e outGrpPreOuter qs si 
+    (\h c -> outGrpPreInner h (\r ms -> c r (f ms r w)))
+multiGroup (CloseNest ts) w p e outGrpPreOuter qs si outGrpPreInner =
+  multiGroup ts w p e outGrpPreOuter qs si
+    (\h c -> outGrpPreInner h (\r ms -> c r (tail ms)))
+
+
+pruneOne :: Tokens -> Width -> Position -> EndPosition -> OutGroupPrefix -> Out
+pruneOne ts w p e outGrpPre = 
+  if p <= e then oneGroup ts w p e outGrpPre 
+            else outGrpPre False (noGroup ts w p)
+
+pruneMulti :: Tokens -> Width -> Position -> EndPosition -> OutGroupPrefix 
+              -> Queue (StartPosition,OutGroupPrefix) 
+              -> StartPosition -> OutGroupPrefix -> Out
+pruneMulti ts w p e outGrpPreOuter qs si outGrpPreInner =
+  if p <= e then multiGroup ts w p e outGrpPreOuter qs si outGrpPreInner
+            else outGrpPreOuter False (\r ->
+                   (case matchLast qs of
+                      Nothing -> pruneOne ts w p (si+r) outGrpPreInner
+                      Just ((s,outGrpPre),qs') ->
+                        pruneMulti ts w p (s+r) outGrpPre qs' si outGrpPreInner)
+                          r)
diff --git a/src/lib/Curry/Module/Profile.hs.include b/src/lib/Curry/Module/Profile.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Profile.hs.include
@@ -0,0 +1,1 @@
+[ForFunction "getProcessInfos",ForFunction "garbageCollectorOff",ForFunction "garbageCollectorOn",ForFunction "garbageCollect",ForFunction "evalTime",ForFunction "evalSpace"]
diff --git a/src/lib/Curry/Module/PropertyFile.curry b/src/lib/Curry/Module/PropertyFile.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/PropertyFile.curry
@@ -0,0 +1,56 @@
+------------------------------------------------------------------------------
+--- A library to read and update files containing properties in the usual
+--- equational syntax, i.e., a property is defined by a line of the form
+--- prop=value where prop starts with a letter.
+--- All other lines (e.g., blank lines or lines starting with '#' are
+--- considered as comment lines and are ignored.
+---
+--- @author Michael Hanus
+--- @version August 2006
+------------------------------------------------------------------------------
+
+module PropertyFile(readPropertyFile,updatePropertyFile) where
+
+import Directory
+import IOExts
+import Char
+
+--- Reads a property file and returns the list of properties.
+--- Returns empty list if the property file does not exist.
+readPropertyFile :: String -> IO [(String,String)]
+readPropertyFile file = do
+  pfexists <- doesFileExist file
+  if pfexists
+   then do rcs <- readFile file
+           return $ splitEqs . filter (\l->not (null l) && isAlpha (head l))
+                             . lines $ rcs
+   else return []
+ where
+  splitEqs [] = []
+  splitEqs (eq:eqs) = case break (=='=') eq of
+     (prop,_:val) -> (prop,val) : splitEqs eqs
+     _            -> splitEqs eqs
+
+
+--- Update a property in a property file or add it, if it is not already
+--- there.
+--- @param file - the name of the property file
+--- @param pname - the name of the property
+--- @param pvalue - the new value of the property
+updatePropertyFile :: String -> String -> String -> IO ()
+updatePropertyFile file pname pval = do
+  props <- readPropertyFile file
+  if lookup pname props == Nothing
+   then appendFile file (pname++"="++pval++"\n")
+   else changePropertyInFile file pname pval
+
+--- Change a property in a property file.
+changePropertyInFile :: String -> String -> String -> IO ()
+changePropertyInFile file pname pval = do
+  updateFile (\rcs -> unlines . map changeProp . lines $ rcs) file
+ where
+  changeProp l = let (s1,s2) = break (=='=') l
+                  in if null l || not (isAlpha (head l)) || null s2
+                     then l
+                     else if s1==pname then s1++"="++pval else l
+
diff --git a/src/lib/Curry/Module/Random.curry b/src/lib/Curry/Module/Random.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Random.curry
@@ -0,0 +1,131 @@
+------------------------------------------------------------------------------
+--- Library for pseudo-random number generation in Curry.
+--- <P>
+--- This library provides operations for generating pseudo-random
+--- number sequences.
+--- For any given seed, the sequences generated by the operations
+--- in this module should be <B>identical</B> to the sequnces
+--- generated by the java.util.Random package.
+--- <P>
+--- The algorithm is a linear congruential pseudo-random number generator
+--- described in Donald E. Knuth, <i>The 
+--- Art of Computer Programming,</i> Volume 2: <i>Seminumerical 
+--- Algorithms</i>, section 3.2.1.
+---
+--- @author Sergio Antoy (with extensions by Michael Hanus)
+--- @version December 2004
+------------------------------------------------------------------------------
+
+module Random(nextInt, nextIntRange, nextBoolean, getRandomSeed) where
+
+import Time
+import System(getCPUTime)
+
+------------------------------------------------------------------
+--                       Private Operations
+------------------------------------------------------------------
+
+-- a few constants
+
+multiplier = 25214903917
+addend     = 11
+powermask  = 48
+mask       = 281474976710656  -- 2^powermask
+intsize    = 32
+intspan    = 4294967296       -- 2^intsize
+intlimit   = 2147483648       -- 2^(intsize-1)
+
+-- the basic sequence of random values
+
+sequence seed = next : sequence next
+    where next = nextseed seed
+
+-- auxiliary private operations
+
+nextseed seed = (seed * multiplier + addend) `mod` mask
+
+xor x y = if (x==0) && (y==0) then 0 else lastBit + 2 * restBits
+    where lastBit  = if (x `mod` 2) == (y `mod` 2) then 0 else 1
+          restBits = xor (x `div` 2) (y `div` 2)
+
+power base exp = binary 1 base exp
+    where binary x b e
+              = if (e == 0) then x
+                else binary (x * if (e `mod` 2 == 1) then b else 1)
+                            (b * b)
+                            (e `div` 2)
+
+nextIntBits seed bits = map adjust list
+    where init = (xor seed multiplier) `mod` mask
+          list = sequence init
+          shift = power 2 (powermask - bits)
+          adjust x = if arg > intlimit then arg - intspan
+                                       else arg
+              where arg = (x `div` shift) `mod` intspan
+
+------------------------------------------------------------------
+--                       Public Operations
+------------------------------------------------------------------
+
+--- Returns a sequence of pseudorandom, uniformly distributed 32-bits
+--- integer values.  All 2<font size="-1"><sup>32
+--- </sup></font> possible integer values are produced with 
+--- (approximately) equal probability.
+---
+--- @param seed - The seed of the random sequence.
+
+nextInt :: Int -> [Int]
+nextInt seed = nextIntBits seed intsize
+
+--- Returns a pseudorandom, uniformly distributed sequence of values
+--- between 0 (inclusive) and the specified value (exclusive).
+--- Each value is a 32-bits positive integer.
+--- All <tt>n</tt> possible values are produced with (approximately) equal
+--- probability.
+--- @param seed - The seed of the random sequence.
+--- @param n - The bound on the random number to be returned. 
+---            Must be positive.
+
+nextIntRange :: Int -> Int -> [Int]
+nextIntRange seed n | n>0
+    = if power_of_2 n then map adjust_a seq
+      else map adjust_b (filter adjust_c seq)
+    where seq = nextIntBits seed (intsize - 1)
+          adjust_a x = (n * x) `div` intlimit
+          adjust_b x = x `mod` n
+          adjust_c x = x - (x `mod` n) + (n - 1) >= 0
+          power_of_2 k = k == 2 || 
+                         k > 2 && k `mod` 2 == 0 && power_of_2 (k `div` 2)
+                            
+--- Returns a pseudorandom, uniformly distributed sequence of
+--- <code>boolean</code> values.  The
+--- values <code>True</code> and <code>False</code> are produced with
+--- (approximately) equal probability. 
+--- @param seed - The seed of the random sequence.
+
+nextBoolean :: Int -> [Bool]
+nextBoolean seed = map (/= 0) (nextIntBits seed 1)
+
+
+--- Returns a time-dependent integer number as a seed for really random numbers.
+--- Should only be used as a seed for pseudorandom number sequence
+--- and not as a random number since the precision is limited to milliseconds
+
+getRandomSeed :: IO Int
+getRandomSeed =
+  getClockTime >>= \time ->
+  getCPUTime >>= \msecs ->
+  let (CalendarTime y mo d h m s _) = toUTCTime time
+   in return ((y+mo+d+h+m*s*msecs) `mod` mask)
+                            
+{-     Simple tests and examples
+
+testInt = take 20 (nextInt 0)
+
+testIntRange = take 120 (nextIntRange 0 6)
+
+testBoolean = take 20 (nextBoolean 0)
+
+reallyRandom = do seed <- getRandomSeed
+                  putStrLn (show (take 20 (nextIntRange seed 100)))
+-}
diff --git a/src/lib/Curry/Module/RandomExternal.curry b/src/lib/Curry/Module/RandomExternal.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/RandomExternal.curry
@@ -0,0 +1,50 @@
+--- External (more efficient) implementation of random number generation.
+--- 
+--- @author sebf@informatik.uni-kiel.de
+--- @version January 2008
+---
+module RandomExternal (
+
+  split, nextInt, nextIntRange, nextBoolean,
+
+  getRandomSeed
+
+  ) where
+
+--- Splits a random seed into an infinite list of uncorrelated random seeds.
+---
+split :: Int -> [Int]
+split seed = s1 : split s2
+ where (s1,s2) = prim_split $## seed
+
+prim_split :: Int -> (Int,Int)
+prim_split external
+
+--- Computes an infinite list of random integers.
+---
+nextInt :: Int -> [Int]
+nextInt seed = prim_nextInt $## seed
+
+prim_nextInt :: Int -> [Int]
+prim_nextInt external
+
+--- Computes an infinite list of random integers between 0 and given bound.
+--- Both 0 and the given bound may occur in the result.
+---
+nextIntRange :: Int -> Int -> [Int]
+nextIntRange seed bound = (prim_nextIntRange $## seed) $## bound
+
+prim_nextIntRange :: Int -> Int -> [Int]
+prim_nextIntRange external
+
+--- Computes an infinite list of random booleans.
+---
+nextBoolean :: Int -> [Bool]
+nextBoolean seed = map (0==) (nextIntRange seed 1)
+
+--- Computes an initial random seed.
+---
+getRandomSeed :: IO Int
+getRandomSeed external
+
+
diff --git a/src/lib/Curry/Module/RandomExternal.hs.include b/src/lib/Curry/Module/RandomExternal.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/RandomExternal.hs.include
@@ -0,0 +1,29 @@
+[ForFunction "prim_split"
+,ForFunction "prim_nextInt"
+,ForFunction "prim_nextIntRange"
+,ForFunction "getRandomSeed"
+]
+
+import System.Random
+
+prim_split :: C_Int -> Result (T2 C_Int C_Int)
+prim_split seed _ = toCurry (fst (next g1), fst (next g2))
+ where
+  (g1,g2) = split (mkStdGen (fromCurry seed))
+
+prim_nextInt :: C_Int -> Result (List C_Int)
+prim_nextInt seed _ = toCurry (nextInt (fromCurry seed))
+
+nextInt :: Int -> [Int]
+nextInt = randoms . mkStdGen
+
+prim_nextIntRange :: C_Int -> C_Int -> Result (List C_Int)
+prim_nextIntRange seed bound _ =
+  toCurry (nextIntRange (fromCurry seed) (fromCurry bound))
+
+nextIntRange :: Int -> Int -> [Int]
+nextIntRange seed bound = randomRs (0,bound) (mkStdGen seed)
+
+getRandomSeed :: Result (C_IO C_Int)
+getRandomSeed = ioFunc0 (getStdRandom next)
+
diff --git a/src/lib/Curry/Module/Read.curry b/src/lib/Curry/Module/Read.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Read.curry
@@ -0,0 +1,53 @@
+------------------------------------------------------------------------------
+--- Library with some functions for reading special tokens.
+--
+--- @author Michael Hanus
+--- @version January 2000
+------------------------------------------------------------------------------
+
+module Read(readNat,readInt,readHex)  where
+
+import Char
+
+--- Read a natural number in a string.
+--- The string might contain leadings blanks and the the number is read
+--- up to the first non-digit.
+readNat :: String -> Int   -- result >= 0
+readNat l = readNatPrefix (dropWhile (\c->c==' ') l) 0
+ where
+  readNatPrefix [] n = n
+  readNatPrefix (c:cs) n =
+   let oc = ord c in
+     if oc>=ord '0' && oc<=ord '9' then readNatPrefix cs (n*10+oc-(ord '0'))
+                                   else n
+
+
+--- Read a (possibly negative) integer in a string.
+--- The string might contain leadings blanks and the the integer is read
+--- up to the first non-digit.
+readInt :: String -> Int   -- result >= 0
+readInt l = readIntPrefix (dropWhile (\c->c==' ') l)
+ where
+  readIntPrefix []     = 0
+  readIntPrefix (c:cs) = if c=='-' then - (readNat cs) else readNat (c:cs)
+
+
+--- Read a hexadecimal number in a string.
+--- The string might contain leadings blanks and the the integer is read
+--- up to the first non-heaxdecimal digit.
+readHex :: String -> Int   -- result >= 0
+readHex l = readHexPrefix (dropWhile (\c->c==' ') l) 0
+ where
+  readHexPrefix [] n = n
+  readHexPrefix (c:cs) n =
+   let cv = hex2int c in
+     if cv>=0 then readHexPrefix cs (n*16+cv)
+              else n
+
+  hex2int c = if isDigit c then ord c - ord '0'
+                           else if ord c >= ord 'A' && ord c <= ord 'F'
+                                then ord c - ord 'A' + 10
+                                else -1
+
+-- end of library Read
+
diff --git a/src/lib/Curry/Module/ReadAnswer.hs.include b/src/lib/Curry/Module/ReadAnswer.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/ReadAnswer.hs.include
@@ -0,0 +1,1 @@
+[ForFunction "prim_readAnswer",ForFunction "stdinUnbuffered",ForFunction "stdinBuffered"]
diff --git a/src/lib/Curry/Module/ReadShowTerm.curry b/src/lib/Curry/Module/ReadShowTerm.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/ReadShowTerm.curry
@@ -0,0 +1,146 @@
+------------------------------------------------------------------------------
+--- Library for converting ground terms to strings and vice versa.
+---
+--- @author Michael Hanus
+--- @version April 2005
+------------------------------------------------------------------------------
+
+module ReadShowTerm {-(showTerm,showQTerm,readQTerm,readsQTerm,
+                    readsUnqualifiedTerm,readUnqualifiedTerm,readsTerm,readTerm,
+                    readQTermFile,readQTermListFile,
+                    writeQTermFile,writeQTermListFile)-} where
+
+import Char(isSpace)
+
+--- Transforms a ground(!) term into a string representation
+--- in standard prefix notation.
+--- Thus, showTerm suspends until its argument is ground.
+--- This function is similar to the prelude function <code>show</code>
+--- but can read the string back with <code>readUnqualifiedTerm</code>
+--- (provided that the constructor names are unique without the module
+--- qualifier).
+showTerm :: _ -> String
+showTerm x = prim_showTerm $## x
+
+prim_showTerm :: _ -> String
+prim_showTerm external
+
+--- Transforms a ground(!) term into a string representation
+--- in standard prefix notation.
+--- Thus, showTerm suspends until its argument is ground.
+--- Note that this function differs from the prelude function <code>show</code>
+--- since it prefixes constructors with their module name
+--- in order to read them back with <code>readQTerm</code>.
+showQTerm :: _ -> String
+showQTerm x = prim_showQTerm $## x
+
+prim_showQTerm :: _ -> String
+prim_showQTerm external
+
+--- Transform a string containing a term in standard prefix notation
+--- without module qualifiers into the corresponding data term.
+--- The first argument is a non-empty list of module qualifiers that are tried to
+--- prefix the constructor in the string in order to get the qualified constructors
+--- (that must be defined in the current program!).
+--- In case of a successful parse, the result is a one element list
+--- containing a pair of the data term and the remaining unparsed string.
+
+readsUnqualifiedTerm :: [String] -> String -> [(_,String)]
+readsUnqualifiedTerm [] _ =
+  error "ReadShowTerm.readsUnqualifiedTerm: list of module prefixes is empty"
+readsUnqualifiedTerm (prefix:prefixes) s =
+  readsUnqualifiedTermWithPrefixes (prefix:prefixes) s
+
+readsUnqualifiedTermWithPrefixes :: [String] -> String -> [(_,String)]
+readsUnqualifiedTermWithPrefixes prefixes s = 
+  (prim_readsUnqualifiedTerm $## prefixes) $## s
+
+prim_readsUnqualifiedTerm :: [String] -> String -> [(_,String)]
+prim_readsUnqualifiedTerm external
+
+--- Transforms a string containing a term in standard prefix notation
+--- without module qualifiers into the corresponding data term.
+--- The first argument is a non-empty list of module qualifiers that are tried to
+--- prefix the constructor in the string in order to get the qualified constructors
+--- (that must be defined in the current program!).
+---
+--- Example: <code>readUnqualifiedTerm ["prelude"] "Just 3"</code>
+--- evaluates to <code>(Just 3)</code>
+
+readUnqualifiedTerm :: [String] -> String -> _
+readUnqualifiedTerm prefixes s = case readsUnqualifiedTerm prefixes s of
+  [(term,tail)]
+     -> if all isSpace tail then term
+        else error ("ReadShowTerm.readUnqualifiedTerm: no parse, unmatched string after term: "++tail)
+  [] ->  error "ReadShowTerm.readUnqualifiedTerm: no parse"
+  _  ->  error "ReadShowTerm.readUnqualifiedTerm: ambiguous parse"
+
+--- For backward compatibility. Should not be used since their use can be problematic
+--- in case of constructors with identical names in different modules.
+readsTerm :: String -> [(_,String)]
+readsTerm s = prim_readsUnqualifiedTerm [] $## s
+
+--- For backward compatibility. Should not be used since their use can be problematic
+--- in case of constructors with identical names in different modules.
+readTerm :: String -> _
+readTerm s = case result of
+  [(term,tail)]
+     -> if all isSpace tail then term
+        else error ("ReadShowTerm.readTerm: no parse, unmatched string after term: "++tail)
+  [] ->  error $ "ReadShowTerm.readTerm: no parse of string beginning with "
+               ++ take 20 s
+  _  ->  error "ReadShowTerm.readTerm: ambiguous parse"
+ where result = prim_readsUnqualifiedTerm [] $## s
+
+--- Transforms a string containing a term in standard prefix notation
+--- with qualified constructor names into the corresponding data term.
+--- In case of a successful parse, the result is a one element list
+--- containing a pair of the data term and the remaining unparsed string.
+
+readsQTerm :: String -> [(_,String)]
+readsQTerm s = prim_readsQTerm $## s
+
+prim_readsQTerm :: String -> [(_,String)]
+prim_readsQTerm external
+
+--- Transforms a string containing a term in standard prefix notation
+--- with qualified constructor names into the corresponding data term.
+
+readQTerm :: String -> _
+readQTerm s = case result of
+  [(term,tail)] -> if all isSpace tail then term
+                   else error "ReadShowTerm.readQTerm: no parse"
+  [] ->  error "ReadShowTerm.readQTerm: no parse"
+  _  ->  error "ReadShowTerm.readQTerm: ambiguous parse"
+ where result = readsQTerm s
+
+
+--- Reads a file containing a string representation of a term
+--- in standard prefix notation and returns the corresponding data term.
+
+readQTermFile :: String -> IO _
+readQTermFile file = readFile file >>= return . readQTerm
+
+--- Reads a file containing lines with string representations of terms
+--- of the same type and returns the corresponding list of data terms.
+
+readQTermListFile :: String -> IO [_]
+readQTermListFile file = readFile file >>= return . map readQTerm . lines
+
+--- Writes a ground term into a file in standard prefix notation.
+--- @param filename - The name of the file to be written.
+--- @param term - The term to be written to the file as a string.
+
+writeQTermFile :: String -> _ -> IO ()
+writeQTermFile filename term = writeFile filename (showQTerm term)
+
+--- Writes a list of ground terms into a file.
+--- Each term is written into a separate line which might be useful
+--- to modify the file with a standard text editor.
+--- @param filename - The name of the file to be written.
+--- @param terms - The list of terms to be written to the file.
+
+writeQTermListFile :: String -> [_] -> IO ()
+writeQTermListFile filename terms =
+    writeFile filename (unlines (map showQTerm terms))
+
diff --git a/src/lib/Curry/Module/ReadShowTerm.hs.include b/src/lib/Curry/Module/ReadShowTerm.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/ReadShowTerm.hs.include
@@ -0,0 +1,23 @@
+[ForFunction "prim_showTerm"
+,ForFunction "prim_showQTerm"
+,ForFunction "prim_readsUnqualifiedTerm"
+,ForFunction "prim_readsQTerm"
+]
+
+import Data.Char
+
+prim_showTerm :: Curry t0 => t0 -> Result (List C_Char)
+prim_showTerm = prim_show 
+
+--because of type classes there is no need to qualify in kics
+prim_showQTerm :: Curry t0 => t0 -> Result (List C_Char)
+prim_showQTerm x _ = toCurry (showQ 0 x [])
+
+prim_readsUnqualifiedTerm :: Curry t0 => 
+   List C_String -> C_String -> Result (List (T2 t0 C_String))
+prim_readsUnqualifiedTerm _ x _ = 
+  fromHaskellList $ map (\ (x,y) -> T2 x (toCurry y)) $ reads $ fromCurry x
+
+prim_readsQTerm :: Curry t0 => C_String -> Result (List (T2 t0 C_String))
+prim_readsQTerm = prim_readsUnqualifiedTerm List  
+
diff --git a/src/lib/Curry/Module/RedBlackTree.curry b/src/lib/Curry/Module/RedBlackTree.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/RedBlackTree.curry
@@ -0,0 +1,234 @@
+---------------------------------------------------------------------------
+--- Library with an implementation of red-black trees:
+--- <P>
+--- Serves as the base for both TableRBT and SetRBT
+--- All the operations on trees are generic, i.e., one has to provide
+--- two explicit order predicates ("<CODE>lessThan</CODE>" and "<CODE>eq</CODE>"below) 
+--- on elements.
+--- 
+--- @author Johannes Koj, Michael Hanus, Bernd Braßel
+--- @version March 2005
+----------------------------------------------------------------------------
+
+module RedBlackTree 
+  (RedBlackTree, empty, isEmpty, lookup, update, 
+   tree2list, sort, newTreeLike, setInsertEquivalence, delete
+  )   where 
+
+----------------------------------------------------------------------------
+-- the main interface:
+
+--- A red-black tree consists of a tree structure and three order predicates.
+--- These predicates generalize the red black tree. They define
+--- 1) equality when inserting into the tree<br>
+---    eg for a set eqInsert is (==), 
+---       for a multiset it is (\ _ _ -> False)
+---       for a lookUp-table it is ((==) . fst) 
+--- 2) equality for looking up values 
+---    eg for a set eqLookUp is (==), 
+---       for a multiset it is (==)
+---       for a lookUp-table it is ((==) . fst) 
+--- 3) the (less than) relation for the binary search tree
+
+data RedBlackTree a = RedBlackTree (a->a->Bool) (a->a->Bool) (a->a->Bool) (Tree a)
+
+--- The three relations are inserted into the structure by function empty.
+--- Returns an empty tree, i.e., an empty red-black tree 
+--- augmented with the order predicates.
+
+empty :: (a->a->Bool) -> (a->a->Bool) -> (a->a->Bool) -> RedBlackTree a
+empty eqInsert eqLookUp lessThan = RedBlackTree eqInsert eqLookUp lessThan Empty 
+
+--- Test on emptyness
+isEmpty  (RedBlackTree _ _ _ Empty)          = True
+isEmpty  (RedBlackTree _ _ _ (Tree _ _ _ _)) = False
+
+--- Creates a new empty red black tree from with the same ordering as a give one.
+newTreeLike (RedBlackTree eqIns eqLk lt _) = RedBlackTree eqIns eqLk lt Empty
+
+--- Returns an element if it is contained in a red-black tree.
+--- @param p - a pattern for an element to look up in the tree
+--- @param t - a red-black tree
+--- @return the contained True if p matches in t
+
+lookup :: a -> RedBlackTree a -> Maybe a
+lookup p (RedBlackTree _ eqLk lt t) = lookupTree eqLk lt p t
+
+lookupTree :: (a->a->Bool) -> (a->a->Bool) -> a -> Tree a -> Maybe a
+lookupTree _ _ _ Empty = Nothing
+lookupTree eq lt p (Tree _ e l r) 
+     | eq p e    = Just e
+     | lt p e    = lookupTree eq lt p l
+     | otherwise = lookupTree eq lt p r
+
+--- Updates/inserts an element into a RedBlackTree.
+update :: a -> RedBlackTree a -> RedBlackTree a
+update e (RedBlackTree eqIns eqLk lt t) = 
+          RedBlackTree eqIns eqLk lt (updateTree eqIns lt e t)
+
+updateTree :: (a->a->Bool) -> (a->a->Bool) -> a -> Tree a -> Tree a
+updateTree eq lt e t = let (Tree _     e2 l r) = upd t
+                        in  Tree Black e2 l r
+  where
+    upd Empty = Tree Red e Empty Empty
+    upd (Tree c e2 l r) | eq e e2   = Tree c e l r
+                        | lt e e2   = balanceL (Tree c e2 (upd l) r)
+                        | otherwise = balanceR (Tree c e2 l (upd r))
+
+--- Deletes entry from red black tree.
+delete :: a -> RedBlackTree a -> RedBlackTree a
+delete e (RedBlackTree eqIns eqLk lt t) =
+          RedBlackTree eqIns eqLk lt (blackenRoot (deleteTree eqLk lt e t))
+  where
+    blackenRoot Empty = Empty
+    blackenRoot (Tree _ x l r) = Tree Black x l r 
+
+deleteTree _ _ _ Empty = Empty  -- no error for non existence
+deleteTree eq lt e (Tree c e2 l r) 
+      | eq e e2 = if l==Empty then addColor c r else 
+                  if r==Empty then addColor c l
+                               else let el = rightMost l 
+                                     in delBalanceL (Tree c el (deleteTree eq lt el l) r)
+      | lt e e2 = delBalanceL (Tree c e2 (deleteTree eq lt e l) r)
+      | otherwise = delBalanceR (Tree c e2 l (deleteTree eq lt e r))
+  where
+    addColor Red tree = tree
+    addColor Black Empty = Empty
+    addColor Black (Tree Red x lx rx)   = Tree Black x lx rx
+    addColor Black (Tree Black x lx rx) = Tree DoublyBlack x lx rx
+
+    rightMost (Tree _ x _ rx) = if rx==Empty then x else rightMost rx
+                                
+
+--- Transforms a red-black tree into an ordered list of its elements.
+tree2list :: RedBlackTree a -> [a]
+tree2list (RedBlackTree _ _ _ t) = tree2listTree t 
+ 
+tree2listTree tree = t2l tree [] 
+   where
+     t2l Empty es = es
+     t2l (Tree _ e l r) es = t2l l (e : t2l r es)
+
+--- Generic sort based on insertion into red-black trees.
+--- The first argument is the order for the elements.
+
+sort  :: (a->a->Bool) -> [a] -> [a]
+sort cmp xs = tree2list (foldr update (empty (\_ _->False) (==) cmp) xs)
+
+--- For compatibility with old version only
+setInsertEquivalence :: (a->a->Bool) -> RedBlackTree a -> RedBlackTree a
+setInsertEquivalence eqIns (RedBlackTree _ eqLk lt t) = RedBlackTree eqIns eqLk lt t
+
+----------------------------------------------------------------------------
+-- implementation of red-black trees:
+
+rbt (RedBlackTree _ _ _ t) = t 
+
+--- The colors of a node in a red-black tree.
+data Color = Red | Black | DoublyBlack
+
+--- The structure of red-black trees.
+data Tree a = Tree Color a (Tree a) (Tree a)
+            | Empty
+
+isBlack :: Tree _ -> Bool
+isBlack Empty = True
+isBlack (Tree c _ _ _) = c==Black
+
+isRed :: Tree _ -> Bool
+isRed Empty = False
+isRed (Tree c _ _ _) = c==Red
+
+isDoublyBlack :: Tree _ -> Bool
+isDoublyBlack Empty = True
+isDoublyBlack (Tree c _ _ _) = c==DoublyBlack
+
+element :: Tree a -> a
+element (Tree _ e _ _) = e
+
+left :: Tree a -> Tree a
+left (Tree _ _ l _) = l
+
+right :: Tree a -> Tree a
+right (Tree _ _ _ r) = r
+
+singleBlack Empty = Empty
+singleBlack (Tree DoublyBlack x l r) = Tree Black x l r
+
+--- for the implementation of balanceL and balanceR refer to picture 3.5, page 27, 
+--- Okasaki "Purely Functional Data Structures"
+balanceL :: Tree a  ->  Tree a
+balanceL tree 
+  | isRed leftTree && isRed (left leftTree)
+  = let Tree _ z (Tree _ y (Tree _ x a b) c) d = tree
+     in Tree Red y (Tree Black x a b) (Tree Black z c d)
+  
+  | isRed leftTree && isRed (right leftTree)
+  = let Tree _ z (Tree _ x a (Tree _ y b c)) d = tree
+     in Tree Red y (Tree Black x a b) (Tree Black z c d)
+
+  | otherwise = tree
+
+  where
+    leftTree = left tree 
+        
+balanceR :: Tree a  ->  Tree a
+balanceR tree
+  | isRed rightTree && isRed (right rightTree)
+  = let Tree _ x a (Tree _ y b (Tree _ z c d)) = tree
+     in Tree Red y (Tree Black x a b) (Tree Black z c d)
+
+  | isRed rightTree && isRed (left rightTree)
+  = let Tree _ x a (Tree _ z (Tree _ y b c) d) = tree
+     in Tree Red y (Tree Black x a b) (Tree Black z c d)
+
+  | otherwise = tree
+
+  where 
+    rightTree = right tree
+
+
+--- balancing after deletion
+
+delBalanceL :: Tree a  ->  Tree a
+delBalanceL tree = if isDoublyBlack (left tree) then reviseLeft tree else tree
+
+reviseLeft tree
+  | r==Empty = tree
+  | blackr && isRed (left r)
+  = let Tree col x a (Tree _ z (Tree _ y b c) d) = tree
+     in Tree col y (Tree Black x (singleBlack a) b) (Tree Black z c d)
+  | blackr && isRed (right r) 
+  = let Tree col x a (Tree _ y b (Tree _ z c d)) = tree
+     in Tree col y (Tree Black x (singleBlack a) b) (Tree Black z c d)
+  | blackr 
+  = let Tree col x a (Tree _ y b c) = tree
+     in Tree (if col==Red then Black else DoublyBlack) x (singleBlack a) (Tree Red y b c)
+  | otherwise 
+  = let Tree _ x a (Tree _ y b c) = tree
+     in Tree Black y (reviseLeft (Tree Red x a b)) c
+  where
+    r = right tree
+    blackr = isBlack r
+
+delBalanceR :: Tree a  ->  Tree a
+delBalanceR tree = if isDoublyBlack (right tree) then reviseRight tree else tree
+
+reviseRight tree
+  | l==Empty = tree
+  | blackl && isRed (left l)
+  = let Tree col x (Tree _ y (Tree _ z d c) b) a = tree
+     in Tree col y (Tree Black z d c) (Tree Black x b (singleBlack a))
+  | blackl && isRed (right l) 
+  = let Tree col x (Tree _ z d (Tree _ y c b)) a = tree
+     in Tree col y (Tree Black z d c) (Tree Black x b (singleBlack a))
+  | blackl 
+  = let Tree col x (Tree _ y c b) a = tree
+     in Tree (if col==Red then Black else DoublyBlack) x (Tree Red y c b) (singleBlack a)
+  | otherwise 
+  = let Tree _ x (Tree _ y c b) a = tree
+     in Tree Black y c (reviseRight (Tree Red x b a))
+  where
+    l = left tree
+    blackl = isBlack l
+
diff --git a/src/lib/Curry/Module/SetRBT.curry b/src/lib/Curry/Module/SetRBT.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/SetRBT.curry
@@ -0,0 +1,75 @@
+----------------------------------------------------------------------------
+--- Library with an implementation of sets as red-black trees.
+--- <P>
+--- All the operations on sets are generic, i.e., one has to provide
+--- an explicit order predicate ("<CODE>cmp</CODE>" below) on elements.
+--- 
+--- @author Johannes Koj, Michael Hanus, Bernd Braßel
+--- @version May 2003
+----------------------------------------------------------------------------
+
+module SetRBT where
+
+import qualified RedBlackTree as RBT
+import Maybe (isJust)
+
+----------------------------------------------------------------------------
+-- the main interface:
+
+type SetRBT a = RBT.RedBlackTree a
+
+--- Returns an empty set, i.e., an empty red-black tree 
+--- augmented with an order predicate.
+
+emptySetRBT = RBT.empty (==) (==)
+
+--- Returns true if an element is contained in a (red-black tree) set.
+--- @param e - an element to be checked for containment
+--- @param s - a set (represented as a red-black tree)
+--- @return True if e is contained in s
+elemRBT :: a -> SetRBT a -> Bool
+elemRBT e = isJust . (RBT.lookup e)
+
+--- Inserts an element into a set if it is not already there.
+insertRBT :: a -> SetRBT a -> SetRBT a
+insertRBT = RBT.update 
+
+
+--- Inserts an element into a multiset.
+--- Thus, the same element can have several occurrences in the multiset.
+
+insertMultiRBT :: a -> SetRBT a -> SetRBT a
+insertMultiRBT e = RBT.setInsertEquivalence (==) . 
+                   RBT.update e . 
+                   RBT.setInsertEquivalence (\ _ _ -> False)
+
+--- delete an element from a set.
+--- Deletes only a single element from a multi set
+deleteRBT :: a -> SetRBT a -> SetRBT a
+deleteRBT = RBT.delete
+
+--- Transforms a (red-black tree) set into an ordered list of its elements.
+setRBT2list :: SetRBT a -> [a]
+setRBT2list = RBT.tree2list
+
+--- Computes the union of two (red-black tree) sets.
+--- This is done by inserting all elements of the first set into the
+--- second set. 
+unionRBT :: SetRBT a -> SetRBT a -> SetRBT a
+unionRBT s1 s2 = foldr insertRBT s2 (setRBT2list s1)
+
+--- Computes the intersection of two (red-black tree) sets.
+--- This is done by inserting all elements of the first set
+--- contained in the second set into a new set, which order
+--- is taken from the first set.
+intersectRBT :: SetRBT a -> SetRBT a -> SetRBT a
+intersectRBT s1 s2 = foldr insertRBT (RBT.newTreeLike s1)
+                          (filter (\e->elemRBT e s2) (setRBT2list s1))
+
+
+--- Generic sort based on insertion into red-black trees.
+--- The first argument is the order for the elements.
+
+sortRBT  :: (a->a->Bool) -> [a] -> [a]
+sortRBT = RBT.sort
+
diff --git a/src/lib/Curry/Module/Socket.curry b/src/lib/Curry/Module/Socket.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Socket.curry
@@ -0,0 +1,87 @@
+------------------------------------------------------------------------------
+--- Library to support network programming with sockets.
+--- In standard applications, the server side uses the operations
+--- <code>listenOn</code> and <code>socketAccept</code> to provide some service
+--- on a socket, and the client side uses the operation
+--- <code>connectToSocket</code> to request a service.
+---
+--- @author Michael Hanus
+--- @version May 2007
+------------------------------------------------------------------------------
+
+module Socket(Socket, listenOn, listenOnFresh, socketListen,
+              socketAccept, waitForSocketAccept, connectToSocket)
+ where
+
+import System
+import IO(Handle)
+
+--- The abstract type of sockets.
+data Socket
+
+---------------------------------------------------------------------
+-- Server side operations:
+
+--- Creates a server side socket bound to a given port number.
+listenOn :: Int -> IO Socket
+listenOn port = prim_listenOn $# port
+
+prim_listenOn :: Int -> IO Socket
+prim_listenOn external
+
+--- Creates a server side socket bound to a free port.
+--- The port number and the socket is returned.
+listenOnFresh :: IO (Int,Socket)
+listenOnFresh external
+
+
+--- Defines the maximum backlog queue of a port.
+socketListen :: Socket -> Int -> IO ()
+socketListen s length = (prim_socketListen $## s) $# length
+
+prim_socketListen :: Socket -> Int -> IO ()
+prim_socketListen external
+
+
+--- Returns a connection of a client to a socket.
+--- The connection is returned as a pair consisting of a string identifying
+--- the client (the format of this string is implementation-dependent)
+--- and a handle to a stream communication with the client.
+--- The handle is both readable and writable.
+socketAccept :: Socket -> IO (String,Handle)
+socketAccept s = prim_socketAccept $## s
+
+prim_socketAccept :: Socket -> IO (String,Handle)
+prim_socketAccept external
+
+
+--- Waits until a connection of a client to a socket is available.
+--- If no connection is available within the time limit, it returns Nothing,
+--- otherwise the connection is returned as a pair consisting
+--- of a string identifying the client
+--- (the format of this string is implementation-dependent)
+--- and a handle to a stream communication with the client.
+--- @param socket - a socket
+--- @param timeout - milliseconds to wait for input (< 0 : no time out)
+waitForSocketAccept :: Socket -> Int -> IO (Maybe (String,Handle))
+waitForSocketAccept s timeout = (prim_waitForSocketAccept $## s) $# timeout
+
+prim_waitForSocketAccept :: Socket -> Int -> IO (Maybe (String,Handle))
+prim_waitForSocketAccept external
+
+
+---------------------------------------------------------------------
+-- Client side operations:
+
+--- Creates a new connection to a Unix socket.
+--- @param host - the host name of the connection
+--- @param port - the port number of the connection
+--- @return the handle of the stream (connected to the port port@host)
+---         which is both readable and writable
+connectToSocket :: String -> Int -> IO Handle
+connectToSocket host port = (prim_connectToSocket $## host) $# port
+
+prim_connectToSocket :: String -> Int -> IO Handle
+prim_connectToSocket external
+
+---------------------------------------------------------------------
diff --git a/src/lib/Curry/Module/Socket.hs.include b/src/lib/Curry/Module/Socket.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Socket.hs.include
@@ -0,0 +1,62 @@
+[ForType "Socket" Nothing
+,ForFunction "prim_listenOn"
+,ForFunction "listenOnFresh"
+,ForFunction "prim_socketListen"
+,ForFunction "prim_socketAccept"
+,ForFunction "prim_waitForSocketAccept"
+,ForFunction "prim_connectToSocket"
+]
+
+import Network
+import Network.Socket 
+import Control.Concurrent
+import System.IO (Handle)
+
+type C_Socket = Prim Socket
+
+instance Read Socket where
+
+instance Generate Socket where
+  genFree  = error "no random sockets"
+  maxArity = error "no narrowing on sockets"
+
+instance ConvertCH C_Int PortID where
+  toCurry (PortNumber i) = toCurry (toInteger i)
+  fromCurry i = PortNumber (fromInteger (fromCurry i))
+
+prim_listenOn :: C_Int -> Result (C_IO C_Socket)
+prim_listenOn  = Curry.Module.Prelude.ioFunc1 listenOn 
+
+listenOnFresh :: Result (C_IO (T2 C_Int C_Socket))
+listenOnFresh  = Curry.Module.Prelude.ioFunc0 listenOnFreshPort
+
+listenOnFreshPort :: IO (PortID,Socket)
+listenOnFreshPort = do
+  s <- listenOn (PortNumber aNY_PORT)
+  p <- Network.socketPort s
+  Prelude.return (p,s)
+
+
+prim_socketListen :: C_Socket -> C_Int -> Result (C_IO T0)
+prim_socketListen  = Curry.Module.Prelude.ioFunc2 listen
+
+prim_socketAccept :: C_Socket -> Result (C_IO (T2 (List C_Char) C_Handle))
+prim_socketAccept  = 
+  ioFunc1 (\ s -> do {(h,s,_) <- Network.accept s; Prelude.return (s,One h)})
+
+prim_waitForSocketAccept :: C_Socket -> C_Int -> Result (C_IO (C_Maybe (T2 (List C_Char) C_Handle)))
+prim_waitForSocketAccept  = Curry.Module.Prelude.ioFunc2 wait
+
+wait :: Socket -> Int -> IO (Maybe (String,IOHandle))
+wait s t = do
+  mv <- newEmptyMVar
+  tacc <- forkIO (do {(h,s,_) <- Network.accept s; putMVar mv (Just (s,One h))})
+  ttim <- forkIO (do {threadDelay (t*1000); putMVar mv Nothing})
+  res <- takeMVar mv
+  maybe (killThread tacc) (\_ -> killThread ttim) res
+  Prelude.return res
+
+prim_connectToSocket :: List C_Char -> C_Int -> Result (C_IO C_Handle)
+prim_connectToSocket  = 
+  ioFunc2 (\ s i -> do {ct <- connectTo s i; Prelude.return (One ct)})
+
diff --git a/src/lib/Curry/Module/Sort.curry b/src/lib/Curry/Module/Sort.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Sort.curry
@@ -0,0 +1,121 @@
+------------------------------------------------------------------------------
+--- A collection of useful functions for sorting and comparing
+--- characters, strings, and lists.
+---
+--- @author Michael Hanus
+--- @version February 2004
+------------------------------------------------------------------------------
+
+module Sort(quickSort,mergeSort,
+            cmpChar, cmpList, cmpString,
+            leqChar, leqCharIgnoreCase,leqList,
+            leqString,leqStringIgnoreCase,leqLexGerman) where
+
+import Char
+
+--- Quicksort.
+quickSort :: (a -> a -> Bool) -> [a] -> [a]
+quickSort _   []     = []
+quickSort leq (x:xs) = let (l,r) = split x xs
+                        in quickSort leq l ++ (x:quickSort leq r)
+ where
+  split _ [] = ([],[])
+  split e (y:ys) | leq y e   = (y:l,r)
+                 | otherwise = (l,y:r)
+              where (l,r) = split e ys
+
+
+--- Bottom-up mergesort.
+mergeSort :: (a -> a -> Bool) -> [a] -> [a]
+mergeSort leq zs =  mergeLists (genRuns zs)
+ where
+  -- generate runs of length 2:
+  genRuns []               =  []
+  genRuns [x]              =  [[x]]
+  genRuns (x1:x2:xs) | leq x1 x2 =  [x1,x2] : genRuns xs
+                     | otherwise =  [x2,x1] : genRuns xs
+
+  -- merge the runs:
+  mergeLists []         =  []
+  mergeLists [x]        =  x
+  mergeLists (x1:x2:xs) =  mergeLists (merge leq x1 x2 : mergePairs xs)
+
+  mergePairs []         =  []
+  mergePairs [x]        =  [x]
+  mergePairs (x1:x2:xs) =  merge leq x1 x2 : mergePairs xs
+
+
+--- Merges two lists with respect to an ordering predicate.
+
+merge :: (a -> a -> Bool) -> [a] -> [a] -> [a]
+merge _   [] ys     = ys
+merge _   (x:xs) [] = x : xs
+merge leq (x:xs) (y:ys) | leq x y   = x : merge leq xs (y:ys)
+                        | otherwise = y : merge leq (x:xs) ys
+
+
+--------------------------------------------------------------------
+-- Comparing lists, characters and strings
+
+--- Less-or-equal on lists.
+leqList :: (a -> a -> Bool) -> [a] -> [a] -> Bool
+leqList _   []     _      = True
+leqList _   (_:_)  []     = False
+leqList leq (x:xs) (y:ys) | x == y    = leqList leq xs ys
+                          | otherwise = leq x y
+
+--- Comparison of lists.
+cmpList :: (a -> a -> Ordering) -> [a] -> [a] -> Ordering
+cmpList _   []     []     = EQ
+cmpList _   []     (_:_)  = LT
+cmpList _   (_:_)  []     = GT
+cmpList cmp (x:xs) (y:ys) | cmp x y == EQ = cmpList cmp xs ys
+                          | otherwise     = cmp x y
+
+--- Less-or-equal on characters.
+leqChar :: Char -> Char -> Bool
+leqChar c1 c2 = ord c1 <= ord c2
+
+--- Comparison of characters.
+cmpChar :: Char -> Char -> Ordering
+cmpChar c1 c2 = if c1==c2 then EQ else if ord c1 < ord c2 then LT else GT
+
+--- Less-or-equal on characters ignoring case considerations.
+leqCharIgnoreCase :: Char -> Char -> Bool
+leqCharIgnoreCase c1 c2 = ord (toUpper c1) <= ord (toUpper c2)
+
+--- Less-or-equal on strings.
+leqString :: String -> String -> Bool
+leqString = leqList leqChar
+
+--- Comparison of strings.
+cmpString :: String -> String -> Ordering
+cmpString = cmpList cmpChar
+
+--- Less-or-equal on strings ignoring case considerations.
+leqStringIgnoreCase :: String -> String -> Bool
+leqStringIgnoreCase = leqList leqCharIgnoreCase
+
+--- Lexicographical ordering on German strings.
+--- Thus, upper/lowercase are not distinguished and Umlauts are sorted
+--- as vocals.
+leqLexGerman :: String -> String -> Bool
+leqLexGerman []    _  = True
+leqLexGerman (_:_) [] = False
+leqLexGerman (x:xs) (y:ys) | x' == y'  = leqLexGerman xs ys
+                           | otherwise = x' < y'
+  where
+    x' = glex (ord x)
+    y' = glex (ord y)
+    -- map umlauts to vocals and make everything lowercase:
+    glex o | o >= ord 'A' && o <= ord 'Z'  =  o + (ord 'a' - ord 'A')
+           | o == 228  = ord 'a'
+           | o == 246  = ord 'o'
+           | o == 252  = ord 'u'
+           | o == 196  = ord 'a'
+           | o == 214  = ord 'o'
+           | o == 220  = ord 'u'
+           | o == 223  = ord 's'
+           | otherwise = o
+
+-- end module Sort
diff --git a/src/lib/Curry/Module/StyledText.curry b/src/lib/Curry/Module/StyledText.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/StyledText.curry
@@ -0,0 +1,221 @@
+module StyledText (
+
+  bold, underline, 
+  black, blue, cyan, green, magenta, red, white, yellow,
+  bgBlack, bgBlue, bgCyan, bgGreen, bgMagenta, bgRed, bgWhite, bgYellow,
+
+  ShowS, boldS, underlineS,
+  blackS, blueS, cyanS, greenS, magentaS, redS, whiteS, yellowS,
+  bgBlackS, bgBlueS, bgCyanS, bgGreenS, bgMagentaS, bgRedS, bgWhiteS, 
+  bgYellowS,
+
+  Doc, boldDoc, underlineDoc, 
+  blackDoc, blueDoc, cyanDoc, greenDoc, magentaDoc, redDoc, whiteDoc, 
+  yellowDoc,
+  bgBlackDoc, bgBlueDoc, bgCyanDoc, bgGreenDoc, bgMagentaDoc, bgRedDoc,
+  bgWhiteDoc, bgYellowDoc,
+
+  plainText, printStyledText {-setStyledText, appendStyledText,-} --styledHtml
+
+  ) where
+
+import Char
+import Pretty
+import AnsiCodes as Ansi
+-- import GUI
+--import HTML
+
+boldChar      = chr 5
+underlineChar = chr 6
+endChar       = chr 7
+blackChar     = chr 16
+blueChar      = chr 17
+cyanChar      = chr 18
+greenChar     = chr 19
+magentaChar   = chr 20
+redChar       = chr 21
+whiteChar     = chr 22
+yellowChar    = chr 23
+bgBlackChar   = chr 24
+bgBlueChar    = chr 25
+bgCyanChar    = chr 26
+bgGreenChar   = chr 27
+bgMagentaChar = chr 28
+bgRedChar     = chr 29
+bgWhiteChar   = chr 30
+bgYellowChar  = chr 31
+
+bold, underline, 
+ black, blue, cyan, green, magenta, red, white, yellow,
+ bgBlack, bgBlue, bgCyan, bgGreen, bgMagenta, bgRed, bgWhite, bgYellow
+ :: String -> String
+bold      = encl boldChar
+underline = encl underlineChar
+black     = encl blackChar
+blue      = encl blueChar
+cyan      = encl cyanChar
+green     = encl greenChar
+magenta   = encl magentaChar
+red       = encl redChar
+white     = encl whiteChar
+yellow    = encl yellowChar
+bgBlack   = encl bgBlackChar
+bgBlue    = encl bgBlueChar
+bgCyan    = encl bgCyanChar
+bgGreen   = encl bgGreenChar
+bgMagenta = encl bgMagentaChar
+bgRed     = encl bgRedChar
+bgWhite   = encl bgWhiteChar
+bgYellow  = encl bgYellowChar
+
+encl :: Char -> String -> String
+encl c s = c : s ++ [endChar]
+
+
+type ShowS = String -> String
+
+boldS, underlineS,
+ blackS, blueS, cyanS, greenS, magentaS, redS, whiteS, yellowS,
+ bgBlackS, bgBlueS, bgCyanS, bgGreenS, bgMagentaS, bgRedS, bgWhiteS, bgYellowS
+ :: ShowS -> ShowS
+boldS      = enclS boldChar
+underlineS = enclS underlineChar
+blackS     = enclS blackChar
+blueS      = enclS blueChar
+cyanS      = enclS cyanChar
+greenS     = enclS greenChar
+magentaS   = enclS magentaChar
+redS       = enclS redChar
+whiteS     = enclS whiteChar
+yellowS    = enclS yellowChar
+bgBlackS   = enclS bgBlackChar
+bgBlueS    = enclS bgBlueChar
+bgCyanS    = enclS bgCyanChar
+bgGreenS   = enclS bgGreenChar
+bgMagentaS = enclS bgMagentaChar
+bgRedS     = enclS bgRedChar
+bgWhiteS   = enclS bgWhiteChar
+bgYellowS  = enclS bgYellowChar
+
+enclS :: Char -> ShowS -> ShowS
+enclS c s = (c:) . s . (endChar:)
+
+
+boldDoc, underlineDoc, 
+ blackDoc, blueDoc, cyanDoc, greenDoc, magentaDoc, redDoc, whiteDoc, yellowDoc,
+ bgBlackDoc, bgBlueDoc, bgCyanDoc, bgGreenDoc, bgMagentaDoc, bgRedDoc
+ :: Doc -> Doc
+boldDoc      = enclDoc boldChar
+underlineDoc = enclDoc underlineChar
+blackDoc     = enclDoc blackChar
+blueDoc      = enclDoc blueChar
+cyanDoc      = enclDoc cyanChar
+greenDoc     = enclDoc greenChar
+magentaDoc   = enclDoc magentaChar
+redDoc       = enclDoc redChar
+whiteDoc     = enclDoc whiteChar
+yellowDoc    = enclDoc yellowChar
+bgBlackDoc   = enclDoc bgBlackChar
+bgBlueDoc    = enclDoc bgBlueChar
+bgCyanDoc    = enclDoc bgCyanChar
+bgGreenDoc   = enclDoc bgGreenChar
+bgMagentaDoc = enclDoc bgMagentaChar
+bgRedDoc     = enclDoc bgRedChar
+bgWhiteDoc   = enclDoc bgWhiteChar
+bgYellowDoc  = enclDoc bgYellowChar
+
+enclDoc :: Char -> Doc -> Doc
+enclDoc c = enclose (char c) (char endChar)
+
+
+plainText :: String -> String
+plainText = filter (not . special)
+
+special :: Char -> Bool
+special n = ord n `elem` ([5,6,7]++[16..31])
+
+
+interpret
+ :: [b] -> (a -> a -> a) -> (b -> b -> b) -> (b -> String -> a) -> [(b,b,b)]
+ -> String -> a
+interpret convs@(b:ul:cs) combine cst ast (t@(st,fg,bg):fs) s
+  | null ys   = f xs
+  | code == 5 = combine (f xs) $ -- bold
+                 interpret convs combine cst ast ((b,fg,bg):t:fs) (tail ys)
+  | code == 6 = combine (f xs) $ -- underline
+                 interpret convs combine cst ast ((ul,fg,bg):t:fs) (tail ys)
+  | code == 7 = combine (f xs) $ -- end
+                 interpret convs combine cst ast fs (tail ys)
+  | code < 24 = combine (f xs) $ -- foreground
+                 interpret convs combine cst ast ((st,g,bg):t:fs) (tail ys)
+  | otherwise = combine (f xs) $ -- background
+                 interpret convs combine cst ast ((st,fg,g):t:fs) (tail ys)
+ where
+  f = ast $ cst st (cst fg bg)
+  (xs,ys) = break special s
+  code = ord (head ys)
+  g = cs !! (code-16)
+
+
+printStyledText :: String -> IO ()
+printStyledText = putStrLn . toAnsiString
+
+toAnsiString :: String -> String
+toAnsiString
+  = interpret 
+     [Ansi.bold, Ansi.underline
+     ,Ansi.black, Ansi.blue, Ansi.cyan, Ansi.green, Ansi.magenta, Ansi.red
+     ,Ansi.white, Ansi.yellow
+     ,Ansi.bgBlack, Ansi.bgBlue, Ansi.bgCyan, Ansi.bgGreen, Ansi.bgMagenta
+     ,Ansi.bgRed, Ansi.bgWhite, Ansi.bgYellow]
+     (++) (.) id [(id,id,id)]
+
+
+-- setStyledText :: WidgetRef -> String -> GuiPort -> IO ()
+-- setStyledText wref s gp = do
+--   setValue wref "" gp
+--   appendStyledText wref s gp
+
+-- appendStyledText :: WidgetRef -> String -> GuiPort -> IO ()
+-- appendStyledText wref s gp
+--   = interpret styles (>>) (++) append [([],[],[])] s
+--  where
+--   append [] cs = appendValue wref cs gp
+--   append st@(_:_) cs = appendStyledValue wref cs st gp
+
+--   styles = [[Bold],[Underline]] ++ 
+--            map ((:[]) . Fg) colors ++ 
+--            map ((:[]) . Bg) colors
+
+--   colors = [Black,Blue,Turquoise,Green,Purple,Red,White,Gold]
+{-
+styledHtml :: String -> [HtmlExp]
+styledHtml = interpret styles (++) combine span [("","","")]
+ where
+  combine x y = x ++ " " ++ y
+  span style s
+    | all isSpace style = [htxt s]
+    | otherwise = [HtmlStruct "span" [("style",style)] [htxt s]]
+
+  styles = ["font-weight: bold;","text-decoration: underline;"]
+        ++ map (\c -> "color: " ++ c ++ ";") colors
+        ++ map (\c -> "background-color: " ++ c ++ ";") colors
+
+  colors = ["black","blue","cyan","green","magenta","red","white","yellow"]
+-}
+-- main = do
+--   printStyledText text
+--   writeFile "StyledText.html"
+--     (showHtmlPage (HtmlPage "StyledText" [] [styledHtml text]))
+--   runInitGUI "StyledText"
+--     (col [TextEdit [WRef ref, Width 40, Height 40]]) init
+--  where
+--   ref free
+--   init = setStyledText ref text
+--   text = unlines $ map (uncurry ($))
+--     [(bold,"bold"),(underline,"underline")
+--     ,(black,"black"),(blue,"blue"),(cyan,"cyan"),(green,"green")
+--     ,(magenta,"magenta"),(red,"red"),(white,"white"),(yellow,"yellow")
+--     ,(bgBlack,"bgBlack"),(bgBlue,"bgBlue"),(bgCyan,"bgCyan"),(bgGreen,"bgGreen")
+--     ,(bgMagenta,"bgMagenta"),(bgRed,"bgRed"),(bgWhite,"bgWhite")
+--     ,(bgYellow,"bgYellow")]
diff --git a/src/lib/Curry/Module/System.curry b/src/lib/Curry/Module/System.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/System.curry
@@ -0,0 +1,116 @@
+------------------------------------------------------------------------------
+--- Library to access parts of the system environment.
+---
+--- @author Michael Hanus, Bernd Brassel
+--- @version August 2007
+------------------------------------------------------------------------------
+
+module System(getCPUTime,getElapsedTime,
+              getArgs,getEnviron,setEnviron,unsetEnviron,
+              getHostname,getPID,getProgName,
+              system,exitWith,sleep) where
+
+import Global
+
+--- Returns the current cpu time of the process in milliseconds.
+
+getCPUTime :: IO Int
+getCPUTime external
+ 
+--- Returns the current elapsed time of the process in milliseconds.
+
+getElapsedTime :: IO Int
+getElapsedTime external
+ 
+--- Returns the list of the program's command line arguments.
+--- The program name is not included.
+
+getArgs :: IO [String]
+getArgs external
+ 
+--- Returns the value of an environment variable.
+--- The empty string is returned for undefined environment variables.
+
+getEnviron :: String -> IO String
+getEnviron evar = do
+  envs <- readGlobal environ
+  maybe (prim_getEnviron $## evar) return (lookup evar envs)
+  
+prim_getEnviron :: String -> IO String
+prim_getEnviron external
+ 
+--- internal state of environment variables set via setEnviron
+environ :: Global [(String,String)]
+environ = global [] Temporary
+
+--- Set an environment variable to a value.
+--- The new value will be passed to subsequent shell commands
+--- (see <code>system</code>) and visible to subsequent calls to
+--- <code>getEnviron</code> (but it is not visible in the environment
+--- of the process that started the program execution).
+
+setEnviron :: String -> String -> IO ()
+setEnviron evar val = do
+  envs <- readGlobal environ
+  writeGlobal environ ((evar,val) : filter ((/=evar) . fst) envs)
+ 
+--- Removes an environment variable that has been set by
+--- <code>setEnviron</code>.
+
+unsetEnviron :: String -> IO ()
+unsetEnviron evar = do
+  envs <- readGlobal environ
+  writeGlobal environ (filter ((/=evar) . fst) envs)
+ 
+--- Returns the hostname of the machine running this process.
+
+getHostname :: IO String
+getHostname external
+
+--- Returns the process identifier of the current Curry process.
+
+getPID :: IO Int
+getPID external
+
+
+--- Returns the name of the current program, i.e., the name of the
+--- main module currently executed.
+
+getProgName :: IO String
+getProgName external
+
+
+--- Executes a shell command and return with the exit code of the command.
+--- An exit status of zero means successful execution.
+
+system :: String -> IO Int
+system cmd = do
+   envs <- readGlobal environ
+   prim_system $## (concatMap set envs ++ cmd)
+ where
+   set (var,val) = "export "++var++"="++val++"; "
+
+prim_system :: String -> IO Int
+prim_system external
+
+
+--- Terminates the execution of the current Curry program
+--- and returns the exit code given by the argument.
+--- An exit code of zero means successful execution.
+
+exitWith :: Int -> IO _
+exitWith exitcode = prim_exitWith $# exitcode
+
+prim_exitWith :: Int -> IO _
+prim_exitWith external
+
+
+--- The evaluation of the action (sleep n) puts the Curry process
+--- asleep for n seconds.
+
+sleep :: Int -> IO ()
+sleep n = prim_sleep $# n
+
+prim_sleep :: Int -> IO ()
+prim_sleep external
+
diff --git a/src/lib/Curry/Module/System.hs.include b/src/lib/Curry/Module/System.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/System.hs.include
@@ -0,0 +1,68 @@
+[ForFunction "getCPUTime"
+,ForFunction "getElapsedTime"
+,ForFunction "getArgs"
+,ForFunction "prim_getEnviron"
+,ForFunction "getHostname"
+,ForFunction "getPID"
+,ForFunction "getProgName"
+,ForFunction "prim_system"
+,ForFunction "prim_sleep"
+,ForFunction "prim_exitWith"
+]
+
+import qualified System.Environment as SE
+import qualified System.CPUTime as SC
+import System.Cmd
+import System.Exit
+import qualified Network.BSD as NB
+import System.Posix.Process
+
+instance ConvertCH C_Int ExitCode where
+   toCurry ExitSuccess = toCurry (0::Integer)
+   toCurry (ExitFailure i) = toCurry i
+
+   fromCurry i = if hi Prelude.== 0 then ExitSuccess else ExitFailure hi
+     where hi = fromCurry i
+
+getCPUTime :: Result (C_IO C_Int)
+getCPUTime = ioFunc0 (SC.getCPUTime Prelude.>>= Prelude.return . (`div` 1000000000))
+
+getElapsedTime :: Result (C_IO C_Int)
+getElapsedTime = error "getElapsedTime not provided"
+
+getArgs :: Result (C_IO (List (List C_Char)))
+getArgs = ioFunc0 SE.getArgs
+
+prim_getEnviron :: (List C_Char) -> Result (C_IO (List C_Char))
+prim_getEnviron = 
+  ioFunc1 (\s -> do
+             env <- SE.getEnvironment
+             case Prelude.lookup s env of
+              Nothing -> Prelude.return ""
+              Just v  -> Prelude.return v)
+
+getHostname :: Result (C_IO (List C_Char))
+getHostname = ioFunc0 NB.getHostName
+
+getPID :: Result (C_IO C_Int)
+getPID = ioFunc0 (do
+                    pid <- getProcessID 
+                    Prelude.return (toInteger pid))
+
+getProgName :: Result (C_IO (List C_Char))
+getProgName = ioFunc0 (Curry.RunTimeSystem.getProgName)
+  -- conform with haskell would be: SE.getProgName
+
+prim_system :: (List C_Char) -> Result (C_IO C_Int)
+prim_system = ioFunc1 system
+
+prim_sleep :: C_Int -> Result (C_IO T0)
+prim_sleep = ioFunc1 (\ t -> do
+                          system ("sleep "++Prelude.show (t::Integer)) 
+                          Prelude.return ())
+
+prim_exitWith :: Curry a => C_Int -> Result (C_IO a)
+prim_exitWith e _ = C_IO (\ _ -> do
+  ex <- exitWith (fromCurry e) 
+  Prelude.return (IOVal ex))
+
diff --git a/src/lib/Curry/Module/TableRBT.curry b/src/lib/Curry/Module/TableRBT.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/TableRBT.curry
@@ -0,0 +1,51 @@
+---------------------------------------------------------------------------
+--- Library with an implementation of tables as red-black trees:
+--- <P>
+--- A table is a finite mapping from keys to values.
+--- All the operations on tables are generic, i.e., one has to provide
+--- an explicit order predicate ("<CODE>cmp</CODE>" below) on elements.
+--- Each inner node in the red-black tree contains a key-value association.
+--- 
+--- @author Johannes Koj, Michael Hanus, Bernd Braßel
+--- @version March 2005
+----------------------------------------------------------------------------
+
+module TableRBT where
+
+import qualified RedBlackTree as RBT
+
+----------------------------------------------------------------------------
+-- the main interface:
+
+type TableRBT key a = RBT.RedBlackTree (key,a) 
+
+--- Returns an empty table, i.e., an empty red-black tree.
+emptyTableRBT :: (a -> a -> Bool) -> TableRBT a _ 
+emptyTableRBT lt = RBT.empty (\ x y -> fst x==fst y) 
+                             (\ x y -> fst x==fst y)
+                             (\ x y -> lt (fst x) (fst y))
+
+--- tests whether a given table is empty
+isEmptyTable :: TableRBT _ _ -> Bool
+isEmptyTable = RBT.isEmpty
+
+--- Looks up an entry in a table.
+--- @param k - a key under which a value is stored
+--- @param t - a table (represented as a red-black tree)
+--- @return (Just v) if v is the value stored with key k,
+---         otherwise Nothing is returned.
+lookupRBT :: key -> TableRBT key a -> Maybe a
+lookupRBT k = maybe Nothing (Just . snd) . RBT.lookup (k,failed)
+
+--- Inserts or updates an element in a table.
+updateRBT :: key -> a -> TableRBT key a -> TableRBT key a
+updateRBT k e = RBT.update (k,e)
+
+--- Transforms the nodes of red-black tree into a list.
+tableRBT2list :: TableRBT key a -> [(key,a)]
+tableRBT2list = RBT.tree2list
+
+deleteRBT :: key -> TableRBT key a -> TableRBT key a
+deleteRBT key = RBT.delete (key,failed)
+
+-- end of TableRBT
diff --git a/src/lib/Curry/Module/Time.curry b/src/lib/Curry/Module/Time.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Time.curry
@@ -0,0 +1,180 @@
+------------------------------------------------------------------------------
+--- Library for handling date and time information.
+---
+--- @author Michael Hanus
+--- @version April 2007
+------------------------------------------------------------------------------
+
+module Time(ClockTime,
+            CalendarTime(..),ctYear,ctMonth,ctDay,ctHour,ctMin,ctSec,ctTZ,
+            getClockTime,getLocalTime,toUTCTime,toClockTime,toCalendarTime,
+            clockTimeToInt,calendarTimeToString,toDayString,toTimeString,
+            addSeconds,addMinutes,addHours,addDays,addMonths,addYears,
+            daysOfMonth,validDate,compareCalendarTime,compareClockTime,
+            compareDate) where
+
+
+--- ClockTime represents a clock time in some internal representation.
+data ClockTime = CTime Int
+
+--- A calendar time is presented in the following form:
+--- (CalendarTime year month day hour minute second timezone)
+--- where timezone is an integer representing the timezone as a difference
+--- to UTC time in seconds.
+data CalendarTime = CalendarTime Int Int Int Int Int Int Int
+
+--- The year of a calendar time.
+ctYear :: CalendarTime -> Int
+ctYear (CalendarTime y _ _ _ _ _ _) = y
+
+--- The month of a calendar time.
+ctMonth :: CalendarTime -> Int
+ctMonth (CalendarTime _ m _ _ _ _ _) = m
+
+--- The day of a calendar time.
+ctDay :: CalendarTime -> Int
+ctDay (CalendarTime _ _ d _ _ _ _) = d
+
+--- The hour of a calendar time.
+ctHour :: CalendarTime -> Int
+ctHour (CalendarTime _ _ _ h _ _ _) = h
+
+--- The minute of a calendar time.
+ctMin :: CalendarTime -> Int
+ctMin (CalendarTime _ _ _ _ m _ _) = m
+
+--- The second of a calendar time.
+ctSec :: CalendarTime -> Int
+ctSec (CalendarTime _ _ _ _ _ s _) = s
+
+--- The time zone of a calendar time. The value of the
+--- time zone is the difference to UTC time in seconds.
+ctTZ :: CalendarTime -> Int
+ctTZ (CalendarTime _ _ _ _ _ _ tz) = tz
+
+
+--- Returns the current clock time.
+getClockTime :: IO ClockTime
+getClockTime external
+
+--- Returns the local calendar time.
+getLocalTime :: IO CalendarTime
+getLocalTime = do
+  ctime <- getClockTime
+  toCalendarTime ctime
+
+--- Transforms a clock time into a unique integer.
+--- It is ensured that clock times that differs in at least one second
+--- are mapped into different integers.
+clockTimeToInt :: ClockTime -> Int
+clockTimeToInt (CTime i) = i
+
+--- Transforms a clock time into a calendar time according to the local time
+--- (if possible). Since the result depends on the local environment,
+--- it is an I/O operation.
+toCalendarTime :: ClockTime -> IO CalendarTime
+toCalendarTime ctime = prim_toCalendarTime $## ctime
+
+prim_toCalendarTime :: ClockTime -> IO CalendarTime
+prim_toCalendarTime external
+
+--- Transforms a clock time into a standard UTC calendar time.
+--- Thus, this operationa is independent on the local time.
+toUTCTime :: ClockTime -> CalendarTime
+toUTCTime ctime = prim_toUTCTime $## ctime
+
+prim_toUTCTime :: ClockTime -> CalendarTime
+prim_toUTCTime external
+
+--- Transforms a calendar time (interpreted as UTC time) into a clock time.
+toClockTime :: CalendarTime -> ClockTime
+toClockTime d = prim_toClockTime $## d
+
+prim_toClockTime :: CalendarTime -> ClockTime
+prim_toClockTime external
+
+--- Transforms a calendar time into a readable form.
+calendarTimeToString :: CalendarTime -> String
+calendarTimeToString ctime@(CalendarTime y mo d _ _ _ _) =
+    shortMonths!!(mo-1) ++ " " ++ show d ++ " " ++
+    toTimeString ctime ++ " " ++ show y
+  where shortMonths = ["Jan","Feb","Mar","Apr","May","Jun",
+                       "Jul","Aug","Sep","Oct","Nov","Dec"]
+
+--- Transforms a calendar time into a string containing the day, e.g.,
+--- "September 23, 2006".
+toDayString :: CalendarTime -> String
+toDayString (CalendarTime y mo d _ _ _ _) =
+    longMonths!!(mo-1) ++ " " ++ show d ++ ", " ++ show y
+  where longMonths = ["January","February","March","April","May","June","July",
+                      "August","September","October","November","December"]
+
+--- Transforms a calendar time into a string containing the time.
+toTimeString :: CalendarTime -> String
+toTimeString (CalendarTime _ _ _ h mi s _) =
+   digit2 h ++":"++ digit2 mi ++":"++ digit2 s
+  where digit2 n = if n<10 then ['0',chr(ord '0' + n)]
+                           else show n
+
+--- Adds seconds to a given time.
+addSeconds :: Int -> ClockTime -> ClockTime
+addSeconds n (CTime ctime) = CTime (ctime + n)
+
+--- Adds minutes to a given time.
+addMinutes :: Int -> ClockTime -> ClockTime
+addMinutes n (CTime ctime) = CTime (ctime + (n*60))
+
+--- Adds hours to a given time.
+addHours :: Int -> ClockTime -> ClockTime
+addHours n (CTime ctime) = CTime (ctime + (n*3600))
+
+--- Adds days to a given time.
+addDays :: Int -> ClockTime -> ClockTime
+addDays n (CTime ctime) = CTime (ctime + (n*86400))
+
+--- Adds months to a given time.
+addMonths :: Int -> ClockTime -> ClockTime
+addMonths n ctime =
+ let CalendarTime y mo d h mi s tz = toUTCTime ctime
+     nmo = (mo-1+n) `mod` 12 + 1
+ in
+ if nmo>0
+ then addYears ((mo-1+n) `div` 12)
+               (toClockTime (CalendarTime y nmo d h mi s tz))
+ else addYears ((mo-1+n) `div` 12 - 1)
+               (toClockTime (CalendarTime y (nmo+12) d h mi s tz))
+
+--- Adds years to a given time.
+addYears :: Int -> ClockTime -> ClockTime
+addYears n ctime = if n==0 then ctime else
+  let CalendarTime y mo d h mi s tz = toUTCTime ctime
+   in toClockTime (CalendarTime (y+n) mo d h mi s tz)
+
+--- Gets the days of a month in a year.
+daysOfMonth :: Int -> Int -> Int
+daysOfMonth mo yr =
+  if mo/=2 
+  then [31,28,31,30,31,30,31,31,30,31,30,31] !! (mo-1)
+  else if yr `mod` 4 == 0 && (yr `mod` 100 /= 0 || yr `mod` 400 == 0)
+       then 29
+       else 28
+
+--- Is a date consisting of year/month/day valid?
+validDate :: Int -> Int -> Int -> Bool
+validDate y m d = m > 0 && m < 13 && d > 0 && d <= daysOfMonth m y
+
+--- Compares two dates (don't use it, just for backward compatibility!).
+compareDate :: CalendarTime -> CalendarTime -> Ordering
+compareDate = compareCalendarTime
+
+--- Compares two calendar times.
+compareCalendarTime :: CalendarTime -> CalendarTime -> Ordering
+compareCalendarTime ct1 ct2 =
+  compareClockTime (toClockTime ct1) (toClockTime ct2)
+
+--- Compares two clock times.
+compareClockTime :: ClockTime -> ClockTime -> Ordering
+compareClockTime (CTime time1) (CTime time2)
+ | time1<time2 = LT
+ | time1>time2 = GT
+ | otherwise   = EQ
diff --git a/src/lib/Curry/Module/Time.hs.include b/src/lib/Curry/Module/Time.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Time.hs.include
@@ -0,0 +1,43 @@
+[ForFunction "getClockTime"]
+
+import System.Time hiding (getClockTime)
+import qualified System.Time (getClockTime) 
+import Ix
+
+instance ConvertCH C_ClockTime ClockTime where
+  fromCurry (C_CTime i) = TOD (fromCurry i) 0
+  toCurry (TOD i _) = C_CTime (toCurry i)
+
+instance ConvertCH C_CalendarTime CalendarTime where
+  fromCurry (C_CalendarTime y m d h min s tz ) = 
+             CalendarTime (fromCurry y) 
+                          (toEnum (fromCurry m-1))
+                          (fromCurry d)
+                          (fromCurry h)
+                          (fromCurry min)
+                          (fromCurry s)
+                          0 undefined undefined undefined
+                          (fromCurry tz)
+                          undefined
+           
+  toCurry (CalendarTime y m d h min s _ _ _ _ tz _) = 
+          C_CalendarTime (toCurry y) 
+                         (toCurry (fromEnum m)+1) 
+                         (toCurry d)
+                         (toCurry h)
+                         (toCurry min)
+                         (toCurry s)
+                         (toCurry tz)
+
+
+getClockTime :: Result (C_IO C_ClockTime)
+getClockTime = ioFunc0 (System.Time.getClockTime)
+
+prim_toCalendarTime :: C_ClockTime -> Result (C_IO C_CalendarTime)
+prim_toCalendarTime = ioFunc1 toCalendarTime
+
+prim_toUTCTime :: C_ClockTime -> Result C_CalendarTime
+prim_toUTCTime = extFunc1 toUTCTime
+
+prim_toClockTime :: C_CalendarTime -> Result C_ClockTime
+prim_toClockTime x _ = toCurry (toClockTime (fromCurry x))
diff --git a/src/lib/Curry/Module/Traversal.curry b/src/lib/Curry/Module/Traversal.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Traversal.curry
@@ -0,0 +1,155 @@
+---------------------------------------------------------------------------
+--- Library to support lightweight generic traversals
+--- through tree-structured data.
+--- See <a href="http://www-ps.informatik.uni-kiel.de/~sebf/projects/traversal.html">here</a>
+--- for a description of the library.
+---
+--- @author Sebastian Fischer
+--- @version February 2008
+---------------------------------------------------------------------------
+
+module Traversal (
+
+  Traversable, noChildren,
+
+  children, replaceChildren, mapChildren,
+
+  family, childFamilies, mapFamily, mapChildFamilies,
+
+  evalFamily, evalChildFamilies, fold, foldChildren,
+
+  replaceChildrenIO, mapChildrenIO, mapFamilyIO, mapChildFamiliesIO,
+
+  evalFamilyIO, evalChildFamiliesIO
+
+  ) where
+
+--- A datatype is <code>Traversable</code> if it defines a function
+--- that can decompose a value into a list of children of the same type
+--- and recombine new children to a new value of the original type. 
+---
+type Traversable a b = a -> ([b], [b] -> a)
+
+--- Traversal function for constructors without children.
+---
+noChildren :: Traversable _ _
+noChildren x = ([], const x)
+
+--- Yields the children of a value.
+---
+children :: Traversable a b -> a -> [b]
+children tr = fst . tr
+
+--- Replaces the children of a value.
+--- 
+replaceChildren :: Traversable a b -> a -> [b] -> a
+replaceChildren tr = snd . tr
+
+--- Applies the given function to each child of a value.
+---
+mapChildren :: Traversable a b -> (b -> b) -> a -> a
+mapChildren tr f x = replaceChildren tr x (map f (children tr x))
+
+--- Computes a list of the given value, its children, those children, etc.
+---
+family :: Traversable a a -> a -> [a]
+family tr x = familyFL tr x []
+
+--- Computes a list of family members of the children of a value.
+--- The value and its children can have different types.
+---
+childFamilies :: Traversable a b -> Traversable b b -> a -> [b]
+childFamilies tra trb x = childFamiliesFL tra trb x [] 
+
+--- Applies the given function to each member of the family of a value.
+--- Proceeds bottom-up.
+---
+mapFamily :: Traversable a a -> (a -> a) -> a -> a
+mapFamily tr f = f . mapChildFamilies tr tr f
+
+--- Applies the given function to each member of the families of the children
+--- of a value. The value and its children can have different types.
+--- Proceeds bottom-up.
+---
+mapChildFamilies :: Traversable a b -> Traversable b b -> (b -> b) -> a -> a
+mapChildFamilies tra trb = mapChildren tra . mapFamily trb
+
+--- Applies the given function to each member of the family of a value 
+--- as long as possible. On each member of the family of the result the given
+--- function will yield <code>Nothing</code>.
+--- Proceeds bottom-up.
+---
+evalFamily :: Traversable a a -> (a -> Maybe a) -> a -> a
+evalFamily tr f = mapFamily tr g
+ where g x = maybe x (mapFamily tr g) (f x)
+
+--- Applies the given function to each member of the families of the children
+--- of a value as long as possible.
+--- Similar to 'evalFamily'.
+---
+evalChildFamilies :: Traversable a b -> Traversable b b
+                  -> (b -> Maybe b) -> a -> a
+evalChildFamilies tra trb = mapChildren tra . evalFamily trb
+
+--- Implements a traversal similar to a fold with possible default cases.
+---
+fold :: Traversable a a -> (a -> [r] -> r) -> a -> r
+fold tr f = foldChildren tr tr f f
+
+--- Fold the children and combine the results.
+---
+foldChildren :: Traversable a b -> Traversable b b
+             -> (a -> [rb] -> ra) -> (b -> [rb] -> rb) -> a -> ra
+foldChildren tra trb f g a = f a (map (fold trb g) (children tra a))
+
+--- IO version of replaceChildren
+---
+replaceChildrenIO :: Traversable a b -> a -> IO [b] -> IO a
+replaceChildrenIO tr = liftIO . replaceChildren tr
+
+--- IO version of mapChildren
+---
+mapChildrenIO :: Traversable a b -> (b -> IO b) -> a -> IO a
+mapChildrenIO tr f a = replaceChildrenIO tr a (mapIO f (children tr a))
+
+--- IO version of mapFamily
+---
+mapFamilyIO :: Traversable a a -> (a -> IO a) -> a -> IO a
+mapFamilyIO tr f a = mapChildFamiliesIO tr tr f a >>= f
+
+--- IO version of mapChildFamilies
+---
+mapChildFamiliesIO :: Traversable a b -> Traversable b b
+                   -> (b -> IO b) -> a -> IO a
+mapChildFamiliesIO tra trb = mapChildrenIO tra . mapFamilyIO trb
+
+--- IO version of evalFamily
+---
+evalFamilyIO :: Traversable a a -> (a -> IO (Maybe a)) -> a -> IO a
+evalFamilyIO tr f = mapFamilyIO tr g
+ where g a = f a >>= maybe (return a) (mapFamilyIO tr g)
+
+--- IO version of evalChildFamilies
+---
+evalChildFamiliesIO :: Traversable a b -> Traversable b b
+                    -> (b -> IO (Maybe b)) -> a -> IO a
+evalChildFamiliesIO tra trb = mapChildrenIO tra . evalFamilyIO trb
+
+
+-- implementation of 'family' with functional lists for efficiency reasons
+
+type FunList a = [a] -> [a]
+
+concatFL :: [FunList a] -> FunList a
+concatFL [] ys = ys
+concatFL (x:xs) ys = x (concatFL xs ys)
+
+familyFL :: Traversable a a -> a -> FunList a
+familyFL tr x xs = x : childFamiliesFL tr tr x xs
+
+childFamiliesFL :: Traversable a b -> Traversable b b -> a -> FunList b
+childFamiliesFL tra trb x xs = concatFL (map (familyFL trb) (children tra x)) xs
+
+liftIO :: (a -> b) -> IO a -> IO b
+liftIO f ioa = ioa >>= return . f
+
diff --git a/src/lib/Curry/Module/Unsafe.curry b/src/lib/Curry/Module/Unsafe.curry
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Unsafe.curry
@@ -0,0 +1,181 @@
+------------------------------------------------------------------------------
+--- Library containing unsafe operations.
+--- These operations should be carefully used (e.g., for testing or debugging).
+--- These operations should not be used in application programs!
+---
+--- @author Michael Hanus
+--- @version April 2005
+------------------------------------------------------------------------------
+
+module Unsafe (unsafePerformIO,trace,spawnConstraint,isVar,identicalVar,
+              showAnyTerm,showAnyQTerm,showAnyExpression,showAnyQExpression,
+              readsAnyUnqualifiedTerm,readAnyUnqualifiedTerm,readsAnyQTerm,
+              readAnyQTerm,generateChoice,
+              OrRef,try,orsWithOrRef,nrOfChoices
+             )
+ where
+
+import Char(isSpace)
+import Meta
+
+--- Performs and hides an I/O action in a computation (use with care!).
+unsafePerformIO :: IO a -> a
+unsafePerformIO act = prim_unsafePerformIO $# act
+
+prim_unsafePerformIO :: IO a -> a
+prim_unsafePerformIO external
+
+--- Prints the first argument as a side effect and behaves as identity on the
+--- second argument.
+trace :: String -> a -> a
+trace s x = unsafePerformIO (putStr s >> return x)
+
+--- Spawns a constraint and returns the second argument.
+--- This function can be considered as defined by
+--- "<code>spawnConstraint c x | c = x</code>".
+--- However, the evaluation of the constraint and the right-hand side
+--- are performed concurrently, i.e., a suspension of the constraint
+--- does not imply a blocking of the right-hand side and the
+--- right-hand side might be evaluated before the constraint is successfully
+--- solved.
+--- Thus, a computation might return a result even if some of the
+--- spawned constraints are suspended (use the PAKCS/Curry2Prolog option
+--- "<code>+suspend</code>" to show such suspended goals).
+spawnConstraint :: Success -> a -> a
+spawnConstraint external
+
+--- Tests whether the first argument evaluates to a currently unbound
+--- variable (use with care!).
+isVar :: _ -> Bool
+isVar v = unsafePerformIO 
+            (isFree v >>= return . either (const True) (const False))
+
+prim_isVar :: _ -> Bool
+prim_isVar external
+
+
+--- Tests whether both arguments evaluate to the identical currently unbound
+--- variable (use with care!).
+--- For instance, <code>identicalVar (id x) (fst (x,1))</code> evaluates to
+--- <code>True</code> whereas <code>identicalVar x y</code> and
+--- <code>let x=1 in identicalVar x x</code> evaluate to <code>False</code>
+identicalVar :: a -> a -> Bool
+identicalVar x y = (prim_identicalVar $! x) $! y
+
+--- <code>let x=1 in identicalVar x x</code> evaluate to <code>False</code>
+prim_identicalVar :: a -> a -> Bool
+prim_identicalVar external
+
+
+--- Transforms the normal form of a term into a string representation
+--- in standard prefix notation.
+--- Thus, showAnyTerm evaluates its argument to normal form.
+--- This function is similar to the function <code>ReadShowTerm.showTerm</code>
+--- but it also transforms logic variables into a string representation
+--- that can be read back by <code>Unsafe.read(s)AnyUnqualifiedTerm</code>.
+--- Thus, the result depends on the evaluation and binding status of
+--- logic variables so that it should be used with care!
+showAnyTerm :: _ -> String
+showAnyTerm x = prim_showAnyTerm $!! x
+
+prim_showAnyTerm :: _ -> String
+prim_showAnyTerm external
+
+--- Transforms the normal form of a term into a string representation
+--- in standard prefix notation.
+--- Thus, showAnyQTerm evaluates its argument to normal form.
+--- This function is similar to the function <code>ReadShowTerm.showQTerm</code>
+--- but it also transforms logic variables into a string representation
+--- that can be read back by <code>Unsafe.read(s)AnyQTerm</code>.
+--- Thus, the result depends on the evaluation and binding status of
+--- logic variables so that it should be used with care!
+showAnyQTerm :: _ -> String
+showAnyQTerm x = prim_showAnyQTerm $!! x
+
+prim_showAnyQTerm :: _ -> String
+prim_showAnyQTerm external
+
+
+--- Transform a string containing a term in standard prefix notation
+--- without module qualifiers into the corresponding data term.
+--- The string might contain logical variable encodings produced by showAnyTerm.
+--- In case of a successful parse, the result is a one element list
+--- containing a pair of the data term and the remaining unparsed string.
+
+readsAnyUnqualifiedTerm :: [String] -> String -> [(_,String)]
+readsAnyUnqualifiedTerm [] _ =
+  error "ReadShowTerm.readsAnyUnqualifiedTerm: list of module prefixes is empty"
+readsAnyUnqualifiedTerm (prefix:prefixes) s =
+  readsAnyUnqualifiedTermWithPrefixes (prefix:prefixes) s
+
+readsAnyUnqualifiedTermWithPrefixes :: [String] -> String -> [(_,String)]
+readsAnyUnqualifiedTermWithPrefixes prefixes s = 
+  (prim_readsAnyUnqualifiedTerm $## prefixes) $## s
+
+prim_readsAnyUnqualifiedTerm :: [String] -> String -> [(_,String)]
+prim_readsAnyUnqualifiedTerm external
+
+
+--- Transforms a string containing a term in standard prefix notation
+--- without module qualifiers into the corresponding data term.
+--- The string might contain logical variable encodings produced by showAnyTerm.
+
+readAnyUnqualifiedTerm :: [String] -> String -> _
+readAnyUnqualifiedTerm prefixes s = case result of
+  [(term,tail)]
+     -> if all isSpace tail then term
+        else error ("Unsafe.readAnyUnqualifiedTerm: no parse, unmatched string after term: "++tail)
+  [] ->  error "Unsafe.readAnyUnqualifiedTerm: no parse"
+  _  ->  error "Unsafe.readAnyUnqualifiedTerm: ambiguous parse"
+ where result = readsAnyUnqualifiedTerm prefixes s
+
+--- Transforms a string containing a term in standard prefix notation
+--- with qualified constructor names into the corresponding data term.
+--- The string might contain logical variable encodings produced by showAnyQTerm.
+--- In case of a successful parse, the result is a one element list
+--- containing a pair of the data term and the remaining unparsed string.
+
+readsAnyQTerm :: String -> [(_,String)]
+readsAnyQTerm s = prim_readsAnyQTerm $## s
+
+prim_readsAnyQTerm :: String -> [(_,String)]
+prim_readsAnyQTerm external
+
+--- Transforms a string containing a term in standard prefix notation
+--- with qualified constructor names into the corresponding data term.
+--- The string might contain logical variable encodings produced by showAnyQTerm.
+
+readAnyQTerm :: String -> _
+readAnyQTerm s = case result of
+  [(term,tail)] -> if all isSpace tail then term
+                   else error "Unsafe.readAnyQTerm: no parse"
+  [] ->  error "Unsafe.readAnyQTerm: no parse"
+  _  ->  error "Unsafe.readAnyQTerm: ambiguous parse"
+ where result = readsAnyQTerm s
+
+
+--- Transforms any expression (even not in normal form) into a string representation
+--- in standard prefix notation without module qualifiers.
+--- The result depends on the evaluation and binding status of
+--- logic variables so that it should be used with care!
+showAnyExpression :: _ -> String
+showAnyExpression external
+
+--- Transforms any expression (even not in normal form) into a string representation
+--- in standard prefix notation with module qualifiers.
+--- The result depends on the evaluation and binding status of
+--- logic variables so that it should be used with care!
+showAnyQExpression :: _ -> String
+showAnyQExpression external
+
+try :: a -> Either a (OrRef,[a])
+try external
+
+orsWithOrRef :: OrRef -> [a] -> a
+orsWithOrRef external
+
+generateChoice :: [a] -> a
+generateChoice external
+
+nrOfChoices :: IO Int
+nrOfChoices external
diff --git a/src/lib/Curry/Module/Unsafe.hs.include b/src/lib/Curry/Module/Unsafe.hs.include
new file mode 100644
--- /dev/null
+++ b/src/lib/Curry/Module/Unsafe.hs.include
@@ -0,0 +1,118 @@
+[ForFunction "prim_unsafePerformIO"
+,ForFunction "spawnConstraint"
+,ForFunction "prim_isVar"
+,ForFunction "prim_identicalVar"
+,ForFunction "prim_showAnyTerm"
+,ForFunction "prim_showAnyQTerm"
+,ForFunction "prim_readsAnyUnqualifiedTerm"
+,ForFunction "prim_readsAnyQTerm"
+,ForFunction "showAnyExpression"
+,ForFunction "showAnyQExpression"
+]
+
+import System.IO.Unsafe 
+import Data.IORef
+
+prim_isVar :: Curry a => a -> Result C_Bool
+prim_isVar x _ = case consKind x of
+  Branching -> toCurry (isGenerator (orRef x))
+  _         -> C_False
+
+prim_unsafePerformIO :: Curry a => C_IO a -> Result a
+prim_unsafePerformIO (C_IO action) st = unsafe (unsafePerformIO (action st)) st
+ 
+
+unsafe :: Curry a => IOVal a -> Result a
+unsafe (IOVal v)        _  = v
+unsafe (IOValFail e)    _  = Curry.RunTimeSystem.failed e
+unsafe (IOValOr r bs)   st = mapOr (\ x -> unsafe (unsafePerformIO x)) r bs st
+{-
+-- the main point about unsafe:  the value of suspensions has to be stored.
+unsafe (IOValSusp _ susp) = let sRef = nextSuspRef () in
+  suspend False  (saveSuspValue sRef (const (tra sRef "cont" unsafe)) 
+                                (\st -> tra sRef "" (unsafePerformIO (susp (Just st)))))
+
+-- Sometimes we have to make sure that suspensions are not evaluated twice.
+-- Most notably this is true for suspended unsafely performed io actions .
+-- This function saves its result in the store and retrieves it whenever 
+-- called. Only when there has been no value stored yet, the given suspension 
+-- is called with the store.
+-- Saving suspensions values this way is a bit complicated.
+-- First, look if suspension already lifted from somewhere else. 
+--   if so, the result has already been stored
+--   if not, test if suspension can be lifted with given store
+--             if so, call cont and save result in store (shared!)
+--             if not, test if suspension did at least something (test sref)
+--                        if so, recursive call with new suspension
+--                        if not, suspend with given sRef "done Nothing"
+saveSuspValue :: (Curry a,Curry b) => 
+             FreeVarRef -> (State -> a -> b) -> (Store -> a) -> Store -> b
+saveSuspValue sRef cont susp store = 
+  trace "saveSuspValue " $
+  case fromStore store sRef of
+     Nothing -> trace "saveSusp: Nothing" $ let x = susp store in
+       case consKind x of
+        Suspended -> if suspRef x then saveSuspValue sRef cont (suspCont x) store 
+                                  else suspend False (saveSuspValue sRef cont (suspCont x))
+        _ -> tr "saveSusp: not suspended" $ let res = cont (Just store) x in
+          branching (nextOrRef ())
+                [(\st -> Modified (addToStore st sRef res),trace "saveSusp: res" res)]
+     Just v -> trace "saveSusp: Just" trV v v
+  where
+    tr = tra sRef
+    trV x =  case consKind x of
+       Branching -> case branches x of
+                     [(_,b)] -> trV b
+                     bs -> trace $ "Branch length " ++ (show $ length bs)
+       ck -> tr (show ck)
+
+-}
+
+prim_identicalVar :: Curry a => a  -> a -> Result C_Bool
+prim_identicalVar x y _ = case (consKind x,consKind y) of
+  (Branching,Branching) -> let rx = orRef x
+                               ry = orRef y in
+                           if isGenerator rx && isGenerator ry
+                           then toCurry (deref rx Prelude.== deref ry)
+                           else C_False
+  _                     -> C_False
+
+
+prim_showAnyTerm t _ = toCurry (show t)
+
+prim_showAnyQTerm :: Curry a => a -> Result C_String
+prim_showAnyQTerm x _ = toCurry (showQ 0 x "")
+
+prim_readsAnyUnqualifiedTerm = error "ExternalFunctionsUnsafe.prim_readsAnyUnqualifiedTerm"
+
+prim_readsAnyQTerm = error "ExternalFunctionsUnsafe.prim_readsAnyQTerm"
+
+showAnyExpression = error "ExternalFunctionsUnsafe.prim_showAnyExpression"
+
+
+showAnyQExpression = error "ExternalFunctionsUnsafe.prim_showAnyQExpression"
+
+--spawnConstraint :: Curry a => C_Success -> a -> a
+spawnConstraint _ c x = undefined 
+
+try :: Curry a => a -> Result (C_Either a (T2 C_OrRef (List a)))
+try x _ = case consKind x of
+          Val       -> C_Left x
+          Branching -> C_Right (T2 (C_OrRef (orRef x)) 
+                                   (fromHaskellList (branches x)))
+          c -> error ("try: consKind is "++show c)
+
+orsWithOrRef :: Curry a => C_OrRef -> List a -> Result a
+orsWithOrRef (C_OrRef r) xs _ = branching r (toHaskellList xs)
+
+generateChoice :: Curry a => List a -> Result a
+generateChoice xs _ = branching (mkRef 0 0 (nextRef 0)) (toHaskellList xs)
+
+
+nrOfChoices :: Result (C_IO C_Int)
+nrOfChoices st = 
+  C_IO (\ st' -> Prelude.return (IOVal (toCurry (max (size' st) (size' st')))))
+  where
+    size' = storeSize 
+
+
